Tracing external services

#1

Hi,
I have Istio 1.1.1 with tracing enabled. Everything works flawlessly except one thing: tracing to external services. I can see outgoing connections in Kiali without a problem, but not in Jaeger traces. Is this even supported or are we getting traces only for internal services?

Insight much appreciated.

---
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
    name: external-https-ipinfo-io
spec:
    hosts:
        - ipinfo.io
    ports:
        -   number: 443
            name: https
            protocol: HTTPS
    resolution: DNS
    location: MESH_EXTERNAL
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
    name: external-https-ipinfo-io
spec:
    hosts:
        - ipinfo.io
    tls:
        -   match:
                -   port: 443
                    sni_hosts:
                        - ipinfo.io
            route:
                -   destination:
                        host: ipinfo.io
                        port:
                            number: 443
                    weight: 100
0 Likes

#2

My guess would be that Kiali is showing the external service as the destination service name is reported in the metrics.

However, Jaeger/Zipkin would only be able to show the tracing from the external service if it also reported tracing information to the tracing backend. Has the external services been configured to do this?

0 Likes

#3

No, they are completely autonomous, outside of our control. Maybe if we were to route traffic thru egress gateway, that could do the tracing?

I’m of course assuming that this would show only the “outer” call to the external services, not what happens inside them.

0 Likes

#4

If you used the egress gateway, then I believe you would just see spans associated with the “istio-egressgateway” service, rather than associated with whatever your external service name is called.

0 Likes