APIcast
APIcast copied to clipboard
opentracing / RHT Service Mesh: jaeger-agent not exposed by OCP service
Hello. In Red hat Service Mesh, the jaeger agent is now deployed as a daemonset. I'm trying to configure the NGinx/Jaeger opentracing libraries embedded in apicast to report to the Jaeger functionality of Red Hat Service Mesh and wondering if someone might have suggestions as per the following:
-
Previously in community isitio 1.0, the jaeger agent was bundled in a Deployment and exposed as a service. NGinx opentracing libraries in apicast had no problem pushing UDP based spans to this jaeger agent via a config similar to the following:
"localAgentHostPort": "jaeger-agent.istio-system:6831"
-
In Red Hat Service Mesh, the jaeger agent is deployed as a DaemonSet. The implication is that it can't be exposed as a service. The NGinx opentracing libraries need to be configured to push UDP spans to :
<hostname of OCP node that pod happens to reside on>:6831
. Not sure how this could be done via a jaeger_config.json ? -
Red Hat Service Mesh does expose the jaeger-collector as a service. Subsequently, it is possible that applications (such apicast) could push spans directly via TCP to jaeger-collector. I've been skimming through the source code of both opentracing-cpp and nginx-opentracing to identify if those libraries allow for reporting directly to jaeger-collector. Not coming across anything however.
This is not really APIcast specific. We support whatever jaeger supports: https://github.com/3scale/APIcast/blob/master/gateway/conf.d/opentracing/jaeger.example.json I guess this question more belongs to https://github.com/jaegertracing/jaeger-client-cpp as ultimately that is the code doing the reporting.