Zorka agent can send trace data to Zipkin and Jaeger collectors. Currently only Zipkin JSON format is supported, so for Jaeger it is necessary to enable Zipkin v2 API.
Configuring zipkin output
In order to configure zipkin output, add following entries to zorka.properties
:
tracer = yes
tracer.output.zipkin = no
tracer.output.zipkin.format = json
tracer.output.zipkin.url = http://zipkin.mycompany.com:9411/api/v2/spans
Note that this works independently from ZICO output, so both outputs can be configured at once.
If ZICO is not enabled (tracer.net = no
) and only zipkin output is working, it is desirable to exclude all ordinary methods from tracer, so application will start up faster, add following entry to zorka.properties
:
tracer.exclude = **
Configuring TLS
Note that TLS support for Zipkin on HTTP seems to be a bit non-standard, it is probably not fully supported configuration. However, zorka agent still supports it.
Creating web server certificate and private key and configure it in server.ssl
and armeria.ssl
sections of zipkin configuration:
openssl genrsa -out zipkin.mycompany.com.key 2048
openssl req -new -key zipkin.mycompany.com.key -subj '/CN=zipkin.mycompany.com' -out zipkin.mycompany.com.csr
openssl x509 -req -in zipkin.mycompany.com.csr -CA ca.crt -CAkey ca.key -days 365 -out zipkin.mycompany.com.crt
openssl pkcs12 -export -in zipkin.mycompany.com.crt -inkey zipkin.mycompany.com.key -name zipkin.mycompany.com -password pass:changeit -out zipkin.mycompany.com.p12
In zorka.properties
proper trust store and https url needs to be provided:
tracer.output.zipkin.url = https://zipkin.mycompany.com:9411/api/v2/spans
tracer.output.zipkin.truststore = /path/to/myall/zorka/ca.jks
tracer.output.zipkin.truststore.pass = changeit