100 lines
3.0 KiB
Groovy
100 lines
3.0 KiB
Groovy
/*
|
|
* 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
|
|
}
|
|
}
|