Releases: jaegertracing/jaeger
Release 1.19.1
Revert UI back to 1.9 due to a bug jaegertracing/jaeger-ui#628
Release 1.19.0
Known Issues
The pull request #2297 aimed to add TLS support for the gRPC Query server but the flag registration is missing, so that this feature can't be used at the moment. A fix is planned for the next Jaeger version (1.20).
Backend Changes
New Features
- Reload TLS certificates on change (#2389, @pavolloffay)
- Add --kafka.producer.batch-min-messages collector flag (#2371, @prymitive)
- Make UDP socket buffer size configurable (#2336, @kbarukhov)
- Enable batch and queued retry processors by default (#2330, @pavolloffay)
- Add trace anonymizer prototype (#2328, @yurishkuro)
- Add native OTEL ES exporter (#2295, @pavolloffay)
- Define busy error type in processor (#2314, @pavolloffay)
- Use gRPC instead of tchannel in hotrod (#2307, @pavolloffay)
- TLS support for gRPC Query server (#2297, @jan25)
Bug fixes, Minor Improvements
- Check missing server URL in ES OTEL client (#2411, @pavolloffay)
- Fix Elasticsearch version in ES OTEL writer (#2409, @pavolloffay)
- Fix go vet warnings on Go 1.15 (#2401, @prymitive)
- Add new Elasticsearch reader implementation (#2364, @pavolloffay)
- Only add the collector port if it was not explicitly set (#2396, @joe-elliott)
- Fix panic in collector when Zipkin server is shutdown (#2392, @Sreevani871)
- Update validity of TLS certificates to 3650 days (#2390, @rjs211)
- Added span and trace id to hotrod logs (#2384, @joe-elliott)
- Jaeger agent logs "0" whenever sampling strategies are requested (#2382, @jpkrohling)
- Fix shutdown order for collector components (#2381, @Sreevani871)
- Serve jquery-3.1.1.min.js locally (#2378, @chaseSpace)
- Use a single shared set of CA, client & server keys/certs for testing (#2343, @rjs211)
- fix null pointer in jaeger-spark-dependencies (#2327, @moolen)
- Rename ARCH to TARGETARCH for multi platform build by docker buildx (#2320, @morlay)
- Mask passwords when written as json (#2302, @objectiser)
UI Changes
- UI pinned to version 1.10.0. The changelog is available here v1.10.0
Release 1.18.1
Backend Changes
Security Fixes
- CVE-2020-10750: jaegertracing/jaeger: credentials leaked to container logs (@chlunde)
New Features
- Add ppc64le support (#2293, @Siddhesh-Ghadi)
- Expose option to enable TLS when sniffing an Elasticsearch Cluster (#2263, @jennynilsen)
- Enable OTEL receiver by default (#2279, @pavolloffay)
- Add Badger OTEL exporter (#2269, @pavolloffay)
- Add all-in-one OTEL component (#2262, @pavolloffay)
- Add arm64 support for binaries and docker images (#2176, @MrXinWang)
- Add Zipkin OTEL receiver (#2247, @pavolloffay)
Bug fixes, Minor Improvements
- Remove experimental flag from rollover (#2290, @pavolloffay)
- Move ES dependencies index mapping to JSON template file (#2285, @pavolloffay)
- Bump go-plugin to 1.3 (#2261, @yurishkuro)
- Ignore chmod events on UI config watcher. (#2254, @rubenvp8510)
- Normalize CLI flags to use host:port addresses (#2212, @ohdearaugustin)
- Add kafka receiver flags to ingester (#2251, @pavolloffay)
- Configure Jaeger receiver and exporter by flags (#2241, @pavolloffay)
Relase 1.18.0
Backend Changes
Breaking Changes
-
Remove Tchannel between agent and collector (#2115, #2112, @pavolloffay)
Remove
Tchannel
port (14267) from collector andTchannel
reporter from agent.These flags were removed from agent:
--collector.host-port --reporter.tchannel.discovery.conn-check-timeout --reporter.tchannel.discovery.min-peers --reporter.tchannel.host-port --reporter.tchannel.report-timeout
These flags were removed from collector:
--collector.port
-
Normalize CLI flags to use host:port addresses (#1827, @annanay25)
Flags previously accepting listen addresses in any other format have been deprecated:
collector.port
is superseded bycollector.tchan-server.host-port
collector.http-port
is superseded bycollector.http-server.host-port
collector.grpc-port
is superseded bycollector.grpc-server.host-port
collector.zipkin.http-port
is superseded bycollector.zipkin.host-port
admin-http-port
is superseded byadmin.http.host-port
New Features
- Add grpc storage plugin OTEL exporter (#2229, @pavolloffay)
- Add OTEL ingester component (#2225, @pavolloffay)
- Add Kafka OTEL receiver/ingester (#2221, @pavolloffay)
- Create Jaeger OTEL agent component (#2216, @pavolloffay)
- Merge hardcoded/default configuration with OTEL config file (#2211, @pavolloffay)
- Support periodic refresh of sampling strategies (#2188, @defool)
- Add Elasticsearch OTEL exporter (#2140, @pavolloffay)
- Add Cassandra OTEL exporter (#2139, @pavolloffay)
- Add Kafka OTEL storage exporter (#2135, @pavolloffay)
- Clock skew config (#2119, @joe-elliott)
- Introduce OpenTelemetry collector (#2086, @pavolloffay)
- Support regex tags search for Elasticseach backend (#2049, @annanay25)
Bug fixes, Minor Improvements
- Do not skip service/operation indexing for firehose spans (#2242, @yurishkuro)
- Add build information to OTEL binaries (#2237, @pavolloffay)
- Enable service default sampling param (#2230, @defool)
- Add Jaeger OTEL agent to docker image upload (#2227, @ning2008wisc)
- Support adding process tags in OTEL via env variable (#2220, @pavolloffay)
- Bump OTEL version and update exporters to use new API (#2196, @pavolloffay)
- Support sampling startegies file flag in OTEL collector (#2195, @pavolloffay)
- Add zipkin receiver to OTEL collector (#2181, @pavolloffay)
- Add Dockerfile for OTEL collector and publish latest tag (#2167, @pavolloffay)
- Run OTEL collector without configuration file (#2148, @pavolloffay)
- Update gocql to support AWS MCS (#2133, @johanneswuerbach)
- Return appropriate gRPC errors/codes to indicate request status (#2132, @yurishkuro)
- Remove tchannel port from dockerfile and test (#2118, @pavolloffay)
- Remove tchannel between agent and collector (#2115, @pavolloffay)
- Move all tchannel packages to a single top level package (#2112, @pavolloffay)
UI Changes
- UI pinned to version 1.9.0. The changelog is available here v1.9.0
Release 1.17.1
Backend Changes
Bug fixes, Minor Improvements
- Fix enable Kafka TLS when TLS auth is specified #2107, @pavolloffay)
- Migrate project to go modules #2098, @pavolloffay)
- Do not skip service/operation indexing for firehose spans #2090, @yurishkuro)
- Close the span writer on main (#2096, @jpkrohling)
- Improved graceful shutdown - Collector (#2076, @jpkrohling)
- Improved graceful shutdown - Agent (#2031, @jpkrohling)
UI Changes
- UI pinned to version 1.8.0. The changelog is available here v1.8.0
Release 1.17.0
Backend Changes
New Features
- [tracegen] Add service name as a command line option (#2080, @kevinearls)
- Allow the Configuration of Additional Headers on the Jaeger Query HTTP API (#2056, @joe-elliott)
- Warn about time adjustment in tags (#2052, @bobrik)
- Add CLI flags for Kafka batching params (#2047, @apm-opentt)
- Added support for dynamic queue sizes (#1985, @jpkrohling)
- [agent] Process data loss stats from clients (#2010, @yurishkuro)
- Add /api/sampling endpoint in collector (#1990, @RickyRajinder)
- Add basic authentication to Kafka storage (#1983, @chandresh-pancholi)
- Make operation_strategies part also be part of default_strategy (#1749, @rutgerbrf)
Bug fixes, Minor Improvements
- Upgrade gRPC to ^1.26 (#2077, @yurishkuro)
- Remove pkg/errors from dependencies (#2073, @yurishkuro)
- Update dependencies, pin grpc<1.27 (#2072, @yurishkuro)
- Refactor collector mains (#2060, @jpkrohling)
- Clarify that "kafka" is not a real storage backend (#2066, @yurishkuro)
- Added -trimpath option to go build (#2064, @kadern0)
- Use memory size flag to activate dyn queue size feature (#2059, @jpkrohling)
- Add before you push to the queue to prevent race condition on size (#2044, @joe-elliott)
- Count received batches from conforming clients (#2030, @yurishkuro)
- [agent] Do not increment data loss counters on the first client batch (#2028, @yurishkuro)
- Allow raw port numbers for UDP servers (#2025, @yurishkuro)
- Publish tracegen (#2022, @jpkrohling)
- Build binaries for Linux on IBM Z / s390x architecture (#1982, @prankkelkar)
- Admin/Query: Log the real port instead of the provided one to enable the use of port 0 (#2002, @ChadiEM)
- Split agent's HTTP server and handler (#1996, @yurishkuro)
- Clean-up collector handlers builder (#1991, @yurishkuro)
- Added 'resize' operation to BoundedQueue (#1948, @jpkrohling)
- Add common TLS configuration (#1838, @backjo)
UI Changes
- UI pinned to version 1.7.0. The changelog is available here v1.7.0
Release 1.16.0
Backend Changes
Breaking Changes
List of service operations can be classified by span kinds (#1943, #1942, #1937, @guo0693)
- Endpoint changes:
- Both Http & gRPC servers now take new optional parameter
spanKind
in addition toservice
. When spanKind
is absent or empty, operations from all kinds of spans will be returned. - Instead of returning a list of string, both Http & gRPC servers return a list of operation struct. Please
update your client code to process the new response. Example response:curl 'http://localhost:6686/api/operations?service=UserService&spanKind=server' | jq { "data": [{ "name": "UserService::getExtendedUser", "spanKind": "server" }, { "name": "UserService::getUserProfile", "spanKind": "server" }], "total": 2, "limit": 0, "offset": 0, "errors": null }
- The legacy http endpoint stay untouched:
/services/{%s}/operations
- Both Http & gRPC servers now take new optional parameter
- Storage plugin changes:
- Memory updated to support spanKind on write & read, no migration is required.
- Badger & ElasticSearch
to be implemented:
For nowspanKind
will be set as empty string during read & write, onlyname
will be valid operation name. - Cassandra updated to support spanKind on write & read (#1937, @guo0693):
If you don't run the migration script, nothing will break, the system will used the old table
operation_names
and set emptyspanKind
in the response.
Steps to get the updated functionality:- You will need to run below command on the host you can use
cqlsh
to connect the the cassandra contact
pointThe script will create new tableKEYSPACE=jaeger_v1 CQL_CMD='cqlsh host 9042 -u test_user -p test_password --request-timeout=3000' bash ./v002tov003.sh
operation_names_v2
and migrate data from the old table.
spanKind
column will be empty for those data.
At the end, it will ask you whether you want to drop the old table or not. - Restart ingester & query services so that they begin to use the new table
- You will need to run below command on the host you can use
Trace and Span IDs are always padded to 32 or 16 hex characters with leading zeros (#1956, @yurishkuro)
Previously, Jaeger backend always rendered trace and span IDs as the shortest possible hex string, e.g. an ID
with numeric value 255 would be rendered as a string ff
. This change makes the IDs to always render as 16 or 32
characters long hex string, e.g. the same id=255 would render as 00000000000000ff
. It mostly affects how UI
displays the IDs, the URLs, and the JSON returned from jaeger-query
service.
Motivation: Among randomly generated and uniformly distributed trace IDs, only 1/16th of them start with 0
followed by a significant digit, 1/256th start with two 0s, and so on in decreasing geometric progression.
Therefore, trimming the leading 0s is a very modest optimization on the size of the data being transmitted or stored.
However, trimming 0s leads to ambiguities when the IDs are used as correlations with other monitoring systems,
such as logging, that treat the IDs as opaque strings and cannot establish the equivalence between padded and
unpadded IDs. It is also incompatible with W3C Trace Context and Zipkin B3 formats, both of which include all
leading 0s, so an application instrumented with OpenTelemetry SDKs may be logging different trace ID strings
than application instrumented with Jaeger SDKs (related issue #1657).
Overall, the change is backward compatible:
- links with non-padded IDs in the UI will still work
- data stored in Elasticsearch (where IDs are represented as strings) is still readable
However, some custom integration that rely on exact string matches of trace IDs may be broken.
Change default rollover conditions to 2 days (#1963, @pavolloffay)
Change default rollover conditions from 7 days to 2 days.
Given that by default Jaeger uses daily indices and some organizations do not keep data longer than 7 days
the default of 7 days seems unreasonable - it might result in a too big index and
running curator would immediately remove the old index.
New Features
- Support collector tags, similar to agent tags (#1854, @radekg)
- Support insecure TLS and only CA cert for Elasticsearch (#1918, @pavolloffay)
- Allow tracer config via env vars (#1919, @yurishkuro)
- Allow turning off tags/logs indexing in Cassandra (#1915, @joe-elliott)
- Blacklisting/Whitelisting tags for Cassandra indexing (#1904, @joe-elliott)
Bug fixes, Minor Improvements
- Support custom basepath in HotROD (#1894, @jan25)
- Deprecate tchannel reporter flags (#1978, @objectiser)
- Do not truncate tags in Elasticsearch (#1970, @pavolloffay)
- Export SaveSpan to enable multiplexing (#1968, @albertteoh)
- Make rollover init step idempotent (#1964, @pavolloffay)
- Update python urllib3 version required by curator (#1965, @pavolloffay)
- Allow changing max log level for gRPC storage plugins (#1962, @yyyogev)
- Fix the bug that operation_name table can not be init more than once (#1961, @guo0693)
- Improve migration script (#1946, @guo0693)
- Fix order of the returned results from badger backend. (#1939, @burmanm)
- Update python pathlib to pathlib2 (#1930, @objectiser)
- Use proxy env vars if they're configured (#1910, @zoidbergwill)
UI Changes
- UI pinned to version 1.6.0. The changelog is available here v1.6.0
Release 1.15.1
Bug fixes, Minor Improvements
- Build platform binaries as part of CI (#1909, @yurishkuro)
- Upgrade and fix dependencies (#1907, @yurishkuro)
Release 1.15.0
Backend Changes
Breaking Changes
-
The default value for the Ingester's flag
ingester.deadlockInterval
has been changed to0
(#1868, @jpkrohling)With the new default, the ingester won't
panic
if there are no messages for the last minute. To restore the previous behavior, set the flag's value to1m
. -
Mark
--collector.grpc.tls.client.ca
flag as deprecated for jaeger-collector. (#1840, @yurishkuro)The deprecated flag will still work, but will be removed removed in the future, it's recommended to use
--collector.grpc.tls.client-ca
instead.
New Features
- Support TLS for Kafka (#1414, @MichaHoffmann)
- Add ack and compression parameters for Kafka #1359 (#1712, @chandresh-pancholi)
- Propagate the bearer token to the gRPC plugin server (#1822, @radekg)
- Add Truncate and ReadOnly options for badger (#1842, @burmanm)
Bug fixes, Minor Improvements
- Use correct context on ES search methods (#1850, @rubenvp8510)
- Handling of expected error codes coming from grpc storage plugins #1741 (#1814, @chandresh-pancholi)
- Fix ordering of indexScanKeys after TraceID parsing (#1809, @burmanm)
- Small memory optimizations in badger write-path (#1771, @burmanm)
- Set an empty value when a default env var value is missing (#1777, @jpkrohling)
- Decouple storage dependencies and bump Go to 1.13.x (#1886, @yurishkuro)
- Update gopkg.in/yaml.v2 dependency to v2.2.4 (#1865, @objectiser)
- Upgrade jaeger-client 2.19 and jaeger-lib 2.2 and prom client 1.x (#1810, @yurishkuro)
- Unpin grpc version and use serviceConfig to set the load balancer (#1786, @guanw)
UI Changes
- The changelog is available here v1.5.0
Release 1.14.0
Backend Changes
Breaking Changes
-
Create ES index templates instead of indices (#1627, @pavolloffay)
This can break existing Elasticsearch deployments if security policies are applied.
For instance JaegerX-Pack
configuration now requires permission to create index templates -manage_index_templates
.
New Features
-
Add Elasticsearch version configuration to rollover script (#1769, @pavolloffay)
-
Add Elasticsearch version flag (#1753, @pavolloffay)
-
Add Elasticsearch 7 support (#1690, @gregoryfranklin)
The index mappings in Elasticsearch 7 are not backwards compatible with the older versions.
Therefore using Elasticsearch 7 with data created with older version would not work.
Elasticsearch 6.8 supports 7.x, 6.x, 5.x compatible mappings. The upgrade has to be done
first to ES 6.8, then apply data migration or wait until old daily indices are removed (this requires
to start Jaeger with--es.version=7
to force using ES 7.x mappings for newly created indices).Jaeger by default uses Elasticsearch ping endpoint (
/
) to derive the version which is used
for index mappings selection. The version can be overridden by flag--es.version
. -
Added support for hot reload of UI config (#1688, @jpkrohling)
-
Added base Grafana dashboard and Alert rules (#1745, @jpkrohling)
-
Add the jaeger-mixin for monitoring (#1668, @gouthamve)
-
Added flags for driving cassandra connection compression through config (#1675, @sagaranand015)
-
Support index cleaner for rollover indices and add integration tests (#1689, @pavolloffay)
-
Collector kafka producer protocol version config (#1658, @marqc)
-
Configurable kafka protocol version for msg consuming by jaeger ingester (#1640, @marqc)
-
Use credentials when describing keyspaces in cassandra schema builder (#1655, @MiLk)
-
Add connect-timeout for Cassandra (#1647, @sagaranand015)
Bug fixes, Minor Improvements
- Fix gRPC over cmux and add unit tests (#1758, @yurishkuro)
- Add CA certificates to agent image (#1764, @yurishkuro)
- Fix badger merge-join algorithm to correctly filter indexes (#1721, @burmanm)
- Change Zipkin CORS origins and headers to comma separated list (#1556, @JonasVerhofste)
- Added null guards to 'Process' when processing an incoming span (#1723, @jpkrohling)
- Export expvar metrics of badger to the metricsFactory (#1704, @burmanm)
- Pass TTL as int, not as float64 (#1710, @yurishkuro)
- Use find by regex for archive index in index cleaner (#1693, @pavolloffay)
- Allow token propagation if token type is not specified (#1685, @rubenvp8510)
- Fix duplicated spans when querying Elasticsearch (#1677, @pavolloffay)
- Fix the threshold precision issue (#1665, @guanw)
- Badger filter duplicate results from a single indexSeek (#1649, @burmanm)
- Badger make default dirs work in Windows (#1653, @burmanm)
UI Changes
- UI pinned to version 1.4.0. The changelog is available here v1.4.0