Where communities thrive

  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
Repo info
  • Jul 23 15:56
    jcchavezs commented #40
  • Jul 22 09:59
    andrei-dascalu commented #40
  • Jul 19 20:55
    IF034Java commented #158
  • Jul 19 19:08
    IF034Java opened #159
  • Jul 19 18:37
    basvanbeek commented #158
  • Jul 19 18:32
    IF034Java commented #158
  • Jul 16 22:22
    jcchavezs commented #158
  • Jul 16 22:09
    IF034Java opened #158
  • Jul 08 17:49
    Travis openzipkin/zipkin-go (master) still failing (1088)
  • Jul 07 17:46
    Travis openzipkin/zipkin-go (master) failed (1087)
  • Jul 06 18:12

    jcchavezs on master

    [maven-release-plugin] prepare … (compare)

  • Jul 06 18:12

    jcchavezs on 2.3.0


  • Jul 06 18:12

    jcchavezs on master

    [maven-release-plugin] prepare … (compare)

  • Jul 06 18:11

    jcchavezs on release-2.3.0


  • Jul 06 18:11

    crispywalrus on release-2.3.0


  • Jul 06 17:45
    Travis openzipkin/zipkin-go (master) errored (1086)
  • Jul 06 07:08
    notxcain commented #99
  • Jul 05 18:22
    ilseucolling opened #3357
  • Jul 05 18:22
    ilseucolling labeled #3357
  • Jul 05 18:10
    jonatan-ivanov edited #3356
Is there a zipkin v2 version of brave and does it maintain Java 6 support?
2 replies
Currently i am storing my zipkin trace details in MySQL db. When i try to do loadtest, no data is written to MySql db and zipkin ui does not show anything. Can someone guide me in this.
1 reply
jhonatan forero
Hi everyone!, what do you think about the new feature of AWS about container in Lambdas, check this out --> openzipkin/zipkin-aws#191
1 reply
Dimitrios Klimis
Hey everyone. I'm trying to mark a span as non-erroneous but I cannot find the way to do so. We're calling an API which returns 409 for valid cases. We don't throw any exception when the API returns 409. I'm not sure if there's some logic down the line that just converts HTTP 409s to errors. Any ideas?
1 reply
Stephen Hong

Hello team, I'm trying to convert Tags field in Zipkin's SpanModel from map to string. zSpans is defined like this so I'm trying to call zSpans.Tags but my terminal says

zSpans.Tags undefined (type []*model.SpanModel has no field or method Tags)

which I am confused of because there is a Tags field in SpanModel. Is there a better way to refer to Zipkin's Tags field?

5 replies
Arun Gopalpuri
How can i make sure spans get sent to zipkin before lambda completes (using zipkin-go). Use Flush() even after Finish()?
8 replies
Koushik Arvapally
Hi everyone , Im trying to implement authorization using go-proxy for zipkin , I'm able to do authrozagtion with API-key to api/v2. while I'm trying to add the authorization to zipkin UI -. I'm failing to add those , can some one help/guide me how this can be done ?
5 replies

Hey everyone, I want to use the kafka collector but my cluster is setup with SASL_SSL with GSSAPI sasl mechanism. The collector is having trouble connecting to the cluster. I also want to use kafka as storage so I will probably need to add similar configs for that as well. Can you please provide some help. I tried running the zipkin jar like this. I removed some of the sensitive information.

KAFKA_BOOTSTRAP_SERVERS=SASL_SSL://ip:port,SASL_SSL://ip:port java -Dzipkin.collector.kafka.overrides.sasl.mechanism=GSSAPI -Dzipkin.collector.kafka.overrides.security.protocol=SASL_SSL -Djava.security.auth.login.config=/path/jaas.conf -Djava.security.krb5.conf=/path/krb.conf -Djavax.security.auth.useSubjectCredsOnly=true -Dzipkin.collector.kafka.overrides.ssl.truststore.location=/path/truststore.jks -Dzipkin.collector.kafka.overrides.ssl.keystore.location=/path/keystore.jks -Dzipkin.collector.kafka.overrides.ssl.truststore.password=pass -Dzipkin.collector.kafka.overrides.ssl.keystore.password=pass -Dzipkin.collector.kafka.overrides.ssl.key.password=pass -Dzipkin.collector.kafka.overrides.sasl.kerberos.service.name=name -jar zipkin.jar --logging.level.zipkin2=DEBUG

The zipkin server starts with no errors but doesn't seem like the collector is connected to the cluster. Am I using the right properties?

I also tried using the docker zipkin image. These are the env I set when creating the container. It's pretty much the same as above.

KAFKA_BOOTSTRAP_SERVERS=SASL_SSL://ip:port,SASL_SSL://ip:port JAVA_OPTS=-Dzipkin.collector.kafka.overrides.sasl.mechanism=GSSAPI -Dzipkin.collector.kafka.overrides.security.protocol=SASL_SSL -Djava.security.auth.login.config=/path/jaas.conf -Djava.security.krb5.conf=/path/krb.conf -Djavax.security.auth.useSubjectCredsOnly=true -Dzipkin.collector.kafka.overrides.ssl.truststore.location=/path/truststore.jks -Dzipkin.collector.kafka.overrides.ssl.keystore.location=/path/keystore.jks -Dzipkin.collector.kafka.overrides.ssl.truststore.password=pass -Dzipkin.collector.kafka.overrides.ssl.keystore.password=pass -Dzipkin.collector.kafka.overrides.ssl.key.password=pass -Dzipkin.collector.kafka.overrides.sasl.kerberos.service.name=name

When the zipkin container starts up, I get this class not found error. Is the java inside the container missing that class? How can I add it?

org.apache.kafka.common.KafkaException: Failed to construct kafka consumer
        at org.apache.kafka.clients.consumer.KafkaConsumer.<init>(KafkaConsumer.java:819) ~[kafka-clients-2.7.0.jar:?]
        at org.apache.kafka.clients.consumer.KafkaConsumer.<init>(KafkaConsumer.java:646) ~[kafka-clients-2.7.0.jar:?]
        at org.apache.kafka.clients.consumer.KafkaConsumer.<init>(KafkaConsumer.java:626) ~[kafka-clients-2.7.0.jar:?]
        at zipkin2.collector.kafka.KafkaCollectorWorker.run(KafkaCollectorWorker.java:69) ~[zipkin-collector-kafka-2.23.2.jar:?]
        at zipkin2.collector.kafka.KafkaCollector$LazyKafkaWorkers.lambda$guardFailures$0(KafkaCollector.java:265) ~[zipkin-collector-kafka-2.23.2.jar:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:?]
        at java.lang.Thread.run(Unknown Source) [?:?]
Caused by: java.lang.NoClassDefFoundError: org/ietf/jgss/GSSException
        at org.apache.kafka.common.network.ChannelBuilders.create(ChannelBuilders.java:138) ~[kafka-clients-2.7.0.jar:?]
        at org.apache.kafka.common.network.ChannelBuilders.clientChannelBuilder(ChannelBuilders.java:73) ~[kafka-clients-2.7.0.jar:?]
        at org.apache.kafka.clients.ClientUtils.createChannelBuilder(ClientUtils.java:105) ~[kafka-clients-2.7.0.jar:?]
        at org.apache.kafka.clients.consumer.KafkaConsumer.<init>(KafkaConsumer.java:734) ~[kafka-clients-2.7.0.jar:?]
        ... 7 more
8 replies
Hi Zipkin - I am working on a group project for a data visualization course via UC Berkeley. We've decided to see if we can create some new, useful visualizations of trace data, both at the single trace level, and at the aggregate level (i.e. visualizations for groups of traces). Have two questions for the community: 1) are there good public datasets that we could use as we develop the viz? some sets of zipkin traces in JSON or other accessible format? 2) is there an existing list of visualizations that have been proposed for zipkin, but nobody's gotten around to implementing them?
4 replies
Petr Hybler

Hello guys, my zipkin is working pretty much ok .. the only problem I have is the cassandra integration ... I installed cassandra, run it ... but I cannot force zipkin use it's storage

by simply running "root@machineName ~]# STORAGE_TYPE=casandra java -jar /opt/zipkin/zipkin.jar" it fails to start with



Parameter 0 of constructor in zipkin2.server.internal.ZipkinQueryApiV2 required a bean of type 'zipkin2.storage.StorageComponent' that could not be found.


Consider defining a bean of type 'zipkin2.storage.StorageComponent' in your configuration.

4 replies
any thoughts ?
Koushik Arvapally
@anuraaga HI I am trying to do authorization for WEB UI , for API's I'm able do the authorization api-key, samething I'm trying to do with UI , can you please help me with UI changes ? or any other way to Protect the API's ,

Tried with adding zipkin security jar but getting

Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [zipkin.module.security.ZipkinSecurityModule]; nested exception is java.lang.IllegalStateException: Failed to introspect annotated methods on class zipkin.module.security.ZipkinSecurityModule

Hi all
I've encounter 404 error when sending span to new relic "https://trace-api.newrelic.com/trace/v1/api/v2/spans", 6 hours back. It was working before. Any ideas?
27 replies
The /api/v2/spans suffixes by zipkin RestTemplate . So that's why Im asking here.
Hi all,
Can any one guide me please how to trace all the data like database called from controller to JPA repository in zipkin spring boot client application
Roussi Abdelghani

Hi all,
I got Unable to establish connection to RabbitMQ server: Connection refused when trying to run zipkin-server with rabbitmq and elasticsearch, using this docker-compose file :

  version: '3.7'
      image: elasticsearch:7.10.1
      container_name: elasticsearch
      restart: on-failure
        - 9200:9200   
        #not recommended in production
         - "ES_JAVA_OPTS=-Xms750m -Xmx750m"   
         - discovery.type=single-node
      image: rabbitmq:3.8-management-alpine
      container_name: rabbitmq
      restart: on-failure
      - 5672:5672
      - 15672:15672
        RABBITMQ_DEFAULT_VHOST: ${rabbitmq_vhost}
        RABBITMQ_DEFAULT_USER: ${rabbitmq_user}
        RABBITMQ_DEFAULT_PASS: ${rabbitmq_pass}
      image: openzipkin/zipkin:2
      container_name: zipkin-server
      - rabbitmq
      - elasticsearch
      restart: on-failure
      - 9411:9411
        RABBIT_QUEUE: zipkin
        RABBIT_ADDRESSES: ${rabbitmq_host}
        RABBIT_PASSWORD: ${rabbitmq_pass}
        RABBIT_USER: ${rabbitmq_user}
        RABBIT_VIRTUAL_HOST: ${rabbitmq_vhost}
        RABBIT_USE_SSL: "false"
        STORAGE_TYPE: elasticsearch
        ES_HOSTS: ${elasticsearch_host}
        test: wget --no-verbose --tries=1 --spider http://localhost:9411/health  || exit 1
        interval: 10s
        start_period: 15s
        retries: 3
      image: openzipkin/zipkin-dependencies
      container_name: zipkin-dependencies
      - elasticsearch
      restart: on-failure
        STORAGE_TYPE: elasticsearch
        ES_HOSTS: ${elasticsearch_host}
        name: zipkin-monitoring
        name: zipkin-monitoring

knowing that rabbitmq and elastic starts normaly

2 replies
Stephen Hong
Hello team, I need some clarification on remoteEndpoint. Zipkin's documentation says it's an RPC (or messaging) span, indicating the other side of the connection, but I'm not sure of what this means. There is an ipv4 field under remoteEndpoint. Can it be an IP address of an external user?
2 replies
Hi Team, I am new here and to Zipkin as well. I am trying to start zipkin server by running Jar. can some one share the available arguments that i can pass to java -jar command? Also is there a shell script or anything handy that i can use. thanks!
4 replies
Archimedes Trajano
Dawid Węgliński
Hi team, is there any docs about adding custom headers as zipkin tags?
8 replies
SoftHaus IT
Hello, somebody help me to resolve this problem:
2021-02-25 12:51:30.776 WARN [/] 1 --- [orker-epoll-2-4] c.l.a.c.e.h.HttpHealthChecker : [creqId=485fac28, chanId=b5fb1c00, laddr=, raddr=elasticsearch/][http://elasticsearch:9200/_cluster/health#GET] Unexpected 4xx health check response: [:status=401, www-authenticate=Basic realm="security" charset="UTF-8", content-type=application/json; charset=UTF-8, content-length=411] A 4xx response generally indicates a misconfiguration of the client. Did you happen to forget to configure the HealthCheckedEndpointGroup's client options?
Arun Gopalpuri
How can I pass custom OKHttpClient (I want to be able to configure proxy, logging interceptor etc) to OkHttpSender? I submitted a PR as I couldn’t find a way to configure proxy on OKHttpSender openzipkin/zipkin-reporter-java#200
Petr Hybler

hello guys, another thing ... I was able to manage to run the zipkin and was able to store traces successfully in Cassandra.. but now it doesn't show any dependencies .. traces are all good, accurate and "realtime" but when I click on dependencies it's empty.. .I read I have to set the zipkin-dependencies.jar to be run periodically so I did (based on this article https://stackoverflow.com/questions/37459261/cant-view-any-dependencies-inside-zipkin-ui-dependencies-tab ) but hell - it doesn't show anything still.. I even tried to run that as a service .. but no luck either ...

my zipkin service:
Description=Managa Java service

ExecStart=/usr/bin/java -jar zipkin.jar


my zipkin-dependency.sh (crontab - every 5 mins)
STORAGE_TYPE=cassandra3 /usr/bin/java -jar /opt/zipkin/zipkin-dependencies.jar

crontab -l
*/5 * * * * cd /opt/zipkin && ./zipkin-dependencies.sh

any thoughts?

4 replies
Lukáš Vasek
hello, please is there any support for azure's servicebus? I mean mainly this library. We are using two libraries in our spring boot services one is based on JMS and second one is based on mentioned library. While for JMS everything is provided by spring boot and brave/zipkin for servicebus library not. So I'd like to see what are the options and how difficult it would be to develop such library. Thannks
5 replies
hi guys, would anyone here know why /api/v2/traces would return [] while /api/v2/trace/{trace_id} returns a valid trace?
1 reply
Archimedes Trajano
Does Zipkin work Amazon keyspaces as the cassandra store?
Petr Hybler

hello guys, I have a question .... I have finally managed to make Zipkin + Cassandra work together... however, to properly display dependencies I need to periodically run zipkin-dependencies.jar (as mentioned above) ... I do this via cron in linux ... the problem is -> it takes a little over 1hr to calc the data...

Is there any way to limit the spans to automatically check for those nonprocessed only? or any other way I can tune cassandra / zipkin-dependencies.jar to make it work faster? Any tips?

I am not sure if I should focus on the cassandra tuning or the problem is somewhere else ... I tried to run twice manually the zipkin-dependencies and it says:
Running Dependencies job for 2021-03-01: 1614556800000000 =< Span.timestamp 1614643199999999 for both instances ... so it obivously recalc the same data ...

2 replies


I'm running zipkin in a container and sending a get (wrapFetch/node-fetch) trace to it (zipkin-transport-http):

const { Tracer } = require('zipkin');
const { BatchRecorder } = require('zipkin'); // format data spans
const { HttpLogger } = require('zipkin-transport-http');
const fetch = require('node-fetch');

const wrapFetch = require('zipkin-instrumentation-fetch');
const CLSContext = require('zipkin-context-cls'); // continous local storage
const ctxImpl = new CLSContext();

const localServiceName = 'xxx';

const recorder = new BatchRecorder({
logger: new HttpLogger({
endpoint: http://localhost:9411/api/v1/spans

const tracer = new Tracer({ ctxImpl, recorder, localServiceName });

const remoteServiceName = 'youtube';
const zipkinFetch = wrapFetch(fetch, { tracer, remoteServiceName });

zipkinFetch('https://www.youtube.com/').then(res => res)

How do I go about instrumenting and sending my own span?


3 replies
vadlamudi tejaswini
Is it the right practice for applications to wait for the Zipkin collector to be available? Can the application proceed further to serve its users and send no trace info as a collector is unavailable? Maybe the application can somehow automatically sense the collector and reload it-self. Am I thinking correct?
1 reply
Hi everyone. My kafka cluster is using SASL_SSL GSSAPI. I have a kafka connect that is able to connect to authenticated cluster and produce and consume data from it. The issue is when I add the brave-kafka-interceptor and use the kafka collector, the connect is unable to produce data to cluster. The brave-kafka-interceptor is setup correctly because it works fine when using HTTP collector. I believe the interceptor also requires the SASL_SSL GSSAPI, truststore, keystore, jaas, krb configs when using with KAFKA collector. Does anyone know how I can set them? I already setup zipkin with the authentication configs and it seems to be connected to the cluster.
4 replies
Chris West
^ first time trying this thing out, presumably I'm missing something. My app talks to a db and a 3rd party service.
Seems like none of the folding or annotation stuff is available? I'm trying opentelemetry from node, there doesn't seem to be a way to override the serviceName for the http or the db? The remoteService? Is there some way to tag spans so they are remote? Change their kind? Really don't know where to look.
3 replies
Chris B
This may be answered somewhere else, but why does the Brave library expect headers to be in a case sensitive format when extracting them with an Extractor? For example it won't detect "x-b3-traceid" but will "X-B3-Traceid". I'm fairly certain the RFC for headers declares headers as case-insensitive
4 replies
Archimedes Trajano
Is there an existing Apache HTTPD module that enables Zipkin tracing?
3 replies

Hi all, running into a small issue connecting Zipkin to AWS Elasticsearch. Initially I was getting EmptyEndpointGroupException then I forced the health check off and realized that Zipkin couldn't find the AWS credentials so it's throwing "User: anonymous is not authorized to perform: es:ESHttpGet". This is what I'm using to execute:
STORAGE_TYPE=elasticsearch \
ES_HOSTS=https://<domain>.us-east-1.es.amazonaws.com/ \
java -Dloader.path='aws.jar,aws.jar!/lib' -Dspring.profiles.active=aws \
-cp zipkin.jar org.springframework.boot.loader.PropertiesLauncher

I've even tried to forcing the environment variables but still same issue:
STORAGE_TYPE=elasticsearch \
ES_HOSTS=https://<domain>.us-east-1.es.amazonaws.com/ \
AWS_ACCESS_KEY=<access> \
AWS_SECRET_KEY=<secret> \
java -Dloader.path='aws.jar,aws.jar!/lib' -Dspring.profiles.active=aws \
-cp zipkin.jar org.springframework.boot.loader.PropertiesLauncher

5 replies
Archimedes Trajano
OK probably religious issue here.... which is the recommended one Cassandra or Elasticsearch for the Storage option? After mucking around with ES, it seems that unless it's managed by AWS or you dedicate a whole computer to it. ES is genreally a pain in the arse to work with. Mind you I think Cassandra looks to be a big beast to deal with as well.
1 reply
Archimedes Trajano
I'm looking at https://zipkin.io/pages/architecture.html and I think there may need to be a second sequence diagram that shows two reporting components. From my current implementations (which could be wrong) it appears that each "service" must have access to the Zipkin reporter,
Arun Gopalpuri
How can we trace a call via reverse proxy using zipkin-go? Anyone has an example?
11 replies

Hello folks, we are seeing some fatal error: concurrent map read and map write errors in our main application process and further debugging shows some issue with Zipkin library: github.com/openzipkin/zipkin-go

goroutine 182 [running]:
runtime.throw(0xe75af5, 0x21)
        /usr/local/go/src/runtime/panic.go:774 +0x72 fp=0xc1c015f420 sp=0xc1c015f3f0 pc=0x4313f2
runtime.mapaccess2(0xcf7160, 0xc262f27e30, 0xc19f6391f0, 0xc19f6391f0, 0xc17eac231b)
        /usr/local/go/src/runtime/map.go:470 +0x278 fp=0xc1c015f468 sp=0xc1c015f420 pc=0x40fc58
reflect.mapaccess(0xcf7160, 0xc262f27e30, 0xc19f6391f0, 0xe6a8ed)
        /usr/local/go/src/runtime/map.go:1319 +0x3f fp=0xc1c015f4a0 sp=0xc1c015f468 pc=0x411f6f
reflect.Value.MapIndex(0xcf7160, 0xc1300544d0, 0x195, 0xcbb920, 0xc19f6391f0, 0x98, 0xcbb920, 0xc19f639250, 0x98)
        /usr/local/go/src/reflect/value.go:1176 +0x16d fp=0xc1c015f518 sp=0xc1c015f4a0 pc=0x49771d
. . .
github.com/openzipkin/zipkin-go/reporter.(*JSONSerializer).Serialize(0x164b018, 0xc1951c4480, 0x64, 0x90, 0x0, 0xc0e90ac380, 0x433160, 0xea6f90, 0xc000056a00)
        <autogenerated>:1 +0x72 fp=0xc1c015fe78 sp=0xc1c015fe30 pc=0xb6f892
github.com/openzipkin/zipkin-go/reporter/http.(*httpReporter).sendBatch(0xc0000293b0, 0xc1c015ffaf, 0x1)
        /src/go/pkg/mod/github.com/openzipkin/zipkin-go@v0.2.2/reporter/http/http.go:137 +0xb2 fp=0xc1c015ff90 sp=0xc1c015fe78 pc=0xb8a882
        /src/go/pkg/mod/github.com/openzipkin/zipkin-go@v0.2.2/reporter/http/http.go:99 +0x3f fp=0xc1c015ffd8 sp=0xc1c015ff90 pc=0xb8a49f
        /usr/local/go/src/runtime/asm_amd64.s:1357 +0x1 fp=0xc1c015ffe0 sp=0xc1c015ffd8 pc=0x4615c1
created by github.com/openzipkin/zipkin-go/reporter/http.NewReporter
        /src/go/pkg/mod/github.com/openzipkin/zipkin-go@v0.2.2/reporter/http/http.go:254 +0x2db

This is interesting as it is an error while serializing a Span for the Zipkin client. Upon closer inspection, there is a Tag map in the spans that seems a candidate for the concurrency issue. If the Span is being serialized and a new Tag or something is being added to it concurrently, we may run into an issue.

Does any of you have seen this issue or are aware of it? Any help would be appreciated.


3 replies
Andreas Behr
Hi everyone, I think I am not seeing the obvious solution here. How do I configure how much storage Zipkin is allowed to use. I am using elasticsearch as a backend with the docker-compose files from Zipkin.
5 replies
Fran Pregernik


I wanted to open a possible bug issue but came to ask here first.

I am using Spring Boot, Sleuth and Brave. There is a weird race condition that pops up and we are stumped.

The issue investigation is described here spring-cloud/spring-cloud-sleuth#1814 where Brave throws an exception "Parent can only be null in a local root". In the last message (https://github.com/spring-cloud/spring-cloud-sleuth/issues/1814#issuecomment-767389228) is the "stumped" part. In debug another subsequent call to the same method works fine.

Any help would be much appreciated.

6 replies
Somjit Nag

Is it possible to use custom id as a trace id in zipkin ?


We have around 10 Spring boot microservices, which communicate with each other via kafka. At the start of any flow, a message-id is generated by one of our microservices, and that is propagated to all the others as part of the message transfer. We search for this message-id in our kibana logs to find the error.
So I wanted to understand if Zipkin can work with the message-id that our ecosystem already produces, instead of generating a new one ?
B3 header question here. If I am packing up multiple traces to send to (in this case) datadog, do I just pick a trace to use for the b3 header or use multiple headers or some third thing?
2 replies
Petr Hybler

hello guys, I just have a question ... I have zipkin running together with cassandra as its persistent storage .. the issue I have is that with the external storage I have to recalc dependencies periodically .. it takes a bit over an hour to get that done ....

Is there the same issue with ElasticSearch ??? or is it faster? or do you have any tips how to speed it up??