-
The
kafka
flags were removed in favor ofkafka.producer
andkafka.consumer
flags (#1424, @ledor473)The following flags have been removed in the Collector and the Ingester:
--kafka.brokers --kafka.encoding --kafka.topic --ingester.brokers --ingester.encoding --ingester.topic --ingester.group-id
In the Collector, they are replaced by:
--kafka.producer.brokers --kafka.producer.encoding --kafka.producer.topic
In the Ingester, they are replaced by:
--kafka.consumer.brokers --kafka.consumer.encoding --kafka.consumer.topic --kafka.consumer.group-id
-
Introduce
kafka.producer
andkafka.consumer
flags to replacekafka
flags (#1360, @ledor473)The following flags have been deprecated in the Collector and the Ingester:
--kafka.brokers --kafka.encoding --kafka.topic
In the Collector, they are replaced by:
--kafka.producer.brokers --kafka.producer.encoding --kafka.producer.topic
In the Ingester, they are replaced by:
--kafka.consumer.brokers --kafka.consumer.encoding --kafka.consumer.group-id
- Support secure gRPC channel between agent and collector (#1391, @ghouscht, @yurishkuro)
- Allow to use TLS with ES basic auth (#1388, @pavolloffay)
- Make
esRollover.py init
idempotent (#1407 and #1408, @pavolloffay) - Allow thrift reporter if grpc hosts are not provided (#1400, @pavolloffay)
- Deprecate colon in index prefix in ES dependency store (#1386, @pavolloffay)
- Make grpc reporter default and add retry (#1384, @pavolloffay)
- Use
CQLSH_HOST
in final call tocqlsh
(#1372, @funny-falcon)
- UI pinned to version 1.1.0. The changelog is available here v1.1.0
- Discover dependencies table version automatically (#1364, @black-adder)
- Separate query-service functionality from http handler (#1312, @annanay25)
- Remove cassandra SASI indices (#1328, @black-adder)
Migration Path:
- Run
plugin/storage/cassandra/schema/migration/v001tov002part1.sh
which will copy dependencies into a csv, update thedependency UDT
, create a newdependencies_v2
table, and write dependencies from the csv into thedependencies_v2
table. - Run the collector and query services with the cassandra flag
cassandra.enable-dependencies-v2=true
which will instruct jaeger to write and read to and from the newdependencies_v2
table. - Update spark job to write to the new
dependencies_v2
table. The feature will be done in #58. - Run
plugin/storage/cassandra/schema/migration/v001tov002part2.sh
which will DELETE the old dependency table and the SASI index.
Users who wish to continue to use the v1 table don't have to do anything as the cassandra flag cassandra.enable-dependencies-v2
will default to false. Users may migrate on their own timeline however new features will be built solely on the dependencies_v2
table. In the future, we will remove support for v1 completely.
- Support certificates in elasticsearch scripts (#1339, @pavolloffay)
- Add ES Rollover support to main indices (#1309, @pavolloffay)
- Load ES auth token from file (#1319, @pavolloffay)
- Add username/password authentication to ES index cleaner (#1318, @gregoryfranklin)
- Add implementation of FindTraceIDs function for Elasticsearch reader (#1280, @vlamug)
- Support archive traces for ES storage (#1197, @pavolloffay)
- Use Zipkin annotations if the timestamp is zero (#1341, @geobeau)
- Use GRPC round robin balancing even if only one hostname (#1329, @benley)
- Tolerate whitespaces in ES servers and kafka brokers (#1305, @verma-varsha)
- Let cassandra servers contain whitespace in config (#1301, @karlpokus)
- Change Elasticsearch index prefix from
:
to-
(#1284, @pavolloffay)
Changed index prefix separator from :
to -
because Elasticsearch 7 does not allow :
in index name.
Jaeger query still reads from old indices containing -
as a separator, therefore no configuration or migration changes are required.
- Add CLI configurable
es.max-num-spans
while retrieving spans from ES (#1283, @annanay25)
The default value is set to 10000. Before no limit was applied.
- Update to jaeger-lib 2 and latest sha for jaeger-client-go, to pick up refactored metric names (#1282, @objectiser)
Update to latest version of jaeger-lib
, which includes a change to the naming of counters exported to
prometheus, to follow the convention of using a _total
suffix, e.g. jaeger_query_requests
is now
jaeger_query_requests_total
.
Jaeger go client metrics, previously under the namespace jaeger_client_jaeger_
are now under
jaeger_tracer_
.
- Add gRPC metrics to agent (#1180, @pavolloffay)
The following metrics:
jaeger_agent_tchannel_reporter_batch_size{format="jaeger"} 0
jaeger_agent_tchannel_reporter_batch_size{format="zipkin"} 0
jaeger_agent_tchannel_reporter_batches_failures{format="jaeger"} 0
jaeger_agent_tchannel_reporter_batches_failures{format="zipkin"} 0
jaeger_agent_tchannel_reporter_batches_submitted{format="jaeger"} 0
jaeger_agent_tchannel_reporter_batches_submitted{format="zipkin"} 0
jaeger_agent_tchannel_reporter_spans_failures{format="jaeger"} 0
jaeger_agent_tchannel_reporter_spans_failures{format="zipkin"} 0
jaeger_agent_tchannel_reporter_spans_submitted{format="jaeger"} 0
jaeger_agent_tchannel_reporter_spans_submitted{format="zipkin"} 0
jaeger_agent_collector_proxy{endpoint="baggage",result="err"} 0
jaeger_agent_collector_proxy{endpoint="baggage",result="ok"} 0
jaeger_agent_collector_proxy{endpoint="sampling",result="err"} 0
jaeger_agent_collector_proxy{endpoint="sampling",result="ok"} 0
have been renamed to:
jaeger_agent_reporter_batch_size{format="jaeger",protocol="tchannel"} 0
jaeger_agent_reporter_batch_size{format="zipkin",protocol="tchannel"} 0
jaeger_agent_reporter_batches_failures{format="jaeger",protocol="tchannel"} 0
jaeger_agent_reporter_batches_failures{format="zipkin",protocol="tchannel"} 0
jaeger_agent_reporter_batches_submitted{format="jaeger",protocol="tchannel"} 0
jaeger_agent_reporter_batches_submitted{format="zipkin",protocol="tchannel"} 0
jaeger_agent_reporter_spans_failures{format="jaeger",protocol="tchannel"} 0
jaeger_agent_reporter_spans_failures{format="zipkin",protocol="tchannel"} 0
jaeger_agent_reporter_spans_submitted{format="jaeger",protocol="tchannel"} 0
jaeger_agent_reporter_spans_submitted{format="zipkin",protocol="tchannel"} 0
jaeger_agent_collector_proxy{endpoint="baggage",protocol="tchannel",result="err"} 0
jaeger_agent_collector_proxy{endpoint="baggage",protocol="tchannel",result="ok"} 0
jaeger_agent_collector_proxy{endpoint="sampling",protocol="tchannel",result="err"} 0
jaeger_agent_collector_proxy{endpoint="sampling",protocol="tchannel",result="ok"} 0
- Rename tcollector proxy metric in agent (#1182, @pavolloffay)
The following metric:
jaeger_http_server_errors{source="tcollector-proxy",status="5xx"}
has been renamed to:
jaeger_http_server_errors{source="collector-proxy",status="5xx"}
- Add tracegen utility for generating traces (#1245, @yurishkuro)
- Use DCAwareRoundRobinPolicy as fallback for TokenAwarePolicy (#1285, @vprithvi)
- Add Zipkin Thrift as kafka ingestion format (#1256, @geobeau)
- Add
FindTraceID
to the spanstore interface (#1246, @vprithvi) - Migrate from glide to dep (#1240, @isaachier)
- Make tchannel timeout for reporting in agent configurable (#1034, @gouthamve)
- Add archive traces to all-in-one (#1189, @pavolloffay)
- Start moving components of adaptive sampling to OSS (#973, @black-adder)
- Add gRPC communication between agent and collector (#1165, #1187, #1181 and #1180, @pavolloffay)
- Update exposed ports in ingester dockerfile (#1289, @objectiser)
- Upgrade Shopify/Sarama for proper handling newest kafka servers 2.x by ingester (#1248, @vprithvi)
- Fix sampling strategies overwriting service entry when no sampling type is specified (#1244, @objectiser)
- Fix dot replacement for int (#1272, @pavolloffay)
- Add C* query to error logs (#1250, @vprithvi)
- Add locking around partitionIDToState map accesses (#1239, @vprithvi)
- Reorganize config manager packages in agent (#1198, @pavolloffay)
- UI pinned to version 1.0.0. The changelog is available here v1.0.0
- Fix link in scatter plot when embed mode (#283, @aljesusg)
- Fix rendering X axis in TraceResultsScatterPlot - pass milliseconds to moment.js (#274, @istrel)
- Make agent timeout for reporting configurable and fix flags overriding (#1034, @gouthamve)
- Fix metrics handler registration in agent (#1178, @pavolloffay)
- Refactor agent configuration (#1092, @pavolloffay)
The following agent flags has been deprecated in order to support multiple reporters:
--collector.host-port
--discovery.conn-check-timeout
--discovery.min-peers
New flags:
--reporter.tchannel.host-port
--reporter.tchannel.discovery.conn-check-timeout
--reporter.tchannel.discovery.min-peers
- Various changes around metrics produced by jaeger-query: Names scoped to the query component, generated for all span readers (not just ES), consolidate query metrics and include result tag (#1074, #1075 and #1096, @objectiser)
For example, sample of metrics produced for find_traces
operation before:
jaeger_find_traces_attempts 1
jaeger_find_traces_errLatency_bucket{le="0.005"} 0
jaeger_find_traces_errors 0
jaeger_find_traces_okLatency_bucket{le="0.005"} 0
jaeger_find_traces_responses_bucket{le="0.005"} 1
jaeger_find_traces_successes 1
And now:
jaeger_query_latency_bucket{operation="find_traces",result="err",le="0.005"} 0
jaeger_query_latency_bucket{operation="find_traces",result="ok",le="0.005"} 2
jaeger_query_requests{operation="find_traces",result="err"} 0
jaeger_query_requests{operation="find_traces",result="ok"} 2
jaeger_query_responses_bucket{operation="find_traces",le="0.005"} 2
- Configurable deadlock detector interval for ingester (#1134, @marqc)
- Emit spans for elastic storage backend (#1128, @annanay25)
- Allow to use TLS certificates for Elasticsearch authentication (#1139, @clyang82)
- Add ingester metrics, healthcheck and rename Kafka cli flags (#1094, @ledor473)
- Add a metric for number of partitions held (#1154, @vprithvi)
- Log jaeger-collector tchannel port (#1136, @mindaugasrukas)
- Support tracer env based initialization in hotrod (#1115, @eundoosong)
- Publish ingester as binaries and docker image (#1086, @ledor473)
- Use Go 1.11 (#1104, @isaachier)
- Tag images with commit SHA and publish to
-snapshot
repository (#1082, @pavolloffay)
- Fix child span context while tracing cassandra queries (#1131, @annanay25)
- Deadlock detector hack for Kafka driver instability (#1087, @vprithvi)
- Fix processor overriding data in a buffer (#1099, @pavolloffay)
- Span Search - Highlight search results (#238), @davit-y
- Span Search - Improve search logic (#237), @davit-y
- Span Search - Add result count, navigation and clear buttons (#234), @davit-y
- Use correct duration format for scatter plot (#266), @tiffon)
- Fix collapse all issues (#264), @tiffon)
- Use a moderately sized canvas for the span graph (#257), @tiffon)
- Compare two traces (#228, @tiffon)
- Make tags clickable (#223, @divdavem)
- Directed graph as React component (#224, @tiffon)
- Timeline Expand and Collapse Features (#221, @davit-y)
- Integrate Google Analytics into Search Page (#220, @davit-y)
jaeger-standalone
binary has been renamed tojaeger-all-in-one
. This change also includes package rename fromstandalone
toall-in-one
(#1062, @pavolloffay)
- (Experimental) Allow storing tags as object fields in Elasticsearch for better Kibana support((#1018, @pavolloffay)
- Enable tracing of Cassandra queries (#1038, @yurishkuro)
- Make Elasticsearch index configurable (#1009, @pavolloffay)
- Add flags to allow changing ports for HotROD services (#951, @cboornaz17)
- (Experimental) Kafka ingester (#952, #942, #944, #940, @davit-y and @vprithvi))
- Use tags in agent metrics (#950, @eundoosong)
- Add support for Cassandra reconnect interval (#934, @nyanshak)
-
The storage implementations no longer write the parentSpanID field to storage (#856). If you are upgrading to this version, you must upgrade query service first!
-
Update Dockerfiles to reference executable via ENTRYPOINT (#815) by Zachary DiCesare (@zdicesare)
It is no longer necessary to specify the binary name when passing flags to containers. For example, to execute the
help
command of the collector, instead of$ docker run -it --rm jaegertracing/jaeger-collector /go/bin/collector-linux help
run
$ docker run -it --rm jaegertracing/jaeger-collector help
-
Detect HTTP payload format from Content-Type (#916) by Yuri Shkuro (@yurishkuro)
When submitting spans in Thrift format to HTTP endpoint
/api/traces
, theformat
argument is no longer required, but the Content-Type header must be set to "application/vnd.apache.thrift.binary". -
Change metric tag from "service" to "svc" (#883) by Won Jun Jang (@black-adder)
-
Add Kafka as a Storage Plugin (#862) by David Yeghshatyan (@davit-y)
The collectors can be configured to write spans to Kafka for further data mining.
-
Package static assets inside the query-service binary (#918) by Yuri Shkuro (@yurishkuro)
It is no longer necessary (but still possible) to pass the path to UI static assets to jaeger-query and jaeger-standalone binaries.
-
Replace domain model with Protobuf/gogo-generated model (#856) by Yuri Shkuro (@yurishkuro)
First step towards switching to Protobuf and gRPC.
-
Include HotROD binary in the distributions (#917) by Yuri Shkuro (@yurishkuro)
-
Improve HotROD demo (#915) by Yuri Shkuro (@yurishkuro)
-
Add DisableAutoDiscovery param to cassandra config (#912) by Bill Westlin (@whistlinwilly)
-
Add connCheckTimeout flag to agent (#911) by Henrique Rodrigues (@Henrod)
-
Ability to use multiple storage types (#880) by David Yeghshatyan (@davit-y)
- [ES storage] Log number of total and failed requests (#902) by Tomasz Adamski (@tmszdmsk)
- [ES storage] Do not log requests on error (#901) by Tomasz Adamski (@tmszdmsk)
- [ES storage] Do not exceed ES _id length limit (#905) by Łukasz Harasimowicz (@harnash) and Tomasz Adamski (@tmszdmsk)
- Add cassandra index filter (#876) by Won Jun Jang (@black-adder)
- Close span writer in standalone (#863) (4 weeks ago) by Pavol Loffay (@pavolloffay)
- Log configuration options for memory storage (#852) (6 weeks ago) by Juraci Paixão Kröhling (@jpkrohling)
- Update collector metric counters to have a name (#886) by Won Jun Jang (@black-adder)
- Add CONTRIBUTING_GUIDELINES.md (#864) by (@PikBot)
- Add bounds to memory storage (#845) by Juraci Paixão Kröhling (@jpkrohling)
- Add metric for debug traces (#796) by Won Jun Jang (@black-adder)
- Change metrics naming scheme (#776) by Juraci Paixão Kröhling (@jpkrohling)
- Remove ParentSpanID from domain model (#831) by Yuri Shkuro (@yurishkuro)
- Add ability to adjust static sampling probabilities per operation (#827) by Won Jun Jang (@black-adder)
- Support log-level flag on agent (#828) by Won Jun Jang (@black-adder)
- Add healthcheck to standalone (#784) by Eundoo Song (@eundoosong)
- Do not use KeyValue fields directly and use KeyValues as decorator only (#810) by Yuri Shkuro (@yurishkuro)
- Upgrade to go 1.10 (#792) by Prithvi Raj (@vprithvi)
- Do not create Cassandra index if it already exists (#782) by Greg Swift (@gregswift)
- None
- Publish binaries for Linux, Darwin, and Windows (#765) - thanks to @grounded042
- View Trace JSON buttons return formatted JSON (fixes #199)
- Support traces with >10k spans in Elasticsearch (#668) - thanks to @sramakr
- Allow slash '/' in service names (#586)
- Log errors from HotROD services (#769)
- Add sampling handler with file-based configuration for agents to query (#720) (#674)
- Allow overriding base path for UI/API routes and remove --query.prefix (#748)
- Add Dockerfile for hotrod example app (#694) <Guilherme Baufaker Rêgo>
- Publish hotrod image to docker hub (#702)
- Dockerize es-index-cleaner script (#741)
- Add a flag to control Cassandra consistency level (#700)
- Collect metrics from ES bulk service (#688)
- Allow zero replicas for Elasticsearch (#754)
- Apply namespace when creating Prometheus metrics factory (fix for #732) (#733)
- Disable double compression on Prom Handler - fixes #697 (#735) <Juraci Paixão Kröhling>
- Use the default metricsFactory if not provided (#739)
- Avoid duplicate expvar metrics - fixes #716 (#726)
- Make sure different tracers in HotROD process use different random generator seeds (#718)
- Test that processes with identical tags are deduped (#708)
- When converting microseconds to time.Time ensure UTC timezone (#712)
- Add to WaitGroup before the goroutine creation (#711)
- Pin testify version to ^1.2.1 (#710)
- Support running Jaeger behind a reverse proxy (fixes #42)
- Track Javascript errors via Google Analytics (fixes #39)
- Add Google Analytics event tracking for actions in trace view (#191)
- Clearly identify traces without a root span (fixes #190)
- Fix #166 JS error on search page after viewing 404 trace
- Use elasticsearch bulk API (#656)
- Support archive storage in the query-service (#604)
- Introduce storage factory framework and composable CLI (#625)
- Make agent host port configurable in hotrod (#663)
- Add signal handling to standalone (#657)
- Remove the override of GOMAXPROCS (#679)
- Use UTC timezone for ES indices (#646)
- Fix elasticsearch create index race condition error (#641)
- Use Ant Design instead of Semantic UI (jaegertracing/jaeger-ui#169)
- Fix 2 digit lookback (12h, 24h) parsing (jaegertracing/jaeger-ui#167)
- Add support for retrieving unadjusted/raw traces (#615)
- Add CA certificates to collector/query images (#485)
- Parse zipkin v2 high trace id (#596)
- Skip nil and zero length hits in ElasticSearch storage (#601)
- Make Cassandra service_name_index inserts idempotent (#587)
- Align atomic int64 to word boundary to fix SIGSEGV (#592)
- Add adjuster that removes bad span references (#614)
- Set operationNames cache initial capacity to 10000 (#621)
- Change tag search input syntax to logfmt (jaegertracing/jaeger-ui#145)
- Make threshold for enabling DAG view configurable (jaegertracing/jaeger-ui#130)
- Show better error messages for failed API calls (jaegertracing/jaeger-ui#127)
- Add View Option for raw/unadjusted trace (jaegertracing/jaeger-ui#153)
- Add timezone tooltip to custom lookback form-field (jaegertracing/jaeger-ui#161)
- Use consistent icons for logs expanded/collapsed (jaegertracing/jaeger-ui#86)
- Encode service name in API calls to allow '/' (jaegertracing/jaeger-ui#138)
- Fix endless trace HTTP requests (jaegertracing/jaeger-ui#128)
- Fix JSON view when running in dev mode (jaegertracing/jaeger-ui#139)
- Fix trace name resolution (jaegertracing/jaeger-ui#134)
- Only JSON.parse JSON strings in tags/logs values (jaegertracing/jaeger-ui#162)
- Support Prometheus metrics as default for all components (#516)
- Enable TLS client connections to Cassandra (#555)
- Fix issue where Domain to UI model converter double reports references (#579)
- Make dependencies tab configurable (#122)
- Verify stored search settings jaegertracing/jaeger-ui#111
- Fix browser back button not working correctly jaegertracing/jaeger-ui#110
- Handle FOLLOWS_FROM ref type jaegertracing/jaeger-ui#118
- Allow embedding custom UI config in index.html #490
- Add startTimeMillis field to JSON Spans submitted to ElasticSearch #491
- Introduce version command and handler #517
- Fix ElasticSearch aggregation errors when index is empty #535
- Change package from uber to jaegertracing #528
- Introduce logging level configuration #514
- Support Zipkin v2 json #518
- Add HTTP compression handler #545
- Refactor trace detail jaegertracing/jaeger-ui#53
- Virtualized scrolling for trace detail view jaegertracing/jaeger-ui#68
- Mouseover expands truncated text to full length in left column in trace view jaegertracing/jaeger-ui#71
- Make left column adjustable in trace detail view jaegertracing/jaeger-ui#74
- Fix trace mini-map blurriness when < 60 spans jaegertracing/jaeger-ui#77
- Fix Google Analytics tracking jaegertracing/jaeger-ui#81
- Improve search dropdowns jaegertracing/jaeger-ui#84
- Add keyboard shortcuts and minimap UX jaegertracing/jaeger-ui#93
- Add tracing to the query server #454
- Support configuration files #462
- Add cassandra tag filter #442
- Handle ports > 32k in Zipkin JSON #488
- Convert to Apache 2.0 License
- Add health check server to collector and query #280
- Add/fix sanitizer for Zipkin span start time and duration #333
- Support Zipkin json encoding for /api/v1/spans HTTP endpoint #348
- Support Zipkin 128bit traceId and ipv6 #349
- Add viper/cobra configuration support #245 #307
- Add Zipkin /api/v1/spans endpoint #282
- Add basic authenticator to configs for cassandra #323
- Add Elasticsearch storage support
- Bug fix: Query startup should fail when -query.static-files has no trailing slash #144
- Push to Docker Hub on release tags #246
First numbered release.