Connect/Integrate jaeger-ingest and jaeger-collector with a Kafka-Enabled Azure Event Hub which is provided by a PaaS. However, the kafka service provided by the platform only supports SASL authentication with e.g. the following settings:
sasl.mechanism=PLAIN
security.protocol=SASL_SSL
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required
username="$ConnectionString"
password="{MY.EVENTHUBS.CONNECTION.STRING}";
see: https://github.com/Azure/azure-event-hubs-for-kafka
Lots of other tools like fluent-bit, filebeat, logstash or flink, spark,... already support to connect to an Kafka enabled Azure Event Hub.
Jaeger does not support to connect to an Azure Event Hub that is Kafka-enabled currently.
So its not possible to realize an architecture like the one described here: https://www.jaegertracing.io/img/architecture-v2.png.
There is already a PR (https://github.com/jaegertracing/jaeger/issues/1966) which is adding Basic Auth for Kafka to jeager-collector. This could be a starting point / motivation to support all other neccesary settings/properties mentioned avove to connect to a Kafka enabled Azure Event Hub too.
I am picking it up next.
Sounds great! If you have any questions regarding the kafka enabled Azure Event Hub please don't hestitate to ask - also if I can help/assist you in any other direction.
"Unable to create consumer","error":"invalid versionSASL_SSL" I got this error while connecting to kafka. Any idea how to fix this one ?
Any update on this? we also have the same requirement. Thanks.
I had to override the report spans function to get it send messages to Kafka instead of jaeger-agent
Sounds great! If you have any questions regarding the kafka enabled Azure Event Hub please don't hestitate to ask - also if I can help/assist you in any other direction.
I need to use confluent Kafka (Provisioned on Azure) as storage type. How can I pass sasl info from jaeger-collector?
Not sure if there's anything special for Confluent Kafka, but you can specify the username/password via flags. All possible flags can be seen via docker run -e SPAN_STORAGE_TYPE=kafka jaegertracing/jaeger-collector:1.18 --help:
--kafka.producer.plaintext.password string The plaintext Password for SASL/PLAIN authentication
--kafka.producer.plaintext.username string The plaintext Username for SASL/PLAIN authentication
Most helpful comment
I am picking it up next.