From dff5516340f4ad84841fc51432eb18c3432ac37b Mon Sep 17 00:00:00 2001 From: romanow Date: Fri, 10 Jan 2025 19:50:44 +0300 Subject: [PATCH] Migrate Jaeger to 2.2 --- tracing/README.md | 3 +- tracing/docker-compose.metrics.yml | 38 ++++++++++++++++++++++ tracing/docker-compose.yml | 8 ++--- tracing/jaeger/metrics-config.yml | 52 ++++++++++++++++++++++++++++++ tracing/jaeger/simple-config.yml | 34 +++++++++++++++++++ tracing/prometheus/prometheus.yml | 7 ++++ 6 files changed, 137 insertions(+), 5 deletions(-) create mode 100644 tracing/docker-compose.metrics.yml create mode 100644 tracing/jaeger/metrics-config.yml create mode 100644 tracing/jaeger/simple-config.yml create mode 100644 tracing/prometheus/prometheus.yml diff --git a/tracing/README.md b/tracing/README.md index 825ee28..659f987 100644 --- a/tracing/README.md +++ b/tracing/README.md @@ -1,3 +1,4 @@ # Jaeger Tracing -* [All-In-One](docker-compose.yml) +* [Simple](docker-compose.yml) +* [Metrics](docker-compose.metrics.yml) diff --git a/tracing/docker-compose.metrics.yml b/tracing/docker-compose.metrics.yml new file mode 100644 index 0000000..5322728 --- /dev/null +++ b/tracing/docker-compose.metrics.yml @@ -0,0 +1,38 @@ +services: + prometheus: + image: prom/prometheus:v2.52.0 + container_name: prometheus + command: + - "--config.file=/etc/prometheus/prometheus.yml" + - "--storage.tsdb.path=/prometheus/data" + healthcheck: + test: [ "CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:9090" ] + interval: 5s + timeout: 10s + retries: 5 + ports: + - "9090:9090" + volumes: + - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml + - prometheus:/prometheus + + jaeger: + image: "jaegertracing/jaeger:2.2.0" + command: [ "--config", "/etc/jaeger/config.yml" ] + container_name: jaeger + healthcheck: + test: [ "CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:16686" ] + interval: 5s + timeout: 10s + retries: 5 + ports: + - "16686:16686" + - "4318:4318" + volumes: + - "./jaeger/metrics-config.yml:/etc/jaeger/config.yml" + depends_on: + prometheus: + condition: service_healthy + +volumes: + prometheus: diff --git a/tracing/docker-compose.yml b/tracing/docker-compose.yml index 527f55a..1342f7c 100644 --- a/tracing/docker-compose.yml +++ b/tracing/docker-compose.yml @@ -1,15 +1,15 @@ services: jaeger: - image: "jaegertracing/all-in-one:1.57" + image: "jaegertracing/jaeger:2.2.0" + command: [ "--config", "/etc/jaeger/config.yml" ] container_name: jaeger healthcheck: test: [ "CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:16686" ] interval: 5s timeout: 10s retries: 5 - environment: - - COLLECTOR_OTLP_ENABLED=true - - SPAN_STORAGE_TYPE=memory ports: - "16686:16686" - "4318:4318" + volumes: + - "./jaeger/simple-config.yml:/etc/jaeger/config.yml" diff --git a/tracing/jaeger/metrics-config.yml b/tracing/jaeger/metrics-config.yml new file mode 100644 index 0000000..d1d1fd7 --- /dev/null +++ b/tracing/jaeger/metrics-config.yml @@ -0,0 +1,52 @@ +service: + extensions: [jaeger_storage, jaeger_query] + pipelines: + traces: + receivers: [otlp] + processors: [batch] + exporters: [jaeger_storage_exporter, spanmetrics] + metrics/spanmetrics: + receivers: [spanmetrics] + exporters: [prometheus] + telemetry: + resource: + service.name: jaeger + metrics: + level: detailed + address: 0.0.0.0:8888 + +extensions: + jaeger_query: + storage: + traces: traces-storage + metrics: metrics-storage + jaeger_storage: + backends: + traces-storage: + memory: + max_traces: 100000 + metric_backends: + metrics-storage: + prometheus: + endpoint: http://prometheus:9090 + normalize_calls: true + normalize_duration: true + +connectors: + spanmetrics: + +receivers: + otlp: + protocols: + grpc: + http: + endpoint: "0.0.0.0:4318" + +processors: + batch: + +exporters: + jaeger_storage_exporter: + trace_storage: traces-storage + prometheus: + endpoint: "0.0.0.0:8889" diff --git a/tracing/jaeger/simple-config.yml b/tracing/jaeger/simple-config.yml new file mode 100644 index 0000000..e582d32 --- /dev/null +++ b/tracing/jaeger/simple-config.yml @@ -0,0 +1,34 @@ +service: + extensions: [jaeger_storage, jaeger_query] + pipelines: + traces: + receivers: [otlp] + processors: [batch] + exporters: [jaeger_storage_exporter] + telemetry: + resource: + service.name: jaeger + +extensions: + jaeger_query: + storage: + traces: traces-storage + jaeger_storage: + backends: + traces-storage: + memory: + max_traces: 100000 + +receivers: + otlp: + protocols: + grpc: + http: + endpoint: "0.0.0.0:4318" + +processors: + batch: + +exporters: + jaeger_storage_exporter: + trace_storage: traces-storage diff --git a/tracing/prometheus/prometheus.yml b/tracing/prometheus/prometheus.yml new file mode 100644 index 0000000..56c3dc2 --- /dev/null +++ b/tracing/prometheus/prometheus.yml @@ -0,0 +1,7 @@ +global: + scrape_interval: 5s + +scrape_configs: + - job_name: trace-metrics + static_configs: + - targets: [ "jaeger:8889" ]