fix(obs): fix OTLP transport port and add application metrics tag
- Change OTEL default endpoint from port 4317 (gRPC) to 4318 (HTTP) to match Spring Boot's HttpExporter; sending HTTP/1.1 to a gRPC listener caused "Connection reset" errors - Add otel.logs.exporter=none: Promtail captures Docker logs via the logging driver; sending logs to Tempo's OTLP endpoint (which only handles traces) produced 404 errors - Add management.metrics.tags.application to every metric so Grafana's Spring Boot Observability dashboard (ID 17175) can filter by the application label_values() template variable - Add MANAGEMENT_METRICS_TAGS_APPLICATION and OTEL_LOGS_EXPORTER env vars to docker-compose.prod.yml; production Tempo endpoint already uses 4318 - Add MANAGEMENT_TRACING_SAMPLING_PROBABILITY to prod compose with 0.1 default to avoid 100% trace sampling in production Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -64,6 +64,11 @@ management:
|
|||||||
metrics:
|
metrics:
|
||||||
export:
|
export:
|
||||||
enabled: true
|
enabled: true
|
||||||
|
metrics:
|
||||||
|
tags:
|
||||||
|
# Common tag applied to every metric so Grafana's Spring Boot dashboard can filter by application name.
|
||||||
|
# Override via MANAGEMENT_METRICS_TAGS_APPLICATION env var.
|
||||||
|
application: ${spring.application.name}
|
||||||
health:
|
health:
|
||||||
mail:
|
mail:
|
||||||
enabled: false
|
enabled: false
|
||||||
@@ -72,13 +77,16 @@ management:
|
|||||||
probability: 1.0 # 100% in dev; override via MANAGEMENT_TRACING_SAMPLING_PROBABILITY in prod compose
|
probability: 1.0 # 100% in dev; override via MANAGEMENT_TRACING_SAMPLING_PROBABILITY in prod compose
|
||||||
|
|
||||||
# OpenTelemetry trace export — failures are non-fatal (app starts cleanly without Tempo running)
|
# OpenTelemetry trace export — failures are non-fatal (app starts cleanly without Tempo running)
|
||||||
# The default http://localhost:4317 ensures CI compatibility when no observability stack is present.
|
# Port 4318 = OTLP HTTP (the default transport for Spring Boot's HttpExporter).
|
||||||
|
# Port 4317 is gRPC-only; sending HTTP/1.1 to it produces "Connection reset".
|
||||||
otel:
|
otel:
|
||||||
service:
|
service:
|
||||||
name: familienarchiv-backend
|
name: familienarchiv-backend
|
||||||
exporter:
|
exporter:
|
||||||
otlp:
|
otlp:
|
||||||
endpoint: ${OTEL_EXPORTER_OTLP_ENDPOINT:http://localhost:4317}
|
endpoint: ${OTEL_EXPORTER_OTLP_ENDPOINT:http://localhost:4318}
|
||||||
|
logs:
|
||||||
|
exporter: none # Promtail captures Docker logs; disable OTLP log export to Tempo (which doesn't accept logs)
|
||||||
|
|
||||||
springdoc:
|
springdoc:
|
||||||
api-docs:
|
api-docs:
|
||||||
|
|||||||
@@ -213,7 +213,10 @@ services:
|
|||||||
APP_MAIL_FROM: ${APP_MAIL_FROM:-noreply@raddatz.cloud}
|
APP_MAIL_FROM: ${APP_MAIL_FROM:-noreply@raddatz.cloud}
|
||||||
SPRING_MAIL_PROPERTIES_MAIL_SMTP_AUTH: ${MAIL_SMTP_AUTH:-true}
|
SPRING_MAIL_PROPERTIES_MAIL_SMTP_AUTH: ${MAIL_SMTP_AUTH:-true}
|
||||||
SPRING_MAIL_PROPERTIES_MAIL_SMTP_STARTTLS_ENABLE: ${MAIL_STARTTLS_ENABLE:-true}
|
SPRING_MAIL_PROPERTIES_MAIL_SMTP_STARTTLS_ENABLE: ${MAIL_STARTTLS_ENABLE:-true}
|
||||||
OTEL_EXPORTER_OTLP_ENDPOINT: http://tempo:4317
|
OTEL_EXPORTER_OTLP_ENDPOINT: http://tempo:4318
|
||||||
|
OTEL_LOGS_EXPORTER: none
|
||||||
|
MANAGEMENT_METRICS_TAGS_APPLICATION: Familienarchiv
|
||||||
|
MANAGEMENT_TRACING_SAMPLING_PROBABILITY: ${MANAGEMENT_TRACING_SAMPLING_PROBABILITY:-0.1}
|
||||||
networks:
|
networks:
|
||||||
- archiv-net
|
- archiv-net
|
||||||
healthcheck:
|
healthcheck:
|
||||||
|
|||||||
Reference in New Issue
Block a user