All Versions
11
Latest Version
Avg Release Cycle
19 days
Latest Release
148 days ago

Changelog History
Page 1

  • v2.17.0

    September 24, 2019
  • v2.16.2

    August 24, 2019

    2019-08-24

  • v2.16.1

    August 16, 2019

    2019-08-16

  • v2.16.0

    August 10, 2019

    2019-08-10

  • v2.15.0

    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://b-da18ebe4-54ff-4dfc-835f-3862a6c144b1-1.mq.ap-southeast-1.amazonaws.com:61617,ssl://b-da18ebe4-54ff-4dfc-835f-3862a6c144b1-2.mq.ap-southeast-1.amazonaws.com:61617)' -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

    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

    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:

    STORAGE_TYPE=cassandra

    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

    STORAGE_TYPE=cassandra3

    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

    STORAGE_TYPE=elasticsearch

    No index changes were needed

    STORAGE_TYPE=mysql

    🔊 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 "io.zipkin.java" 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

    April 12, 2019

    2019-04-12