Jaeger UI无服务依赖显示问题求助(附K8s部署配置)
Hey there, let's work through this Jaeger issue together. I notice you've deployed your Spring Boot app with a sidecar Jaeger Agent in Minikube, but aren't seeing any services or dependencies in the Jaeger UI. Let's break down the key fixes and checks to resolve this:
1. Fix Jaeger Agent's Collector Connection
Looking at your Deployment config for the Jaeger Agent, you're using --collector.host-port=jaeger-collector.jaeger-infra.svc:14267 — but you deployed Jaeger into the kube-system namespace (via your kubectl create commands). The correct service address for the Collector should point to the kube-system namespace instead:
--collector.host-port=jaeger-collector.kube-system.svc:14267
If the Agent can't reach the Collector, no traces will be sent to Jaeger's backend, which directly causes the empty UI.
2. Fix Mismatched Service Selector
Your Spring Boot Service has a selector jaeger-infra: jaeger-tax, but your Deployment's pod labels are app: tax-app, version: latest. These don't match at all! The Service can't route traffic to your app pods, so no requests are being traced. Update the Service's selector to match the Deployment's labels:
spec: selector: app: tax-app
3. Verify Spring Boot Tracing Configuration
Make sure your Spring Boot app is properly set up to send traces to the sidecar Agent:
- Add the Jaeger starter dependency to your build file (Maven example):
<dependency> <groupId>io.opentracing.contrib</groupId> <artifactId>opentracing-spring-jaeger-starter</artifactId> <version>3.2.2</version> </dependency> - Add these properties to
application.properties(since the Agent shares the same container,localhostworks):spring.application.name=tax-app opentracing.jaeger.udp-sender.host=localhost opentracing.jaeger.udp-sender.port=6831
This ensures your app generates and sends spans to the Agent for processing.
4. Check Component Health & Logs
- First, confirm all Jaeger and Elasticsearch components are running in
kube-system:kubectl get pods -n kube-system | grep -E "jaeger|elasticsearch" - Check the Jaeger Agent logs for connection errors (replace
<pod-name>with your tax-app pod name, which lives in the default namespace unless you specified otherwise):
Look for errors like "failed to connect to collector" — this would confirm the address issue we fixed earlier.kubectl logs <pod-name> jaeger-agent - Check your Spring Boot app logs to ensure it's receiving requests and generating spans.
5. Generate Test Traces
After fixing the above, send a few requests to your Spring Boot app (you can port-forward the Service to access it locally):
kubectl port-forward service/tax 8080:8080
Then hit your app's endpoints (like http://localhost:8080/your-test-endpoint) a few times. Wait a minute, then refresh the Jaeger UI — you should see your tax-app service appear, along with traces and dependencies.
内容的提问来源于stack exchange,提问作者Sourav

