Search code examples
kubernetesistiozipkinjaegerambassador

Ambassador tracing integration with Istio's Jaeger


I have a working Ambassador and a working Istio and I use the default Jaeger tracer in Istio which works fine.

Now I would like to make Ambassador report trace data to Istio's Jaeger.

Ambassador documentation suggests that Jaeger is supported with the Zipkin driver, but gives example only for usage with Zipkin.

https://www.getambassador.io/user-guide/with-istio/#tracing-integration

So I checked the ports of jaeger-collector service, and picked the http: jaeger-collector-http 14268/TCP

kubectl describe svc jaeger-collector -n istio-system

And modified the TracingService shown in the Ambassador docs:

apiVersion: getambassador.io/v2
kind: TracingService
metadata:
  name: tracing
  namespace: {{ .Values.namespace }}
spec:
  #service: "zipkin.istio-system:9411"
  service: "jaeger-collector.istio-system:14268"
  driver: zipkin
  ambassador_id: ambassador-{{ .Values.namespace }}
  config: {}

But I cannot see trace data from Ambassador in Jaeger.

Does anyone have any experience on this topic?


Solution

  • The answer here is to install istio with --set values.global.tracer.zipkin.address as provided in istio documentation

    istioctl manifest apply --set values.global.tracer.zipkin.address=<jaeger-collector-service>.<jaeger-collector-namespace>:9411
    

    And


    Use the original TracingService setting: service: "zipkin.istio-system:9411" as Donato Szilagyi confirmed in comments.

    apiVersion: getambassador.io/v2
    kind: TracingService
    metadata:
      name: tracing
      namespace: {{ .Values.namespace }}
    spec:
      service: "zipkin.istio-system:9411"
      driver: zipkin
      ambassador_id: ambassador-{{ .Values.namespace }}
      config: {}
    

    Great! It works. And this time I used the original TracingService setting: service: "zipkin.istio-system:9411" – Donato Szilagy