Out of Process adapter - missing traffic in Kiali

Hi,

I have created an out of process adapter for Mixer. It performs basic authentication check based on the headers. I can see the request coming in from the ingress gateway and routing to my service that requires the authentication check. If I read it correctly, the service then sends the request to mixer based on rule match and my adapter handler is invoked. I can see in my adapter logs that the request is coming through and my adapter is able to handle authentication. The services are functioning perfectly fine. The only thing missing is that Kiali is unable to see traffic going into the adapter. I added promhttp handler to my adapter and exposed 9090 port as well. I can see that /metrics endpoint is returning the data and I have added following to the deployment.yaml

annotations:
        prometheus.io/scrape: "true"
        prometheus.io/port: "9090"

Given the above case, I have two questions:

  1. Is there any specific configuration that Kiali is looking for in case of an adapter without sidecar? Prometheus is able to scrape the pod for metrics. Kiali doesn’t see any traffic.

  2. Can out of process adapter work with a sidecar? I noticed if I inject sidecar to the adapter pod, Kiali sees it but then my adapter functionality breaks. I noticed that grafana, prometheus show up in the Kiali dashboard even when they don’t have a sidecar.

This is what I see in prometheus query dashboard:

promhttp_metric_handler_requests_total{app="authadapter",code="200",job="kubernetes-pods",namespace="istio-system",pod_name="authadapter-77c7669467-nb8wv",pod_template_hash="77c7669467",version="0.1.0"} 271

Hi!

We do not currently support injecting istio sidecar into istio out-of-process telemetry adapters due to the circularity problem: traffic to the adapter would create an explosive set of self-referential telemetry.

You can use any other means of telemetry collection (e.g. integrate with opencensus directly in the adapter, Envoy native telemetry, gRPC interceptors, etc).

–kuat

@kuat, Thanks for the prompt response. This really helped clear out things.