Changelog History
Page 1
-
v2.17.0
September 24, 2019 -
v2.16.2 Changes
August 24, 20192019-08-24
-
v2.16.1 Changes
August 16, 20192019-08-16
-
v2.16.0 Changes
August 10, 20192019-08-10
-
v2.15.0 Changes
July 05, 2019ActiveMQ 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.
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!
๐ 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
- Elasticsearch span documents are written with ID
-
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.
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 ourPOST /api/v2/spans
endpoint. This listens on the same port as normal http traffic whenCOLLECTOR_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 keyspaceSTORAGE_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 keyspaceSTORAGE_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 toKAFKA_BOOTSTRAP_SERVERS
instead.โก๏ธ Other notable updates
- โ Zipkin Server is now using the latest Spring boot 2.1.4
-
v2.12.9 Changes
April 12, 20192019-04-12