use of io.opentelemetry.sdk.common.Clock in project opentelemetry-java by open-telemetry.
the class LogDataBuilderTest method canSetClock.
@Test
void canSetClock() {
Clock clock = mock(Clock.class);
when(clock.now()).thenReturn(12L);
LogDataBuilder builder = LogDataBuilder.create(resource, libraryInfo, clock);
LogData result = builder.build();
assertEquals(12L, result.getEpochNanos());
}
use of io.opentelemetry.sdk.common.Clock in project opentelemetry-java by open-telemetry.
the class ThrottlingLoggerTest method fiveInAMinuteTriggersLimiting.
@Test
void fiveInAMinuteTriggersLimiting() {
Clock clock = TestClock.create();
ThrottlingLogger logger = new ThrottlingLogger(realLogger, clock);
logger.log(Level.WARNING, "oh no!");
logger.log(Level.WARNING, "oh no!");
logger.log(Level.WARNING, "oh no!");
logger.log(Level.WARNING, "oh no!");
logger.log(Level.WARNING, "oh no!");
logger.log(Level.WARNING, "oh no I should trigger suppression!");
logger.log(Level.WARNING, "oh no I should be suppressed!");
assertThat(logs.getEvents()).hasSize(7);
logs.assertDoesNotContain("oh no I should be suppressed!");
logs.assertContains("Too many log messages detected. Will only log once per minute from now on.");
logs.assertContains("oh no I should trigger suppression!");
}
use of io.opentelemetry.sdk.common.Clock in project splunk-otel-java by signalfx.
the class TLABProcessorTest method tlabProcessTest.
private void tlabProcessTest(Long tlabSize) {
Instant now = Instant.now();
AtomicReference<LogData> seenLogData = new AtomicReference<>();
LogProcessor consumer = seenLogData::set;
String stackAsString = "\"mockingbird\" #606\n" + " java.lang.Thread.State: UNKNOWN\n" + "i am a serialized stack believe me";
StackSerializer serializer = mock(StackSerializer.class);
LogDataCommonAttributes commonAttrs = new LogDataCommonAttributes(new EventPeriods(x -> null));
Clock clock = new MockClock(now);
RecordedEvent event = createMockEvent(serializer, now, tlabSize);
Config config = mock(Config.class);
when(config.getBoolean(CONFIG_KEY_TLAB_ENABLED, DEFAULT_MEMORY_ENABLED)).thenReturn(true);
SpanContext spanContext = SpanContext.create(TraceId.fromLongs(123, 456), SpanId.fromLong(123), TraceFlags.getSampled(), TraceState.getDefault());
SpanContextualizer spanContextualizer = mock(SpanContextualizer.class);
when(spanContextualizer.link(THREAD_ID)).thenReturn(new SpanLinkage(spanContext, THREAD_ID));
TLABProcessor processor = TLABProcessor.builder(config).stackSerializer(serializer).logProcessor(consumer).commonAttributes(commonAttrs).resource(Resource.getDefault()).spanContextualizer(spanContextualizer).build();
processor.accept(event);
assertEquals(stackAsString, seenLogData.get().getBody().asString());
assertEquals(TimeUnit.SECONDS.toNanos(now.getEpochSecond()) + clock.nanoTime(), seenLogData.get().getEpochNanos());
assertEquals("otel.profiling", seenLogData.get().getAttributes().get(SOURCE_TYPE));
assertEquals("tee-lab", seenLogData.get().getAttributes().get(SOURCE_EVENT_NAME));
assertEquals(ONE_MB, seenLogData.get().getAttributes().get(ALLOCATION_SIZE_KEY));
assertEquals(spanContext, seenLogData.get().getSpanContext());
}
use of io.opentelemetry.sdk.common.Clock in project opentelemetry-java by open-telemetry.
the class SdkLogEmitterProviderTest method canSetClock.
@Test
void canSetClock() {
long now = TimeUnit.MILLISECONDS.toNanos(System.currentTimeMillis());
Clock clock = mock(Clock.class);
when(clock.now()).thenReturn(now);
List<LogData> seenLogs = new ArrayList<>();
logProcessor = seenLogs::add;
sdkLogEmitterProvider = SdkLogEmitterProvider.builder().setClock(clock).addLogProcessor(logProcessor).build();
sdkLogEmitterProvider.logEmitterBuilder(null).build().logBuilder().emit();
assertThat(seenLogs.size()).isEqualTo(1);
assertThat(seenLogs.get(0).getEpochNanos()).isEqualTo(now);
}
use of io.opentelemetry.sdk.common.Clock in project opentelemetry-java by open-telemetry.
the class SdkLogEmitterProviderTest method builder_clockProvided.
@Test
void builder_clockProvided() {
Clock clock = mock(Clock.class);
assertThat(SdkLogEmitterProvider.builder().setClock(clock).build()).extracting("sharedState", as(InstanceOfAssertFactories.type(LogEmitterSharedState.class))).extracting(LogEmitterSharedState::getClock).isSameAs(clock);
}
Aggregations