All Versions
Latest Version
Avg Release Cycle
19 days
Latest Release
1621 days ago

Changelog History
Page 1

  • v2.17.0

    September 24, 2019
  • v2.16.2 Changes

    August 24, 2019


  • v2.16.1 Changes

    August 16, 2019


  • v2.16.0 Changes

    August 10, 2019


  • v2.15.0 Changes

    July 05, 2019

    ActiveMQ 5.x span transport

    โœ… Due to popular demand, we've added support for ActiveMQ 5.x. Zipkin server will connect to ActiveMQ when the env variable ACTIVEMQ_URL is set to a valid broker. Thanks very much to @IAMTJW for work on this feature and @thanhct for testing it against AWS MQ.

    Ex. simple usage against a local broker

    ACTIVEMQ\_URL=tcp://localhost:61616 java -jar zipkin.jar

    ๐Ÿณ Ex. usage with docker against a remote AWS MQ failover group

    docker run -d -p 9411:9411 -e ACTIVEMQ\_URL='failover:(ssl://,ssl://' -e ACTIVEMQ\_USERNAME=zipkin -e ACTIVEMQ\_PASSWORD=zipkin12345678 -e ACTIVEMQ\_CONCURRENCY=8 openzipkin/zipkin

    Rewrite of Zipkin Lens global search component

    ๐Ÿ’ป One of the most important roles in open source is making sure the project is maintainable. As features were added in our new UI, maintainability started to degrade. Thanks to an immense amount of effort by @tacigar, we now have new, easier to maintain search component. Under the covers, it is implemented in Material-UI and React Hooks.

    Screenshot 2019-07-05 at 2 54 37 PM

    Behind the crisp new look is clean code that really helps the sustainability of our project. Thanks very much to @tacigar for his relentless attention.

    Refreshed Grafana Dashboard

    ๐Ÿณ While many have tried our Grafana dashboard either directly or via our docker setup, @mstaalesen really dug deep. He noticed some things drifted or were in less than ideal places. Through a couple weeks of revision, we now have a tighter dashboard. If you have suggestions, please bring them to Gitter as well!

    Screenshot 2019-07-05 at 2 41 30 PM

    ๐Ÿ›  Small, but appreciated fixes

    • ๐Ÿ›  Fixes a bug where a Java 8 class could be accidentally loaded when in Java 1.7
    • Ensures special characters are not used in RabbitMQ consumer tags (thx @bianxiaojin)
    • ๐Ÿ‘‰ Shows connect exceptions when using RabbitMQ (thx @thanhct)
    • ๐Ÿ›  Fixes glitch where health check wasn't reported properly when throttled (thx @lambcode)
  • v2.14.2 Changes

    May 15, 2019

    ๐Ÿš€ Zipkin 2.14 adds storage throttling and Elasticsearch 7 support. We've also improved efficiency around span collection and enhanced the UI. As mentioned last time, this release drops support for Elasticsearch v2.x and Kafka v0.8.x. Here's a run-down of what's new.

    Storage Throttling (Experimental)

    ๐Ÿ‘ท How to manage surge problems in collector architecture is non-trivial. While we've collected resources for years about this, only recently we had a champion to take on some mechanics in practical ways. @Logic-32 fleshed out concerns in collector surge handling and did an excellent job evaluating options for those running pure http sites.

    Towards that end, @Logic-32 created an experimental storage throttling feature (bundled for your convenience). When STORAGE_THROTTLE_ENABLED=true calls to store spans pay attention to storage errors and adjust backlog accordingly. Under the hood, this uses Netfix concurrency limits.

    ๐Ÿ‘€ Craig tested this at his Elasticsearch site, and it resulted in far less dropped spans than before. If you are interested in helping test this feature, please see the configuration notes and join gitter to let us know how it works for you.

    Elasticsearch 7.x

    ๐Ÿ‘€ Our server now supports Elasticsearch 6-7.x formally (and 5.x as best efforts). Most notably, you'll no longer see colons in your index patterns if using Elasticsearch 7.x. Thank to @making and @chefky for the early testing of this feature as quite a lot changed under the hood!

    ๐Ÿ’ป Lens UI improvements

    0๏ธโƒฃ @tacigar continues to improve Lens so that it can become the default user interface. He's helped tune the trace detail screen, notably displaying the minimap more intuitively based on how many spans are in the trace. You'll also notice the minimap has a slider now, which can help stabilize the area of the trace you are investigating.

    Significant efficiency improvements

    ๐Ÿ“œ Our Armeria collectors (http and grpc) now work natively using pooled buffers as opposed to byte arrays with renovated protobuf parsers. The sum this is more efficient trace collection when using protobuf encoding. Thanks very much to @anuraaga for leading and closely reviewing the most important parts of this work.

    ๐Ÿ‘ No more support for Elasticsearch 2.x and Kafka 0.8.x

    ๐Ÿš€ We no longer support Elasticsearch 2.x or Kafka 0.8.x. Please see advice mentioned in our last release if you are still on these products.

    Scribe is now bundled (again)

    ๐Ÿšš We used to bundle Scribe (Thrift RPC span collector), but eventually moved it to a separate module due to it being archived technology with library conflicts. Our server is now powered by Armeria, which natively supports thrift. Thanks to help from @anuraaga, the server has built-in scribe support for those running legacy applications. set SCRIBE_ENABLED=true to use this.

    โšก๏ธ Other notable updates

    • Elasticsearch span documents are written with ID ${traceID}-${MD5(json)} to allow for server-side deduplication
    • โœ… Zipkin Server is now using the latest Spring Boot 2.1.5 and Armeria 0.85.0
  • v2.14.1

    June 13, 2019
  • v2.14.0

    May 15, 2019
  • v2.13.0 Changes

    May 01, 2019

    ๐Ÿš€ Zipkin 2.13 includes several new features, notably a gRPC collection endpoint and remote service name indexing. Lens, our new UI, is fast approaching feature parity, which means it will soon be default. End users should note this is the last release to support Elasticsearch v2.x and Kafka v0.8.x. Finally, this our first Apache Incubating release, and we are thankful to the community's support and patience towards this.

    ๐Ÿ’ป Lens UI Improvements

    Led by @tacigar, Lens has been fast improving. Let's look at a couple recent improvements: Given a trace ID or json, the page will load what you want.

    Open trace json

    Go to trace ID

    0๏ธโƒฃ Right now, you can opt-in to Lens by clicking a button. The next step is when Lens is default and finally when the classic UI is deleted. Follow the appropriate projects for status on this.

    gRPC Collection endpoint

    Due to popular demand, we now publish a gRPC endpoint /zipkin.proto3.SpanService/Report which accepts the same protocol buffers ListOfSpans message as our POST /api/v2/spans endpoint. This listens on the same port as normal http traffic when COLLECTOR_GRPC_ENABLED=true. We will enable this by default after the feature gains more experience.

    โœ… We chose to publish a unary gRPC endpoint first, as that is most portable with limited clients such as grpc-web. Our interop tests use the popular Android and Java client Square Wire. Special thanks to @ewhauser for leading this effort and @anuraaga who championed much of the work in Armeria.

    Remote Service Name indexing

    ๐Ÿ’ป One rather important change in v2.13 is remote service name indexing. This means that the UI no longer confuses local and remote service name in the same drop-down. The impact is that some sites will have much shorter and more relevant drop-downs, and more efficient indexing. Here are some screen shots from Lens and Classic UIs:

    Schema impact

    โฌ†๏ธ We have tests to ensure the server can be upgraded ahead of schema change. Also, most storage types have the ability to automatically upgrade the schema. Here are relevant info if you are manually upgrading:


    If you set CASSANDRA_ENSURE_SCHEMA=false, you are opting out of automatic schema management. This means you need to execute these CQL commands manually to update your keyspace


    If you set CASSANDRA_ENSURE_SCHEMA=false, you are opting out of automatic schema management. This means you need to execute these CQL commands manually to update your keyspace


    No index changes were needed


    ๐Ÿ”Š Logs include the following message until instructions are followed:

    zipkin_spans.remote_service_name doesn't exist, so queries for remote service names will return empty.
    Execute: ALTER TABLE zipkin_spans ADD `remote_service_name` VARCHAR(255);
    ALTER TABLE zipkin_spans ADD INDEX `remote_service_name`;

    Dependency group ID change

    For those using Maven to download, note that the group ID for libraries changed from "io.zipkin.zipkin2" to "org.apache.zipkin.zipkin2". Our server components group ID changed from "" to "org.apache.zipkin"

    ๐Ÿ‘ This is the last version to support Elasticsearch 2.x

    โœ… Elastic's current support policy is latest major version (currently 7) and last minor (currently 6.7). This limits our ability to support you. For example, Elasticsearch's hadoop library is currently broken for versions 2.x and 5.x making our dependencies job unable to work on that range and also work on version 7.x.

    ๐Ÿš€ Our next release will support Elasticsearch 7.x, but we have to drop Elasticsearch 2.x support. Elasticsearch 5.x will be best efforts. We advise users to be current with Elastic's supported version policy, to avoid being unable to upgrade Zipkin.

    ๐Ÿ‘ This is the last version to support Kafka 0.8x

    ๐Ÿ”ง This is the last release of Zipkin to support connecting to a Kafka 0.8 broker (last release almost 4 years ago). Notably, this means those using KAFKA_ZOOKEEPER to configure their broker need to switch to KAFKA_BOOTSTRAP_SERVERS instead.

    โšก๏ธ Other notable updates

    • โœ… Zipkin Server is now using the latest Spring boot 2.1.4
  • v2.12.9 Changes

    April 12, 2019