Role in the deployment¶
Jaeger collects distributed traces from DE
services, which is how a slow request is attributed to a specific service rather
than to "the DE". Services send spans to the collector endpoint configured in the
Jaeger section of the deployment group variables.
Jaeger is optional. Nothing user-facing depends on it, and it can be added to a running deployment later.
Prerequisites¶
- A search cluster to store spans in — OpenSearch, or Elasticsearch in older deployments.
- The manifests from cluster resources.
Deploy¶
kubectl create ns jaeger
kubectl apply -f resources/addons/jaeger/rollover-cron.yaml -n jaeger
kubectl apply -f resources/addons/jaeger/query.yaml -n jaeger
kubectl apply -f resources/addons/jaeger/collector.yaml -n jaeger
Each of those three manifests names the search cluster it talks to. If your
search cluster is not in the prod namespace, update the endpoint in all three
before applying:
- "http://elasticsearch.prod:9200"
+ "http://<SEARCH_SERVICE>.<NAMESPACE>:9200"
The rollover cron job is what keeps span indices from growing without bound. Deploy it, not just the collector and query components — a Jaeger install without rollover fills its storage and then takes the search cluster down with it.
Verify¶
kubectl -n jaeger get pods
kubectl -n jaeger logs deploy/jaeger-collector --tail=50