Skip to content

Commit abb6560

Browse files
szedan-rhclaude
andcommitted
feat: add Jaeger tracing observability to OpenShift deployment
Adds Jaeger all-in-one deployment for distributed tracing support in the semantic router dashboard. Fixes the "Jaeger not configured" error on the tracing page. Changes: - deploy/openshift/observability/jaeger/deployment.yaml: Jaeger all-in-one container with OTLP, gRPC, HTTP, and Zipkin endpoints - deploy/openshift/observability/jaeger/service.yaml: ClusterIP service exposing all Jaeger ports (UI:16686, OTLP:4317/4318, etc.) - deploy/openshift/observability/jaeger/route.yaml: OpenShift route for external Jaeger UI access Configuration: - Memory-based trace storage (10,000 max traces) - OTLP collector enabled for OpenTelemetry integration - No QUERY_BASE_PATH set to allow proper static asset loading through dashboard proxy - Security context with non-root user and dropped capabilities - Resource limits: 512Mi-1Gi memory, 250m-500m CPU The dashboard's existing Jaeger proxy configuration at router.go:317-350 handles proxying to http://jaeger:16686 via the TARGET_JAEGER_URL environment variable already configured in dashboard-deployment.yaml. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]> Signed-off-by: Senan Zedan <[email protected]>
1 parent 33306f4 commit abb6560

File tree

3 files changed

+144
-0
lines changed

3 files changed

+144
-0
lines changed
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
name: jaeger
5+
namespace: vllm-semantic-router-system
6+
labels:
7+
app.kubernetes.io/name: jaeger
8+
app.kubernetes.io/component: observability
9+
app.kubernetes.io/part-of: semantic-router-stack
10+
spec:
11+
replicas: 1
12+
selector:
13+
matchLabels:
14+
app.kubernetes.io/name: jaeger
15+
app.kubernetes.io/component: observability
16+
template:
17+
metadata:
18+
labels:
19+
app.kubernetes.io/name: jaeger
20+
app.kubernetes.io/component: observability
21+
app.kubernetes.io/part-of: semantic-router-stack
22+
spec:
23+
securityContext:
24+
runAsNonRoot: true
25+
seccompProfile:
26+
type: RuntimeDefault
27+
containers:
28+
- name: jaeger
29+
image: jaegertracing/all-in-one:latest
30+
ports:
31+
- name: ui
32+
containerPort: 16686
33+
protocol: TCP
34+
- name: otlp-grpc
35+
containerPort: 4317
36+
protocol: TCP
37+
- name: otlp-http
38+
containerPort: 4318
39+
protocol: TCP
40+
- name: jaeger-grpc
41+
containerPort: 14250
42+
protocol: TCP
43+
- name: jaeger-thrift
44+
containerPort: 14268
45+
protocol: TCP
46+
- name: zipkin
47+
containerPort: 9411
48+
protocol: TCP
49+
env:
50+
- name: COLLECTOR_OTLP_ENABLED
51+
value: "true"
52+
- name: SPAN_STORAGE_TYPE
53+
value: "memory"
54+
- name: MEMORY_MAX_TRACES
55+
value: "10000"
56+
securityContext:
57+
allowPrivilegeEscalation: false
58+
capabilities:
59+
drop:
60+
- ALL
61+
seccompProfile:
62+
type: RuntimeDefault
63+
livenessProbe:
64+
httpGet:
65+
path: /
66+
port: 16686
67+
initialDelaySeconds: 30
68+
periodSeconds: 10
69+
timeoutSeconds: 5
70+
failureThreshold: 3
71+
readinessProbe:
72+
httpGet:
73+
path: /
74+
port: 16686
75+
initialDelaySeconds: 10
76+
periodSeconds: 5
77+
timeoutSeconds: 5
78+
failureThreshold: 3
79+
resources:
80+
requests:
81+
memory: "512Mi"
82+
cpu: "250m"
83+
limits:
84+
memory: "1Gi"
85+
cpu: "500m"
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
apiVersion: route.openshift.io/v1
2+
kind: Route
3+
metadata:
4+
name: jaeger
5+
namespace: vllm-semantic-router-system
6+
labels:
7+
app.kubernetes.io/name: jaeger
8+
app.kubernetes.io/component: observability
9+
app.kubernetes.io/part-of: semantic-router-stack
10+
spec:
11+
to:
12+
kind: Service
13+
name: jaeger
14+
weight: 100
15+
port:
16+
targetPort: ui
17+
tls:
18+
termination: edge
19+
insecureEdgeTerminationPolicy: Redirect
20+
wildcardPolicy: None
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
apiVersion: v1
2+
kind: Service
3+
metadata:
4+
name: jaeger
5+
namespace: vllm-semantic-router-system
6+
labels:
7+
app.kubernetes.io/name: jaeger
8+
app.kubernetes.io/component: observability
9+
app.kubernetes.io/part-of: semantic-router-stack
10+
spec:
11+
type: ClusterIP
12+
ports:
13+
- name: ui
14+
port: 16686
15+
targetPort: 16686
16+
protocol: TCP
17+
- name: otlp-grpc
18+
port: 4317
19+
targetPort: 4317
20+
protocol: TCP
21+
- name: otlp-http
22+
port: 4318
23+
targetPort: 4318
24+
protocol: TCP
25+
- name: jaeger-grpc
26+
port: 14250
27+
targetPort: 14250
28+
protocol: TCP
29+
- name: jaeger-thrift
30+
port: 14268
31+
targetPort: 14268
32+
protocol: TCP
33+
- name: zipkin
34+
port: 9411
35+
targetPort: 9411
36+
protocol: TCP
37+
selector:
38+
app.kubernetes.io/name: jaeger
39+
app.kubernetes.io/component: observability

0 commit comments

Comments
 (0)