diff --git a/docs/JAEGER.md b/docs/JAEGER.md index ce13bc1..79e6b96 100644 --- a/docs/JAEGER.md +++ b/docs/JAEGER.md @@ -56,7 +56,8 @@ curl -X POST https://app.roussev.com/items/v1/items \ **Components:** - **Items Service**: Sends traces via OpenTelemetry Protocol (OTLP) -- **Jaeger Collector**: Receives traces on port 4318 (HTTP) and 4317 (gRPC) +- **Jaeger v2**: All-in-one binary that includes collector, query, and UI +- **OTLP Receivers**: Receives traces on port 4318 (HTTP) and 4317 (gRPC) - **Jaeger UI**: Web interface for viewing and analyzing traces - **Storage**: In-memory (configurable to use Elasticsearch, Cassandra, etc.) @@ -69,29 +70,27 @@ curl -X POST https://app.roussev.com/items/v1/items \ Location: `infra/k8s/observability/jaeger-deployment.yaml` **Key settings:** -- **Image**: `jaegertracing/all-in-one:1.52` -- **Storage**: In-memory (stores up to 10,000 traces) +- **Image**: `jaegertracing/jaeger:2.11.0` (Jaeger v2) +- **Storage**: In-memory (default for all-in-one mode) - **Resources**: 512Mi-1Gi memory, 200m-500m CPU -- **Base Path**: `/jaeger` (configured via `QUERY_BASE_PATH` env var) +- **Base Path**: `/jaeger` (configured via command-line args) **Ports:** - `16686`: Jaeger UI - `4318`: OTLP HTTP collector - `4317`: OTLP gRPC collector -**Environment Variables:** +**Configuration (Jaeger v2):** +Jaeger v2 uses command-line arguments instead of environment variables: ```yaml -env: - - name: COLLECTOR_OTLP_ENABLED - value: "true" - - name: QUERY_BASE_PATH - value: "/jaeger" - - name: SPAN_STORAGE_TYPE - value: "memory" - - name: MEMORY_MAX_TRACES - value: "10000" +args: + - "--set=receivers.otlp.protocols.grpc.endpoint=0.0.0.0:4317" + - "--set=receivers.otlp.protocols.http.endpoint=0.0.0.0:4318" + - "--set=extensions.jaeger_query.base_path=/jaeger" ``` +**Note:** Jaeger v2 uses the OpenTelemetry Collector configuration format. OTLP is enabled by default in all-in-one mode. + ### Items Service Configuration Location: `infra/k8s/apps/items-service-deployment.yaml` diff --git a/infra/k8s/local/jaeger-local.yaml b/infra/k8s/local/jaeger-local.yaml index 5005825..cd177a7 100644 --- a/infra/k8s/local/jaeger-local.yaml +++ b/infra/k8s/local/jaeger-local.yaml @@ -43,7 +43,7 @@ spec: spec: containers: - name: jaeger - image: jaegertracing/all-in-one:latest + image: jaegertracing/jaeger:2.11.0 ports: - containerPort: 16686 name: jaeger-ui @@ -51,9 +51,6 @@ spec: name: otlp-http - containerPort: 4317 name: otlp-grpc - env: - - name: COLLECTOR_OTLP_ENABLED - value: "true" resources: requests: memory: "256Mi" diff --git a/infra/k8s/observability/jaeger-deployment.yaml b/infra/k8s/observability/jaeger-deployment.yaml index c3027ad..c183723 100644 --- a/infra/k8s/observability/jaeger-deployment.yaml +++ b/infra/k8s/observability/jaeger-deployment.yaml @@ -43,7 +43,11 @@ spec: spec: containers: - name: jaeger - image: jaegertracing/all-in-one:1.52 + image: jaegertracing/jaeger:2.11.0 + args: + - "--set=receivers.otlp.protocols.grpc.endpoint=0.0.0.0:4317" + - "--set=receivers.otlp.protocols.http.endpoint=0.0.0.0:4318" + - "--set=extensions.jaeger_query.base_path=/jaeger" ports: - containerPort: 16686 name: jaeger-ui @@ -51,17 +55,6 @@ spec: name: otlp-http - containerPort: 4317 name: otlp-grpc - env: - - name: COLLECTOR_OTLP_ENABLED - value: "true" - # Configure Jaeger to work with /jaeger base path - - name: QUERY_BASE_PATH - value: "/jaeger" - # Memory storage settings (for production, consider using Elasticsearch or Cassandra) - - name: SPAN_STORAGE_TYPE - value: "memory" - - name: MEMORY_MAX_TRACES - value: "10000" resources: requests: memory: "512Mi" @@ -71,13 +64,13 @@ spec: cpu: "500m" livenessProbe: httpGet: - path: / + path: /jaeger port: 16686 initialDelaySeconds: 30 periodSeconds: 10 readinessProbe: httpGet: - path: / + path: /jaeger port: 16686 initialDelaySeconds: 10 periodSeconds: 5