diff --git a/RFS/src/test/java/com/rfs/tracing/TestContext.java b/RFS/src/test/java/com/rfs/tracing/TestContext.java index dd08b620e..442373367 100644 --- a/RFS/src/test/java/com/rfs/tracing/TestContext.java +++ b/RFS/src/test/java/com/rfs/tracing/TestContext.java @@ -2,18 +2,26 @@ import lombok.Getter; import org.opensearch.migrations.tracing.BacktracingContextTracker; +import org.opensearch.migrations.tracing.CompositeContextTracker; import org.opensearch.migrations.tracing.IContextTracker; import org.opensearch.migrations.tracing.InMemoryInstrumentationBundle; +import org.opensearch.migrations.tracing.LoggingContextTracer; -public class TestContext extends RootRfsContext { @Getter +public class TestContext extends RootRfsContext { + @Getter public InMemoryInstrumentationBundle instrumentationBundle; - public static TestContext withTracking(boolean tracing, boolean metrics) { - return new TestContext(new InMemoryInstrumentationBundle(tracing, metrics), new BacktracingContextTracker()); + public static TestContext withTracking(boolean tracing, boolean metrics, boolean consoleLogging) { + IContextTracker tracker = new BacktracingContextTracker(); + if (consoleLogging) { + tracker = new CompositeContextTracker(tracker, new LoggingContextTracer()); + } + + return new TestContext(new InMemoryInstrumentationBundle(tracing, metrics), tracker); } public static TestContext withAllTracking() { - return withTracking(true, true); + return withTracking(true, true, true); } public static TestContext noOtelTracking() { diff --git a/coreUtilities/src/testFixtures/java/org/opensearch/migrations/tracing/LoggingContextTracer.java b/coreUtilities/src/testFixtures/java/org/opensearch/migrations/tracing/LoggingContextTracer.java new file mode 100644 index 000000000..8739df257 --- /dev/null +++ b/coreUtilities/src/testFixtures/java/org/opensearch/migrations/tracing/LoggingContextTracer.java @@ -0,0 +1,27 @@ +package org.opensearch.migrations.tracing; + +import lombok.extern.slf4j.Slf4j; + +@Slf4j +public class LoggingContextTracer implements IContextTracker { + + private static final String CREATED_MESSAGE = "<< Start: {}"; + private static final String CLOSED_MESSAGE = ">> Close: {} {}"; + + @Override + public void onContextCreated(final IScopedInstrumentationAttributes context) { + log.atDebug() + .setMessage(CREATED_MESSAGE) + .addArgument(context.getActivityName()) + .log(); + } + + @Override + public void onContextClosed(IScopedInstrumentationAttributes context) { + log.atDebug() + .setMessage(CLOSED_MESSAGE) + .addArgument(context.getActivityName()) + .addArgument(context::getPopulatedSpanAttributes) + .log(); + } +}