Convert log4j context-data tests from groovy to java (#9804)
This commit is contained in:
parent
6f02a8c60c
commit
37d1035430
|
@ -27,8 +27,8 @@ testing {
|
||||||
// Regression test for https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/2403
|
// Regression test for https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/2403
|
||||||
val testDisableThreadLocals by registering(JvmTestSuite::class) {
|
val testDisableThreadLocals by registering(JvmTestSuite::class) {
|
||||||
sources {
|
sources {
|
||||||
groovy {
|
java {
|
||||||
setSrcDirs(listOf("src/test/groovy"))
|
setSrcDirs(listOf("src/test/java"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
dependencies {
|
dependencies {
|
||||||
|
@ -48,8 +48,8 @@ testing {
|
||||||
|
|
||||||
val testAddBaggage by registering(JvmTestSuite::class) {
|
val testAddBaggage by registering(JvmTestSuite::class) {
|
||||||
sources {
|
sources {
|
||||||
groovy {
|
java {
|
||||||
setSrcDirs(listOf("src/testAddBaggage/groovy"))
|
setSrcDirs(listOf("src/testAddBaggage/java"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
dependencies {
|
dependencies {
|
||||||
|
|
|
@ -1,29 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright The OpenTelemetry Authors
|
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
|
||||||
*/
|
|
||||||
|
|
||||||
import io.opentelemetry.instrumentation.log4j.contextdata.ListAppender
|
|
||||||
import io.opentelemetry.instrumentation.test.AgentTestTrait
|
|
||||||
import org.apache.logging.log4j.LogManager
|
|
||||||
|
|
||||||
class AutoLog4j2Test extends Log4j2Test implements AgentTestTrait {
|
|
||||||
|
|
||||||
def "resource attributes"() {
|
|
||||||
given:
|
|
||||||
def logger = LogManager.getLogger("TestLogger")
|
|
||||||
|
|
||||||
when:
|
|
||||||
logger.info("log message 1")
|
|
||||||
|
|
||||||
def events = ListAppender.get().getEvents()
|
|
||||||
|
|
||||||
then:
|
|
||||||
events.size() == 1
|
|
||||||
events[0].message == "log message 1"
|
|
||||||
events[0].contextData["trace_id"] == null
|
|
||||||
events[0].contextData["span_id"] == null
|
|
||||||
events[0].contextData["service.name"] == "unknown_service:java"
|
|
||||||
events[0].contextData["telemetry.sdk.language"] == "java"
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,45 @@
|
||||||
|
/*
|
||||||
|
* Copyright The OpenTelemetry Authors
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
package io.opentelemetry.javaagent.instrumentation.log4j.contextdata.v2_17;
|
||||||
|
|
||||||
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
|
import io.opentelemetry.instrumentation.log4j.contextdata.ListAppender;
|
||||||
|
import io.opentelemetry.instrumentation.log4j.contextdata.Log4j2Test;
|
||||||
|
import io.opentelemetry.instrumentation.testing.junit.AgentInstrumentationExtension;
|
||||||
|
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
|
||||||
|
import java.util.List;
|
||||||
|
import org.apache.logging.log4j.LogManager;
|
||||||
|
import org.apache.logging.log4j.Logger;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.junit.jupiter.api.extension.RegisterExtension;
|
||||||
|
|
||||||
|
class AutoLog4j2Test extends Log4j2Test {
|
||||||
|
@RegisterExtension
|
||||||
|
static final InstrumentationExtension testing = AgentInstrumentationExtension.create();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public InstrumentationExtension getInstrumentationExtension() {
|
||||||
|
return testing;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testResourceAttributes() {
|
||||||
|
Logger logger = LogManager.getLogger("TestLogger");
|
||||||
|
|
||||||
|
logger.info("log message 1");
|
||||||
|
|
||||||
|
List<ListAppender.LoggedEvent> events = ListAppender.get().getEvents();
|
||||||
|
|
||||||
|
assertThat(events.size()).isEqualTo(1);
|
||||||
|
assertThat(events.get(0).getMessage()).isEqualTo("log message 1");
|
||||||
|
assertThat(events.get(0).getContextData().get("trace_id")).isNull();
|
||||||
|
assertThat(events.get(0).getContextData().get("span_id")).isNull();
|
||||||
|
assertThat(events.get(0).getContextData().get("service.name"))
|
||||||
|
.isEqualTo("unknown_service:java");
|
||||||
|
assertThat(events.get(0).getContextData().get("telemetry.sdk.language")).isEqualTo("java");
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,9 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright The OpenTelemetry Authors
|
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
|
||||||
*/
|
|
||||||
|
|
||||||
import io.opentelemetry.instrumentation.test.AgentTestTrait
|
|
||||||
|
|
||||||
class AutoLog4jBaggageTest extends Log4J2BaggageTest implements AgentTestTrait {
|
|
||||||
}
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
/*
|
||||||
|
* Copyright The OpenTelemetry Authors
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
package io.opentelemetry.javaagent.instrumentation.log4j.contextdata.v2_17;
|
||||||
|
|
||||||
|
import io.opentelemetry.instrumentation.log4j.contextdata.Log4j2BaggageTest;
|
||||||
|
import io.opentelemetry.instrumentation.testing.junit.AgentInstrumentationExtension;
|
||||||
|
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
|
||||||
|
import org.junit.jupiter.api.extension.RegisterExtension;
|
||||||
|
|
||||||
|
class AutoLog4jBaggageTest extends Log4j2BaggageTest {
|
||||||
|
@RegisterExtension
|
||||||
|
static final InstrumentationExtension testing = AgentInstrumentationExtension.create();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public InstrumentationExtension getInstrumentationExtension() {
|
||||||
|
return testing;
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,9 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright The OpenTelemetry Authors
|
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
|
||||||
*/
|
|
||||||
|
|
||||||
import io.opentelemetry.instrumentation.test.LibraryTestTrait
|
|
||||||
|
|
||||||
class LibraryLog4j2BaggageTest extends Log4J2BaggageTest implements LibraryTestTrait {
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright The OpenTelemetry Authors
|
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
|
||||||
*/
|
|
||||||
|
|
||||||
import io.opentelemetry.instrumentation.test.LibraryTestTrait
|
|
||||||
|
|
||||||
class LibraryLog4j2Test extends Log4j2Test implements LibraryTestTrait {
|
|
||||||
}
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
/*
|
||||||
|
* Copyright The OpenTelemetry Authors
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
package io.opentelemetry.instrumentation.log4j.contextdata.v2_17;
|
||||||
|
|
||||||
|
import io.opentelemetry.instrumentation.log4j.contextdata.Log4j2BaggageTest;
|
||||||
|
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
|
||||||
|
import io.opentelemetry.instrumentation.testing.junit.LibraryInstrumentationExtension;
|
||||||
|
import org.junit.jupiter.api.extension.RegisterExtension;
|
||||||
|
|
||||||
|
class LibraryLog4j2BaggageTest extends Log4j2BaggageTest {
|
||||||
|
@RegisterExtension
|
||||||
|
static final InstrumentationExtension testing = LibraryInstrumentationExtension.create();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public InstrumentationExtension getInstrumentationExtension() {
|
||||||
|
return testing;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
/*
|
||||||
|
* Copyright The OpenTelemetry Authors
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
package io.opentelemetry.instrumentation.log4j.contextdata.v2_17;
|
||||||
|
|
||||||
|
import io.opentelemetry.instrumentation.log4j.contextdata.Log4j2Test;
|
||||||
|
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
|
||||||
|
import io.opentelemetry.instrumentation.testing.junit.LibraryInstrumentationExtension;
|
||||||
|
import org.junit.jupiter.api.extension.RegisterExtension;
|
||||||
|
|
||||||
|
class LibraryLog4j2Test extends Log4j2Test {
|
||||||
|
@RegisterExtension
|
||||||
|
static final InstrumentationExtension testing = LibraryInstrumentationExtension.create();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public InstrumentationExtension getInstrumentationExtension() {
|
||||||
|
return testing;
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,9 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright The OpenTelemetry Authors
|
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
|
||||||
*/
|
|
||||||
|
|
||||||
import io.opentelemetry.instrumentation.test.AgentTestTrait
|
|
||||||
|
|
||||||
class Log4j27BaggageTest extends Log4J2BaggageTest implements AgentTestTrait {
|
|
||||||
}
|
|
|
@ -1,29 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright The OpenTelemetry Authors
|
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
|
||||||
*/
|
|
||||||
|
|
||||||
import io.opentelemetry.instrumentation.log4j.contextdata.ListAppender
|
|
||||||
import io.opentelemetry.instrumentation.test.AgentTestTrait
|
|
||||||
import org.apache.logging.log4j.LogManager
|
|
||||||
|
|
||||||
class Log4j27Test extends Log4j2Test implements AgentTestTrait {
|
|
||||||
|
|
||||||
def "resource attributes"() {
|
|
||||||
given:
|
|
||||||
def logger = LogManager.getLogger("TestLogger")
|
|
||||||
|
|
||||||
when:
|
|
||||||
logger.info("log message 1")
|
|
||||||
|
|
||||||
def events = ListAppender.get().getEvents()
|
|
||||||
|
|
||||||
then:
|
|
||||||
events.size() == 1
|
|
||||||
events[0].message == "log message 1"
|
|
||||||
events[0].contextData["trace_id"] == null
|
|
||||||
events[0].contextData["span_id"] == null
|
|
||||||
events[0].contextData["service.name"] == "unknown_service:java"
|
|
||||||
events[0].contextData["telemetry.sdk.language"] == "java"
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
/*
|
||||||
|
* Copyright The OpenTelemetry Authors
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
package io.opentelemetry.javaagent.instrumentation.log4j.contextdata.v2_7;
|
||||||
|
|
||||||
|
import io.opentelemetry.instrumentation.log4j.contextdata.Log4j2BaggageTest;
|
||||||
|
import io.opentelemetry.instrumentation.testing.junit.AgentInstrumentationExtension;
|
||||||
|
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
|
||||||
|
import org.junit.jupiter.api.extension.RegisterExtension;
|
||||||
|
|
||||||
|
class Log4j27BaggageTest extends Log4j2BaggageTest {
|
||||||
|
@RegisterExtension
|
||||||
|
static final InstrumentationExtension testing = AgentInstrumentationExtension.create();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public InstrumentationExtension getInstrumentationExtension() {
|
||||||
|
return testing;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,45 @@
|
||||||
|
/*
|
||||||
|
* Copyright The OpenTelemetry Authors
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
package io.opentelemetry.javaagent.instrumentation.log4j.contextdata.v2_7;
|
||||||
|
|
||||||
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
|
import io.opentelemetry.instrumentation.log4j.contextdata.ListAppender;
|
||||||
|
import io.opentelemetry.instrumentation.log4j.contextdata.Log4j2Test;
|
||||||
|
import io.opentelemetry.instrumentation.testing.junit.AgentInstrumentationExtension;
|
||||||
|
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
|
||||||
|
import java.util.List;
|
||||||
|
import org.apache.logging.log4j.LogManager;
|
||||||
|
import org.apache.logging.log4j.Logger;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.junit.jupiter.api.extension.RegisterExtension;
|
||||||
|
|
||||||
|
class Log4j27Test extends Log4j2Test {
|
||||||
|
@RegisterExtension
|
||||||
|
static final InstrumentationExtension testing = AgentInstrumentationExtension.create();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public InstrumentationExtension getInstrumentationExtension() {
|
||||||
|
return testing;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testResourceAttributes() {
|
||||||
|
Logger logger = LogManager.getLogger("TestLogger");
|
||||||
|
|
||||||
|
logger.info("log message 1");
|
||||||
|
|
||||||
|
List<ListAppender.LoggedEvent> events = ListAppender.get().getEvents();
|
||||||
|
|
||||||
|
assertThat(events.size()).isEqualTo(1);
|
||||||
|
assertThat(events.get(0).getMessage()).isEqualTo("log message 1");
|
||||||
|
assertThat(events.get(0).getContextData().get("trace_id")).isNull();
|
||||||
|
assertThat(events.get(0).getContextData().get("span_id")).isNull();
|
||||||
|
assertThat(events.get(0).getContextData().get("service.name"))
|
||||||
|
.isEqualTo("unknown_service:java");
|
||||||
|
assertThat(events.get(0).getContextData().get("telemetry.sdk.language")).isEqualTo("java");
|
||||||
|
}
|
||||||
|
}
|
|
@ -9,9 +9,7 @@ dependencies {
|
||||||
|
|
||||||
implementation("com.google.guava:guava")
|
implementation("com.google.guava:guava")
|
||||||
|
|
||||||
implementation("org.apache.groovy:groovy")
|
|
||||||
implementation("io.opentelemetry:opentelemetry-api")
|
implementation("io.opentelemetry:opentelemetry-api")
|
||||||
implementation("org.spockframework:spock-core")
|
|
||||||
|
|
||||||
annotationProcessor("org.apache.logging.log4j:log4j-core:2.7")
|
annotationProcessor("org.apache.logging.log4j:log4j-core:2.7")
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright The OpenTelemetry Authors
|
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
|
||||||
*/
|
|
||||||
|
|
||||||
abstract class Log4J2BaggageTest extends Log4j2Test {
|
|
||||||
@Override
|
|
||||||
boolean expectBaggage() {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,99 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright The OpenTelemetry Authors
|
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
|
||||||
*/
|
|
||||||
|
|
||||||
import io.opentelemetry.api.baggage.Baggage
|
|
||||||
import io.opentelemetry.api.trace.Span
|
|
||||||
import io.opentelemetry.instrumentation.log4j.contextdata.ListAppender
|
|
||||||
import io.opentelemetry.instrumentation.test.InstrumentationSpecification
|
|
||||||
import org.apache.logging.log4j.LogManager
|
|
||||||
|
|
||||||
abstract class Log4j2Test extends InstrumentationSpecification {
|
|
||||||
def setup() {
|
|
||||||
ListAppender.get().clearEvents()
|
|
||||||
}
|
|
||||||
|
|
||||||
def "no ids when no span"() {
|
|
||||||
given:
|
|
||||||
def logger = LogManager.getLogger("TestLogger")
|
|
||||||
|
|
||||||
when:
|
|
||||||
logger.info("log message 1")
|
|
||||||
logger.info("log message 2")
|
|
||||||
|
|
||||||
def events = ListAppender.get().getEvents()
|
|
||||||
|
|
||||||
then:
|
|
||||||
events.size() == 2
|
|
||||||
events[0].message == "log message 1"
|
|
||||||
events[0].contextData["trace_id"] == null
|
|
||||||
events[0].contextData["span_id"] == null
|
|
||||||
events[0].contextData["trace_flags"] == null
|
|
||||||
|
|
||||||
events[1].message == "log message 2"
|
|
||||||
events[1].contextData["trace_id"] == null
|
|
||||||
events[1].contextData["span_id"] == null
|
|
||||||
events[1].contextData["trace_flags"] == null
|
|
||||||
}
|
|
||||||
|
|
||||||
def "ids when span"() {
|
|
||||||
given:
|
|
||||||
def logger = LogManager.getLogger("TestLogger")
|
|
||||||
|
|
||||||
when:
|
|
||||||
Baggage baggage = Baggage.empty().toBuilder().put("baggage_key", "baggage_value").build()
|
|
||||||
Span spanParent
|
|
||||||
Span spanChild
|
|
||||||
try (var unusedScope = baggage.makeCurrent()) {
|
|
||||||
runWithSpan("test") {
|
|
||||||
spanParent = Span.current()
|
|
||||||
logger.info("log span parent")
|
|
||||||
|
|
||||||
runWithSpan("test-child") {
|
|
||||||
logger.info("log span child")
|
|
||||||
spanChild = Span.current()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
logger.info("log message 2")
|
|
||||||
|
|
||||||
Span span2 = runWithSpan("test 2") {
|
|
||||||
logger.info("log message 3")
|
|
||||||
Span.current()
|
|
||||||
}
|
|
||||||
|
|
||||||
def events = ListAppender.get().getEvents()
|
|
||||||
|
|
||||||
then:
|
|
||||||
events.size() == 4
|
|
||||||
events[0].message == "log span parent"
|
|
||||||
events[0].contextData["trace_id"] == spanParent.spanContext.traceId
|
|
||||||
events[0].contextData["span_id"] == spanParent.spanContext.spanId
|
|
||||||
events[0].contextData["trace_flags"] == "01"
|
|
||||||
events[0].contextData["baggage.baggage_key"] == (expectBaggage() ? "baggage_value" : null)
|
|
||||||
|
|
||||||
events[1].message == "log span child"
|
|
||||||
events[1].contextData["trace_id"] == spanChild.spanContext.traceId
|
|
||||||
events[1].contextData["span_id"] == spanChild.spanContext.spanId
|
|
||||||
events[1].contextData["trace_flags"] == "01"
|
|
||||||
events[1].contextData["baggage.baggage_key"] == (expectBaggage() ? "baggage_value" : null)
|
|
||||||
|
|
||||||
events[2].message == "log message 2"
|
|
||||||
events[2].contextData["trace_id"] == null
|
|
||||||
events[2].contextData["span_id"] == null
|
|
||||||
events[2].contextData["trace_flags"] == null
|
|
||||||
events[2].contextData["baggage.baggage_key"] == null
|
|
||||||
|
|
||||||
events[3].message == "log message 3"
|
|
||||||
events[3].contextData["trace_id"] == span2.spanContext.traceId
|
|
||||||
events[3].contextData["span_id"] == span2.spanContext.spanId
|
|
||||||
events[3].contextData["trace_flags"] == "01"
|
|
||||||
events[3].contextData["baggage.baggage_key"] == null
|
|
||||||
}
|
|
||||||
|
|
||||||
boolean expectBaggage() {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
/*
|
||||||
|
* Copyright The OpenTelemetry Authors
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
package io.opentelemetry.instrumentation.log4j.contextdata;
|
||||||
|
|
||||||
|
public abstract class Log4j2BaggageTest extends Log4j2Test {
|
||||||
|
@Override
|
||||||
|
boolean expectBaggage() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,127 @@
|
||||||
|
/*
|
||||||
|
* Copyright The OpenTelemetry Authors
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
package io.opentelemetry.instrumentation.log4j.contextdata;
|
||||||
|
|
||||||
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
|
import io.opentelemetry.api.baggage.Baggage;
|
||||||
|
import io.opentelemetry.api.trace.Span;
|
||||||
|
import io.opentelemetry.context.Scope;
|
||||||
|
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.concurrent.atomic.AtomicReference;
|
||||||
|
import org.apache.logging.log4j.LogManager;
|
||||||
|
import org.apache.logging.log4j.Logger;
|
||||||
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
public abstract class Log4j2Test {
|
||||||
|
public abstract InstrumentationExtension getInstrumentationExtension();
|
||||||
|
|
||||||
|
@BeforeEach
|
||||||
|
void setUp() {
|
||||||
|
ListAppender.get().clearEvents();
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean expectBaggage() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testNoIdsWhenNoSpan() {
|
||||||
|
Logger logger = LogManager.getLogger("TestLogger");
|
||||||
|
|
||||||
|
logger.info("log message 1");
|
||||||
|
logger.info("log message 2");
|
||||||
|
|
||||||
|
List<ListAppender.LoggedEvent> events = ListAppender.get().getEvents();
|
||||||
|
|
||||||
|
assertThat(events.size()).isEqualTo(2);
|
||||||
|
|
||||||
|
assertThat(events.get(0).getMessage()).isEqualTo("log message 1");
|
||||||
|
assertThat(events.get(0).getContextData().get("trace_id")).isNull();
|
||||||
|
assertThat(events.get(0).getContextData().get("span_id")).isNull();
|
||||||
|
assertThat(events.get(0).getContextData().get("trace_flags")).isNull();
|
||||||
|
|
||||||
|
assertThat(events.get(1).getMessage()).isEqualTo("log message 2");
|
||||||
|
assertThat(events.get(1).getContextData().get("trace_id")).isNull();
|
||||||
|
assertThat(events.get(1).getContextData().get("span_id")).isNull();
|
||||||
|
assertThat(events.get(1).getContextData().get("trace_flags")).isNull();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testIdsWhenSpan() {
|
||||||
|
Logger logger = LogManager.getLogger("TestLogger");
|
||||||
|
|
||||||
|
Baggage baggage = Baggage.empty().toBuilder().put("baggage_key", "baggage_value").build();
|
||||||
|
AtomicReference<Span> spanParent = new AtomicReference<>();
|
||||||
|
AtomicReference<Span> spanChild = new AtomicReference<>();
|
||||||
|
try (Scope unusedScope = baggage.makeCurrent()) {
|
||||||
|
getInstrumentationExtension()
|
||||||
|
.runWithSpan(
|
||||||
|
"test",
|
||||||
|
() -> {
|
||||||
|
spanParent.set(Span.current());
|
||||||
|
logger.info("log span parent");
|
||||||
|
|
||||||
|
getInstrumentationExtension()
|
||||||
|
.runWithSpan(
|
||||||
|
"test-child",
|
||||||
|
() -> {
|
||||||
|
logger.info("log span child");
|
||||||
|
spanChild.set(Span.current());
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
logger.info("log message 2");
|
||||||
|
|
||||||
|
Span span2 =
|
||||||
|
getInstrumentationExtension()
|
||||||
|
.runWithSpan(
|
||||||
|
"test 2",
|
||||||
|
() -> {
|
||||||
|
logger.info("log message 3");
|
||||||
|
return Span.current();
|
||||||
|
});
|
||||||
|
|
||||||
|
List<ListAppender.LoggedEvent> events = ListAppender.get().getEvents();
|
||||||
|
|
||||||
|
assertThat(events.size()).isEqualTo(4);
|
||||||
|
|
||||||
|
assertThat(events.get(0).getMessage()).isEqualTo("log span parent");
|
||||||
|
assertThat(events.get(0).getContextData().get("trace_id"))
|
||||||
|
.isEqualTo(spanParent.get().getSpanContext().getTraceId());
|
||||||
|
assertThat(events.get(0).getContextData().get("span_id"))
|
||||||
|
.isEqualTo(spanParent.get().getSpanContext().getSpanId());
|
||||||
|
assertThat(events.get(0).getContextData().get("trace_flags")).isEqualTo("01");
|
||||||
|
assertThat(events.get(0).getContextData().get("baggage.baggage_key"))
|
||||||
|
.isEqualTo((expectBaggage() ? "baggage_value" : null));
|
||||||
|
|
||||||
|
assertThat(events.get(1).getMessage()).isEqualTo("log span child");
|
||||||
|
assertThat(events.get(1).getContextData().get("trace_id"))
|
||||||
|
.isEqualTo(spanChild.get().getSpanContext().getTraceId());
|
||||||
|
assertThat(events.get(1).getContextData().get("span_id"))
|
||||||
|
.isEqualTo(spanChild.get().getSpanContext().getSpanId());
|
||||||
|
assertThat(events.get(1).getContextData().get("trace_flags")).isEqualTo("01");
|
||||||
|
assertThat(events.get(1).getContextData().get("baggage.baggage_key"))
|
||||||
|
.isEqualTo((expectBaggage() ? "baggage_value" : null));
|
||||||
|
|
||||||
|
assertThat(events.get(2).getMessage()).isEqualTo("log message 2");
|
||||||
|
assertThat(events.get(2).getContextData().get("trace_id")).isNull();
|
||||||
|
assertThat(events.get(2).getContextData().get("span_id")).isNull();
|
||||||
|
assertThat(events.get(2).getContextData().get("trace_flags")).isNull();
|
||||||
|
assertThat(events.get(2).getContextData().get("baggage.baggage_key")).isNull();
|
||||||
|
|
||||||
|
assertThat(events.get(3).getMessage()).isEqualTo("log message 3");
|
||||||
|
assertThat(events.get(3).getContextData().get("trace_id"))
|
||||||
|
.isEqualTo(span2.getSpanContext().getTraceId());
|
||||||
|
assertThat(events.get(3).getContextData().get("span_id"))
|
||||||
|
.isEqualTo(span2.getSpanContext().getSpanId());
|
||||||
|
assertThat(events.get(3).getContextData().get("trace_flags")).isEqualTo("01");
|
||||||
|
assertThat(events.get(3).getContextData().get("baggage.baggage_key")).isNull();
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue