Add boot42-otel module: Spring Boot 4.2.0-RC1 OpenTelemetry conventions, shared OTLP settings and MDC keys vs 4.1.2
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
# 01-conventions-metrics-and-spans (Spring Boot 4.1.2, JDK 25)
|
||||
|
||||
== management.observations.conventions=(property not set)
|
||||
-- meters whose name contains 'http':
|
||||
http.server.requests [error=none, exception=none, method=GET, outcome=SUCCESS, status=200, uri=/hello/{name}]
|
||||
http.server.requests.active [exception=none, method=GET, outcome=SUCCESS, status=200, uri=UNKNOWN]
|
||||
-- span-related strings in the OTLP trace payload (1 request(s)):
|
||||
/hello/ankurJ
|
||||
/hello/{name}z
|
||||
http get /hello/{name}0
|
||||
|
||||
== management.observations.conventions=micrometer
|
||||
-- meters whose name contains 'http':
|
||||
http.server.requests [error=none, exception=none, method=GET, outcome=SUCCESS, status=200, uri=/hello/{name}]
|
||||
http.server.requests.active [exception=none, method=GET, outcome=SUCCESS, status=200, uri=UNKNOWN]
|
||||
-- span-related strings in the OTLP trace payload (1 request(s)):
|
||||
/hello/ankurJ
|
||||
/hello/{name}z
|
||||
http get /hello/{name}0
|
||||
|
||||
== management.observations.conventions=open-telemetry
|
||||
-- meters whose name contains 'http':
|
||||
http.server.requests [error=none, exception=none, method=GET, outcome=SUCCESS, status=200, uri=/hello/{name}]
|
||||
http.server.requests.active [exception=none, method=GET, outcome=SUCCESS, status=200, uri=UNKNOWN]
|
||||
-- span-related strings in the OTLP trace payload (1 request(s)):
|
||||
/hello/ankurJ
|
||||
/hello/{name}z
|
||||
http get /hello/{name}0
|
||||
|
||||
== management.observations.conventions=opentelemetry
|
||||
-- meters whose name contains 'http':
|
||||
http.server.requests [error=none, exception=none, method=GET, outcome=SUCCESS, status=200, uri=/hello/{name}]
|
||||
http.server.requests.active [exception=none, method=GET, outcome=SUCCESS, status=200, uri=UNKNOWN]
|
||||
-- span-related strings in the OTLP trace payload (1 request(s)):
|
||||
/hello/ankurJ
|
||||
/hello/{name}z
|
||||
http get /hello/{name}0
|
||||
@@ -0,0 +1,29 @@
|
||||
# 01-conventions-metrics-and-spans (Spring Boot 4.2.0-RC1, JDK 25)
|
||||
|
||||
== management.observations.conventions=(property not set)
|
||||
-- meters whose name contains 'http':
|
||||
http.server.requests [error=none, exception=none, method=GET, outcome=SUCCESS, status=200, uri=/hello/{name}]
|
||||
-- span-related strings in the OTLP trace payload (1 request(s)):
|
||||
/hello/ankurJ
|
||||
/hello/{name}z
|
||||
http get /hello/{name}0
|
||||
|
||||
== management.observations.conventions=micrometer
|
||||
-- meters whose name contains 'http':
|
||||
http.server.requests [error=none, exception=none, method=GET, outcome=SUCCESS, status=200, uri=/hello/{name}]
|
||||
-- span-related strings in the OTLP trace payload (1 request(s)):
|
||||
/hello/ankurJ
|
||||
/hello/{name}z
|
||||
http get /hello/{name}0
|
||||
|
||||
== management.observations.conventions=open-telemetry
|
||||
-- application FAILED to start
|
||||
NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.http.server.observation.ServerRequestObservationConvention' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
|
||||
|
||||
== management.observations.conventions=opentelemetry
|
||||
-- meters whose name contains 'http':
|
||||
http.server.request.duration [error.type=none, error=none, http.request.method=GET, http.response.status_code=200, http.route=/hello/{name}, outcome=SUCCESS, url.scheme=http]
|
||||
-- span-related strings in the OTLP trace payload (1 request(s)):
|
||||
/hello/ankurJ
|
||||
/hello/{name}J
|
||||
GET /hello/{name}0
|
||||
@@ -0,0 +1,7 @@
|
||||
# 02-shared-otlp-endpoint (Spring Boot 4.1.2, JDK 25)
|
||||
management.opentelemetry.otlp.endpoint = <sink> (one property, no per-signal URLs)
|
||||
management.opentelemetry.otlp.headers = Authorization: Bearer shared-token
|
||||
management.opentelemetry.otlp.compression = gzip
|
||||
|
||||
requests that reached the sink:
|
||||
(none: 4.1.2 ignores the shared properties and exports to its default localhost:4318)
|
||||
@@ -0,0 +1,8 @@
|
||||
# 02-shared-otlp-endpoint (Spring Boot 4.2.0-RC1, JDK 25)
|
||||
management.opentelemetry.otlp.endpoint = <sink> (one property, no per-signal URLs)
|
||||
management.opentelemetry.otlp.headers = Authorization: Bearer shared-token
|
||||
management.opentelemetry.otlp.compression = gzip
|
||||
|
||||
requests that reached the sink:
|
||||
POST /v1/metrics Authorization=Bearer shared-token Content-Encoding=gzip
|
||||
POST /v1/traces Authorization=Bearer shared-token Content-Encoding=gzip
|
||||
@@ -0,0 +1,9 @@
|
||||
# 03-signal-specific-overrides-shared (Spring Boot 4.1.2, JDK 25)
|
||||
shared endpoint = <sink>
|
||||
tracing.export.otlp.endpoint = <sink>/custom/spans
|
||||
shared header Authorization = Bearer shared-token
|
||||
shared header X-Shared = shared-only
|
||||
tracing.export.otlp.headers.Authorization = Bearer traces-token
|
||||
|
||||
requests that reached the sink:
|
||||
POST /custom/spans Authorization=Bearer traces-token X-Shared=null
|
||||
@@ -0,0 +1,10 @@
|
||||
# 03-signal-specific-overrides-shared (Spring Boot 4.2.0-RC1, JDK 25)
|
||||
shared endpoint = <sink>
|
||||
tracing.export.otlp.endpoint = <sink>/custom/spans
|
||||
shared header Authorization = Bearer shared-token
|
||||
shared header X-Shared = shared-only
|
||||
tracing.export.otlp.headers.Authorization = Bearer traces-token
|
||||
|
||||
requests that reached the sink:
|
||||
POST /custom/spans Authorization=Bearer traces-token X-Shared=shared-only
|
||||
POST /v1/metrics Authorization=Bearer shared-token X-Shared=shared-only
|
||||
@@ -0,0 +1,8 @@
|
||||
# 04-mdc-keys (Spring Boot 4.1.2, JDK 25)
|
||||
management.tracing.mdc.trace-id-key = trace_id
|
||||
management.tracing.mdc.span-id-key = span_id
|
||||
log pattern correlation part reads both MDC keys
|
||||
|
||||
log line: INFO 4192 --- [boot42-otel] [o-auto-1-exec-1] default[<32-hex-trace-id>] custom[] c.a.o.OtelApplication$HelloController : handling hello for ankur
|
||||
default key traceId populated: true
|
||||
custom key trace_id populated: false
|
||||
@@ -0,0 +1,8 @@
|
||||
# 04-mdc-keys (Spring Boot 4.2.0-RC1, JDK 25)
|
||||
management.tracing.mdc.trace-id-key = trace_id
|
||||
management.tracing.mdc.span-id-key = span_id
|
||||
log pattern correlation part reads both MDC keys
|
||||
|
||||
log line: INFO 3810 --- [boot42-otel] [o-auto-1-exec-1] default[] custom[<32-hex-trace-id>] c.a.o.OtelApplication$HelloController : handling hello for ankur
|
||||
default key traceId populated: false
|
||||
custom key trace_id populated: true
|
||||
@@ -0,0 +1,11 @@
|
||||
# 05-active-long-task-timer (Spring Boot 4.1.2, JDK 25)
|
||||
|
||||
== (default)
|
||||
http.server.requests (TIMER)
|
||||
http.server.requests.active (LONG_TASK_TIMER)
|
||||
http.server.requests.active present: true
|
||||
|
||||
== management.metrics.observations.include-active-long-task-timer=true
|
||||
http.server.requests (TIMER)
|
||||
http.server.requests.active (LONG_TASK_TIMER)
|
||||
http.server.requests.active present: true
|
||||
@@ -0,0 +1,10 @@
|
||||
# 05-active-long-task-timer (Spring Boot 4.2.0-RC1, JDK 25)
|
||||
|
||||
== (default)
|
||||
http.server.requests (TIMER)
|
||||
http.server.requests.active present: false
|
||||
|
||||
== management.metrics.observations.include-active-long-task-timer=true
|
||||
http.server.requests (TIMER)
|
||||
http.server.requests.active (LONG_TASK_TIMER)
|
||||
http.server.requests.active present: true
|
||||
@@ -0,0 +1,19 @@
|
||||
# 06-prometheus-names (Spring Boot 4.1.2, JDK 25)
|
||||
|
||||
== management.observations.conventions=micrometer
|
||||
http_server_requests_active_seconds_count
|
||||
http_server_requests_active_seconds_max
|
||||
http_server_requests_active_seconds_sum
|
||||
http_server_requests_seconds_count
|
||||
http_server_requests_seconds_max
|
||||
http_server_requests_seconds_sum
|
||||
sample: http_server_requests_active_seconds_count{exception="none",method="GET",outcome="SUCCESS",status="200",uri="UNKNOWN"}
|
||||
|
||||
== management.observations.conventions=opentelemetry
|
||||
http_server_requests_active_seconds_count
|
||||
http_server_requests_active_seconds_max
|
||||
http_server_requests_active_seconds_sum
|
||||
http_server_requests_seconds_count
|
||||
http_server_requests_seconds_max
|
||||
http_server_requests_seconds_sum
|
||||
sample: http_server_requests_active_seconds_count{exception="none",method="GET",outcome="SUCCESS",status="200",uri="UNKNOWN"}
|
||||
@@ -0,0 +1,13 @@
|
||||
# 06-prometheus-names (Spring Boot 4.2.0-RC1, JDK 25)
|
||||
|
||||
== management.observations.conventions=micrometer
|
||||
http_server_requests_seconds_count
|
||||
http_server_requests_seconds_max
|
||||
http_server_requests_seconds_sum
|
||||
sample: http_server_requests_seconds_count{error="none",exception="none",method="GET",outcome="SUCCESS",status="200",uri="/hello/{name}"}
|
||||
|
||||
== management.observations.conventions=opentelemetry
|
||||
http_server_request_duration_seconds_count
|
||||
http_server_request_duration_seconds_max
|
||||
http_server_request_duration_seconds_sum
|
||||
sample: http_server_request_duration_seconds_count{error="none",error_type="none",http_request_method="GET",http_response_status_code="200",http_route="/hello/{name}",outcome="SUCCESS",url_scheme="http"}
|
||||
@@ -0,0 +1,8 @@
|
||||
# 07-conventions-spellings (Spring Boot 4.1.2, JDK 25)
|
||||
open-telemetry -> starts, server meter: [http.server.requests]
|
||||
open_telemetry -> starts, server meter: [http.server.requests]
|
||||
OPEN_TELEMETRY -> starts, server meter: [http.server.requests]
|
||||
opentelemetry -> starts, server meter: [http.server.requests]
|
||||
openTelemetry -> starts, server meter: [http.server.requests]
|
||||
micrometer -> starts, server meter: [http.server.requests]
|
||||
MICROMETER -> starts, server meter: [http.server.requests]
|
||||
@@ -0,0 +1,8 @@
|
||||
# 07-conventions-spellings (Spring Boot 4.2.0-RC1, JDK 25)
|
||||
open-telemetry -> FAILS to start
|
||||
open_telemetry -> starts, server meter: [http.server.request.duration]
|
||||
OPEN_TELEMETRY -> starts, server meter: [http.server.request.duration]
|
||||
opentelemetry -> starts, server meter: [http.server.request.duration]
|
||||
openTelemetry -> starts, server meter: [http.server.request.duration]
|
||||
micrometer -> starts, server meter: [http.server.requests]
|
||||
MICROMETER -> starts, server meter: [http.server.requests]
|
||||
Reference in New Issue
Block a user