Skip to content

Commit eec068f

Browse files
committed
chore: Enable jaeger spm
Signed-off-by: Kemal Akkoyun <[email protected]>
1 parent bd95ca3 commit eec068f

File tree

3 files changed

+75
-6
lines changed

3 files changed

+75
-6
lines changed

demo/infrastructure/docker-compose/docker-compose.yml

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,26 @@ version: '3.8'
44
# Complete observability stack with Jaeger, Prometheus, OTel Collector, Grafana, and k6
55

66
services:
7-
# Jaeger - Distributed tracing backend (v2 with native OTLP support)
7+
# Jaeger - Distributed tracing backend (v2 with native OTLP support + SPM)
88
jaeger:
99
image: jaegertracing/jaeger:2.11.0
1010
container_name: jaeger
1111
command:
12-
- --set=receivers.otlp.protocols.grpc.endpoint=0.0.0.0:4317
13-
- --set=receivers.otlp.protocols.http.endpoint=0.0.0.0:4318
14-
- --feature-gates=-telemetry.UseLocalHostAsDefaultMetricsAddress # Expose telemetry on 0.0.0.0:8888
12+
- --config=/etc/jaeger/config.yaml
13+
volumes:
14+
- ./jaeger/config.yaml:/etc/jaeger/config.yaml:ro
15+
- ./jaeger/ui-config.json:/etc/jaeger/ui-config.json:ro
1516
ports:
1617
- "16686:16686" # Jaeger UI
1718
- "4317" # OTLP gRPC (internal)
1819
- "4318" # OTLP HTTP (internal)
1920
- "14269:8888" # Internal telemetry metrics (Jaeger's port 8888 mapped to host 14269)
20-
environment:
21-
- COLLECTOR_OTLP_ENABLED=true
21+
- "13133" # Health check endpoint (internal)
2222
networks:
2323
- observability
24+
depends_on:
25+
prometheus:
26+
condition: service_healthy
2427
healthcheck:
2528
test: ["CMD", "wget", "--spider", "-q", "http://localhost:16686"]
2629
interval: 10s
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
# Jaeger v2 configuration with Service Performance Monitoring (SPM) enabled
2+
# Based on: https://www.jaegertracing.io/docs/2.11/architecture/spm/
3+
4+
extensions:
5+
jaeger_storage:
6+
backends:
7+
memory:
8+
memory:
9+
max_traces: 100000
10+
# Configure metric backends for SPM
11+
metric_backends:
12+
prometheus_metrics:
13+
prometheus:
14+
endpoint: http://prometheus:9090
15+
# Normalize metric names to match OTel Collector spanmetrics output
16+
normalize_calls: true
17+
normalize_duration: true
18+
19+
jaeger_query:
20+
storage:
21+
traces: memory
22+
metrics: prometheus_metrics
23+
ui:
24+
config_file: /etc/jaeger/ui-config.json
25+
26+
healthcheckv2:
27+
http:
28+
endpoint: 0.0.0.0:13133
29+
30+
receivers:
31+
otlp:
32+
protocols:
33+
grpc:
34+
endpoint: 0.0.0.0:4317
35+
http:
36+
endpoint: 0.0.0.0:4318
37+
38+
processors:
39+
batch:
40+
timeout: 5s
41+
send_batch_size: 1024
42+
43+
exporters:
44+
jaeger_storage_exporter:
45+
trace_storage: memory
46+
47+
# Export traces to OTel Collector for spanmetrics generation
48+
otlp:
49+
endpoint: otel-collector:4317
50+
tls:
51+
insecure: true
52+
53+
service:
54+
extensions: [jaeger_storage, jaeger_query, healthcheckv2]
55+
56+
pipelines:
57+
traces:
58+
receivers: [otlp]
59+
processors: [batch]
60+
# Export to both local storage AND OTel Collector for spanmetrics
61+
exporters: [jaeger_storage_exporter, otlp]
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"monitor": {
3+
"menuEnabled": true
4+
}
5+
}

0 commit comments

Comments
 (0)