Skip to content

Latest commit

 

History

History
2370 lines (1695 loc) · 167 KB

CHANGELOG.md

File metadata and controls

2370 lines (1695 loc) · 167 KB

🇷🇺 A message to people of Russia

If you currently live in Russia, please read this message.

Changes by Version

next release template

next release (yyyy-mm-dd)

Backend Changes

run make changelog to generate content

📊 UI Changes

...

1.57.0 (2024-05-01)

Backend Changes

🐞 Bug fixes, Minor Improvements

  • [jaeger-v2] define an internal interface of storage v2 spanstore (@james-ryans in #5399)
  • Combine jaeger ui release notes with jaeger backend (@albertteoh in #5405)
  • [agent] use grpc.newclient (@yurishkuro in #5392)
  • [sampling] fix merging of per-operation strategies into service strategies without them (@kuujis in #5277)
  • Create sampling templates when creating sampling store (@JaeguKim in #5349)
  • [kafka-consumer] set the rackid in consumer config (@sappusaketh in #5374)
  • Adding best practices badge to readme.md (@jkowall in #5369)

👷 CI Improvements

  • Moving global write permissions down into the ci jobs (@jkowall in #5370)

📊 UI Changes

🐞 Bug fixes, Minor Improvements

  • Improve trace page title with data and unique emoji (fixes #2256) (@nox in #2275)
  • Require node version 20+ (@Baalekshan in #2274)

1.56.0 (2024-04-02)

Backend Changes

⛔ Breaking Changes

🐞 Bug fixes, Minor Improvements

🚧 Experimental Features

👷 CI Improvements

📊 UI Changes

  • UI pinned to version 1.40.0.

1.55.0 (2024-03-04)

Backend Changes

✨ New Features:

🐞 Bug fixes, Minor Improvements:

🚧 Experimental Features:

📊 UI Changes

  • UI pinned to version 1.39.0.

1.54.0 (2024-02-06)

Backend Changes

⛔ Breaking Changes:

✨ New Features:

🐞 Bug fixes, Minor Improvements:

👷 CI Improvements:

UI Changes

  • UI pinned to version 1.38.0.

1.53.0 (2024-01-08)

Backend Changes

⛔ Breaking Changes:

  • 💤 swap zipkin server for zipkin receiver from otel collector contrib (@yurishkuro in #5045)
  • Make all-in-one metric names match metrics from standalone components (@yurishkuro in #5008)

🐞 Bug fixes, Minor Improvements:

👷 CI Improvements:

1.52.0 (2023-12-05)

Backend Changes

✨ New Features:

🐞 Bug fixes, Minor Improvements:

🚧 Experimental Features:

👷 CI Improvements:

UI Changes

  • UI pinned to version 1.36.0.

1.51.0 (2023-11-04)

Backend Changes

✨ New Features:

  • Feat: add sampling store support to badger (@slayer321 in #4834)
  • Feat: add span adjuster that moves some otel resource attributes to span.process (@james-ryans in #4844)
  • Add product/file version in windows executables (@ResamVi in #4811)

🐞 Bug fixes, Minor Improvements:

🚧 Experimental Features:

👷 CI Improvements:

UI Changes

  • UI pinned to version 1.35.0.

1.50.0 (2023-10-06)

Backend Changes

⛔ Breaking Changes

  • [sampling] Remove support for SAMPLING_TYPE env var and 'static' value (@yurishkuro in #4735)
  • Use non-root user in built containers (@nikzayn in #4783) - this change may cause issues with existing installations using Badger storage, because the existing files would be owned by a different user and would not be writeable after Jaeger upgrade. The workaround is to manually chown the files to the new user (uid=10001).

New Features

Bug fixes, Minor Improvements

UI Changes

  • UI pinned to version 1.34.0.

1.49.0 (2023-09-07)

Backend Changes

⛔ Breaking Changes

Bug fixes, Minor Improvements

UI Changes

  • UI pinned to version 1.33.0.

1.48.0 (2023-08-15)

Backend Changes

Bug fixes, Minor Improvements

  • [fix] Disable tracing of OTLP Receiver (@yurishkuro in #4662)
  • [hotrod/observer_test] Switch to OpenTelemetry (@afzal442 in #4635)
  • [memstore-plugin]Switch to OpenTelemetry SDK (@afzal442 in #4643)
  • [tracegen] Allow to control cardinality of attribute keys (@yurishkuro in #4634)
  • Replace OT const wth OTEL trace.span for zipkin comp (@afzal442 in #4625)
  • Replace OpenTracing instrumentation with OpenTelemetry in grpc storage plugin (@afzal442 in #4611)
  • Replace OT trace with otel trace spans type to span model (@afzal442 in #4614)
  • Replace cassandra-spanstore tracing instrumentation withOTEL (@afzal442 in #4599)
  • Replace es-spanstore tracing instrumentation with OpenTelemetry (@afzal442 in #4596)
  • Replace metricsstore/reader tracing instrumentation with OpenTelemetry (@afzal442 in #4595)
  • Replace Jaeger SDK with OTEL SDK + OT Bridge (@afzal442 in #4574)
  • [kafka-consumer] Ingester should use topic name from actual Kafka consumer instead of configuration (@abliqo in #4593)
  • Enable CORS settings on OTLP HTTP endpoint (@pmuls99 in #4586)
  • [hotrod] Return trace ID via traceresponse header (@yurishkuro in #4584)
  • [hotrod] Remove most references to OpenTracing (@yurishkuro in #4585)
  • [hotrod] Validate user input to avoid security warnings from code scanning (@yurishkuro in #4583)
  • [hotrod] Upgrade HotROD to use OpenTelemetry instrumentation (@afzal442 in #4548)
  • [kafka-consumer] Use wait group to ensure goroutine is finished before returning from Close (@kennyaz in #4582)
  • [tracegen] Enable BlockOnQueueFull in OTel SDK to avoid dropped spans (@haanhvu in #4578)
  • [hotrod] Handle both OT and OTEL baggage (@yurishkuro in #4572)

UI Changes

  • UI pinned to version 1.32.0.

1.47.0 (2023-07-05)

Backend Changes

⛔ Breaking Changes

  • [SPM] Due to a breaking change in OpenTelemetry's prometheus exporter (details) metric names will no longer be normalized by default, meaning that the expected metric names would be calls and duration_*. Backwards compatibility with older OpenTelemetry Collector versions can be achieved through the following flags:
    • prometheus.query.normalize-calls: If true, normalizes the "calls" metric name. e.g. "calls_total".
    • prometheus.query.normalize-duration: If true, normalizes the "duration" metric name to include the duration units. e.g. "duration_milliseconds_bucket".

New Features

  • [Cassandra] Add Configuration.Close() to ensure TLS cert watcher is closed (@kennyaz in #4515)
  • Add *.kerberos.disable-fast-negotiation option to Kafka consumer (@pmuls99 in #4520)
  • Support Prometheus normalization for specific metrics related to OpenTelemetry compatibility (@albertteoh in #4555)

Bug fixes, Minor Improvements

  • Add readme for memstore plugin (@yurishkuro in 283bdd9)
  • Pass a wrapper instead of opentracing.Tracer to ease migration to OTEL in the future [part 1] (@afzalbin64 in #4529)
  • [hotROD] Add OTEL instrumentation to customer svc (@afzal442 in #4559)
  • [hotROD] Replace gRPC instrumentation with OTEL (@afzal442 in #4558)
  • [hotROD]: Upgrade redis service to use native OTEL instrumentation (@afzal442 in #4533)
  • [hotROD] Fix OTEL logging in HotRod example (@albertteoh in #4556)
  • [hotrod] Reduce span exporter's batch timeout to let the spans be exported sooner (@GLVSKiriti in #4518)
  • [tracegen] Add options to generate more spans and attributes for additional use cases (@yurishkuro in #4535)
  • Build improvement to rebuild jaeger-ui if the tree does not match any tag (@bobrik in #4553)
  • [Test] Fixed a race condition causing unit test failure by changing the logging (@yurishkuro in #4546) resolves #4497

UI Changes

  • UI pinned to version 1.31.0.

1.46.0 (2023-06-05)

Backend Changes

⛔ Breaking Changes

OTLP receiver is now enabled by default (#4494). This change follows the Jaeger's strategic direction of aligning closely with the OpenTelemetry project. This may cause port conflicts if jaeger-collector is depoyed in host network namespace. The original --collector.otlp.enabled option is still available and MUST be set to false if OTLP receiver is not desired.

New Features

Bug fixes, Minor Improvements

  • Log processor error in Kafka consumer (@pavolloffay in #4399)
  • [bug] Remove TerminateAfter from Elasticsearch/Opensearch query resulting in incomplete span count/list (@Jakob3xD in #4336)
  • [agent] Use RawConn.Control to get fd instead of Fd() to prevent deadlock on shutdown (@ChenX1993 in #4449)
  • [SPM] Fix docker compose command (@tqi-raurora in #4444)

Maintenance

UI Changes

  • UI pinned to version 1.30.0.

1.45.0 (2023-05-03)

Backend Changes

Bug fixes, Minor Improvements

UI Changes

  • UI pinned to version 1.29.1.

1.44.0 (2023-04-10)

Backend Changes

Bug fixes, Minor Improvements

UI Changes

  • UI pinned to version 1.29.0.

1.43.0 (2023-03-15)

Backend Changes

New Features

Bug fixes, Minor Improvements

UI Changes

  • UI pinned to version 1.28.1.

1.42.0 (2023-02-05)

Backend Changes

⛔ Breaking Changes

  • HotROD 🚗 application is switched from Jaeger SDK to OpenTelemetry SDK (@yurishkuro in #4187). Some environment variables previously accepted are no longer recognized. See PR for details.
    • Map old env vars from Jaeger SDK to OTel SDK vars (@yurishkuro in #4200)
    • Use patched version of github.com/opentracing-contrib/go-grpc in HotROD (@yurishkuro in #4210)
  • tracegen utility is switched from Jaeger SDK to OpenTelemetry SDK (@yurishkuro in #4189). Some environment variables previously accepted are no longer recognized. See PR for details.

New Features

  • Add CLI flags for controlling HTTP server timeouts (@yurishkuro in #4167)
  • Watch directories for certificate hot-reload (@tsaarni in #4159)
  • Support tenant header propagation in query service and grpc-plugin (@pavolloffay in #4151)

Bug fixes, Minor Improvements

UI Changes

  • No changes.

1.41.0 (2023-01-04)

Backend Changes

Bug fixes, Minor Improvements

  • Remove global platform arg in cassandra schema dockerfile (@jkandasa in #4123)
  • Add multi arch support to cassandra-schema container (@jkandasa in #4122)

UI

  • No changes.

1.40.0 (2022-12-07)

Backend Changes

New Features

Bug fixes, Minor Improvements

UI

  • UI pinned to version 1.27.3.

1.39.0 (2022-11-01)

Backend Changes

New Features

Bug fixes, Minor Improvements

UI

  • UI pinned to version 1.27.2.

1.38.1 (2022-10-04)

Backend Changes

Bug fixes, Minor Improvements

UI Changes

  • UI pinned to version 1.27.1 to bump dependencies.

1.38.0 (2022-09-16)

Backend Changes

Bug fixes, Minor Improvements

UI Changes

1.37.0 (2022-08-03)

Backend Changes

Bug fixes, Minor Improvements

UI Changes

1.36.0 (2022-07-05)

Backend Changes

New Features

  • Add flag to enable span size metrics reporting (@ymtdzzz in #3782)
    • Span size metrics are enabled via the --collector.enable-span-size-metrics flag (even if --collector.queue-size-memory is disabled).
  • Add multi-tenancy support (@esnible in #3688)
    • Enabled when --multi_tenancy.enabled=true is passed to the collector.
    • The header carrying the tenants can be specified via the --multi_tenancy.header flag, which defaults to x-tenant.
    • The list of allowed tenants can be set via the --multi_tenancy.tenants flag, which defaults to an unrestricted list of tenants.

Bug fixes, Minor Improvements

UI Changes

1.35.2 (2022-06-15)

Backend Changes

Bug fixes, Minor Improvements

1.35.1 (2022-06-01)

Backend Changes

Bug fixes, Minor Improvements

1.35.0 (2022-06-01)

Backend Changes

New Features

Bug fixes, Minor Improvements

UI Changes

1.34.0 (2022-05-11)

Backend Changes

New Features

Bug fixes, Minor Improvements

UI Changes

  • UI pinned to version 1.23.0. The changelog is available here v1.23.0.

1.33.0 (2022-04-11)

New Features

Bug fixes, Minor Improvements

UI Changes

  • UI pinned to version 1.22.0. The changelog is available here v1.22.0.

1.32.0 (2022-03-06)

Backend Changes

New Features

Bug fixes, Minor Improvements

UI Changes

  • UI pinned to version 1.21.0. The changelog is available here v1.21.0.

1.31.0 (2022-02-04)

Backend Changes

Bug fixes, Minor Improvements

UI Changes

  • UI pinned to version 1.20.1. The changelog is available here v1.20.1.

1.30.0 (2022-01-11)

Backend Changes

New Features

Bug fixes, Minor Improvements

UI Changes

  • UI pinned to version 1.20.0. The changelog is available here v1.20.0

1.29.0 (2021-12-01)

Backend Changes

⛔ Breaking Changes

New Features

Bug fixes, Minor Improvements

  • Fix debug image builds by installing build-base to enable GCC (@yurishkuro in #3400)
  • Limit URL size in Elasticsearch index delete request (@jkandasa in #3375)

UI Changes

  • UI pinned to version 1.19.0. The changelog is available here v1.19.0

1.28.0 (2021-11-06)

Backend Changes

New Features

Bug fixes, Minor Improvements

  • Do not throw error on empty indices in Elasticsach rollover lookback (@jkandasa in #3369)
  • Treat input throughput data as immutable (@rbroggi in #3360)
  • Remove dependencies on unused tools, install tools explicitly instead of via go.mod (@rbroggi in #3355)
  • Update mockery to version 2 and adapt to install-tools approach (@rbroggi in #3358)
  • Control lightweight storage integration tests via build tags (@rbroggi in #3346)
  • Remove package integration from coverage reports (@rbroggi in #3357)
  • Remove outdated reference to cover.sh (@rbroggi in #3348)
  • Update monitoring mixin (@jpkrohling in #3331)
  • Update Jaeger chart link (@isbang in #3328)
  • Fix args order in strings.Contains in es-rollover (@pavolloffay in #3324)
  • Use (TB).TempDir instead of non-portable /mnt/* in Badger (@pavolloffay in #3325)
  • Fix peer.service retrieval from Zipkin's MESSAGE_ADDR annotation (@Git-Jiro in #3312)

UI Changes

  • UI pinned to version 1.18.0. The changelog is available here v1.18.0

1.27.0 (2021-10-06)

Backend Changes

New Features

Bug fixes, Minor Improvements

UI Changes

  • UI pinned to version 1.17.0. The changelog is available here v1.17.0

1.26.0 (2021-09-06)

Backend Changes

New Features

Bug fixes, Minor Improvements

UI Changes

1.25.0 (2021-08-04)

New Features

Bug fixes, Minor Improvements

1.24.0 (2021-07-07)

Backend Changes

⛔ Breaking Changes

  • Upgrade Badger from v1.6.2 to v3.2103.0 (#3096, @Ashmita152):
    • Deprecated --badger.truncate flag.
    • All badger related expvar prefix has changed from badger to badger_v3.

New Features

Bug fixes, Minor Improvements

1.23.0 (2021-06-04)

Backend Changes

New Features

⛔ Breaking Changes

New Features

Bug fixes, Minor Improvements

1.22.0 (2021-02-23)

Backend Changes

⛔ Breaking Changes

  • Remove deprecated TLS flags (#2790, @albertteoh):

    • --cassandra.tls is replaced by --cassandra.tls.enabled
    • --cassandra-archive.tls is replaced by --cassandra-archive.tls.enabled
    • --collector.grpc.tls is replaced by --collector.grpc.tls.enabled
    • --collector.grpc.tls.client.ca is replaced by --collector.grpc.tls.client-ca
    • --es.tls is replaced by --es.tls.enabled
    • --es-archive.tls is replaced by --es-archive.tls.enabled
    • --kafka.consumer.tls is replaced by --kafka.consumer.tls.enabled
    • --kafka.producer.tls is replaced by --kafka.producer.tls.enabled
    • --reporter.grpc.tls is replaced by --reporter.grpc.tls.enabled
  • Remove deprecated flags of Query Server --query.port and --query.host-port, please use dedicated HTTP --query.http-server.host-port (defaults to :16686) and gRPC --query.grpc-server.host-port (defaults to :16685) host-ports flags instead (#2772, @rjs211)

    • By default, if no flags are set, the query server starts on the dedicated ports. To use common port for gRPC and HTTP endpoints, the host-port flags have to be explicitly set
  • Remove deprecated CLI flags (#2751, @LostLaser):

    • --collector.http-port is replaced by --collector.http-server.host-port
    • --collector.grpc-port is replaced by --collector.grpc-server.host-port
    • --collector.zipkin.http-port is replaced by --collector.zipkin.host-port
  • Remove deprecated flags --health-check-http-port & --admin-http-port, please use --admin.http.host-port (#2752, @pradeepnnv)

  • Remove deprecated flag --es.max-num-spans, please use --es.max-doc-count (#2482, @BernardTolosajr)

  • Remove deprecated flag --jaeger.tags, please use --agent.tags (#2753, @yurishkuro)

  • Remove deprecated Cassandra flags (#2789, @albertteoh):

    • --cassandra.enable-dependencies-v2 - Jaeger will automatically detect the version of the dependencies table
    • --cassandra.tls.verify-host - please use --cassandra.tls.skip-host-verify instead
  • Remove incorrectly scoped downsample flags from the query service (#2782, @joe-elliott)

    • --downsampling.hashsalt removed from jaeger-query
    • --downsampling.ratio removed from jaeger-query

New Features

  • Add TLS Support for gRPC and HTTP endpoints of the Query and Collector servers (#2337, #2772, #2798, @rjs211)

    • If TLS in enabled on either or both of gRPC or HTTP endpoints, the gRPC host-port and the HTTP host-port have to be different
    • If TLS is disabled on both endpoints, common HTTP and gRPC host-port can be explicitly set using the following host-port flags respectively:
      • Query: --query.http-server.host-port and --query.grpc-server.host-port
      • Collector: --collector.http-server.host-port and --collector.grpc-server.host-port
  • Add support for Kafka SASL/PLAIN authentication via SCRAM-SHA-256 or SCRAM-SHA-512 mechanism (#2724, @WalkerWang731)

  • [agent] Add metrics to show connections status between agent and collectors (#2657, @WalkerWang731)

  • Add plaintext as a supported kafka auth option (#2721, @pdepaepe)

  • Add ability to use JS file for UI configuration (#123 from jaeger-ui) (#2707, @th3M1ke)

  • Support Elasticsearch ILM for managing jaeger indices (#2796, @bhiravabhatla)

  • Push official images to quay.io, in addition to Docker Hub (#2783, @Ashmita152)

  • Add status command (#2684, @sniperking1234)

    • Usage:
      $ ./cmd/collector/collector-darwin-amd64 status
      {"status":"Server available","upSince":"2021-02-19T17:57:12.671902+11:00","uptime":"25.241233383s"}
  • Support configurable date separator for Elasticsearch index names (#2637, @sniperking1234)

Bug fixes, Minor Improvements

UI Changes

  • UI pinned to version 1.13.0. The changelog is available here v1.13.0

1.21.0 (2020-11-13)

Backend Changes

New Features

Bug fixes, Minor Improvements

UI Changes

  • UI pinned to version 1.12.0. The changelog is available here v1.12.0

1.20.0 (2020-09-29)

Backend Changes

⛔ Breaking Changes

  • Configurable ES doc count (#2453, @albertteoh)

    The --es.max-num-spans flag has been deprecated in favour of --es.max-doc-count. --es.max-num-spans is marked for removal in v1.21.0 as indicated in the flag description.

    If both --es.max-num-spans and --es.max-doc-count are set, the lesser of the two will be used.

    The use of --es.max-doc-count (which defaults to 10,000) will limit the results from all Elasticsearch queries by the configured value, limiting counts for Jaeger UI:

    • Services
    • Operations
    • Dependencies (edges in a dependency graph)
    • Span fetch size for a trace
  • The default value for the flag query.max-clock-skew-adjustment has changed to 0s, meaning that the clock skew adjustment is now disabled by default. See #1459.

New Features

Bug fixes, Minor Improvements

UI Changes

  • UI pinned to version 1.11.0. The changelog is available here v1.11.0

1.19.2 (2020-08-26)

Upgrade to a working UI version before React refactoring.

1.19.1 (2020-08-26)

Revert UI back to 1.9 due to a bug jaegertracing/jaeger-ui#628

1.19.0 (2020-08-26)

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

Bug fixes, Minor Improvements

UI Changes

  • UI pinned to version 1.10.0. The changelog is available here v1.10.0

1.18.1 (2020-06-19)

Backend Changes

Security Fixes

  • CVE-2020-10750: jaegertracing/jaeger: credentials leaked to container logs (@chlunde)

⛔ Breaking Changes

New Features

Bug fixes, Minor Improvements

UI Changes

1.18.0 (2020-05-14)

Backend Changes

⛔ Breaking Changes

  • Remove Tchannel between agent and collector (#2115, #2112, @pavolloffay)

    Remove Tchannel port (14267) from collector and Tchannel 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 by collector.tchan-server.host-port
    • collector.http-port is superseded by collector.http-server.host-port
    • collector.grpc-port is superseded by collector.grpc-server.host-port
    • collector.zipkin.http-port is superseded by collector.zipkin.host-port
    • admin-http-port is superseded by admin.http.host-port

New Features

Bug fixes, Minor Improvements

UI Changes

  • UI pinned to version 1.9.0. The changelog is available here v1.9.0

1.17.1 (2020-03-13)

Bug fixes, Minor Improvements

UI Changes

  • UI pinned to version 1.8.0. The changelog is available here v1.8.0

1.17.0 (2020-02-24)

Backend Changes

New Features

Bug fixes, Minor Improvements

UI Changes

  • UI pinned to version 1.7.0. The changelog is available here v1.7.0

1.16.0 (2019-12-17)

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 to service. 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
      
  • Storage plugin changes:
    • Memory updated to support spanKind on write & read, no migration is required.
    • Badger & ElasticSearch to be implemented: For now spanKind will be set as empty string during read & write, only name 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 use the old table operation_names and set empty spanKind in the response. Steps to get the updated functionality:
      1. You will need to run the command below on the host where you can use cqlsh to connect to Cassandra:
        KEYSPACE=jaeger_v1 CQL_CMD='cqlsh host 9042 -u test_user -p test_password --request-timeout=3000'
        bash ./v002tov003.sh
        
        The script will create new table 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.
      2. Restart ingester & query services so that they begin to use the new table
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

Bug fixes, Minor Improvements

UI Changes

  • UI pinned to version 1.6.0. The changelog is available here v1.6.0

1.15.1 (2019-11-07)

Bug fixes, Minor Improvements

1.15.0 (2019-11-07)

Backend Changes

⛔ Breaking Changes
  • The default value for the Ingester's flag ingester.deadlockInterval has been changed to 0 (#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 to 1m.

  • Mark --collector.grpc.tls.client.ca flag as deprecated for jaeger-collector. (#1840, @yurishkuro)

    The deprecated flag will still work until being removed, it's recommended to use --collector.grpc.tls.client-ca instead.

New Features
Bug fixes, Minor Improvements

UI Changes

  • UI pinned to version 1.5.0. The changelog is available here v1.5.0

1.14.0 (2019-09-02)

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 Jaeger X-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.

  • Support for Zipkin Protobuf spans over HTTP (#1695, @jan25)

  • 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)

  • Add client TLS auth to gRPC reporter (#1591, @tcolgate)

  • 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

UI Changes

  • UI pinned to version 1.4.0. The changelog is available here v1.4.0

1.13.1 (2019-06-28)

Backend Changes

Bug fixes, Minor Improvements
  • Change default for bearer-token-propagation to false (#1642, @wsoula)

UI Changes

1.13.0 (2019-06-27)

Backend Changes

⛔ Breaking Changes
  • The traces related metrics on collector now have a new tag sampler_type (#1576, @guanw)

    This might break some existing metrics dashboard (if so, users need to update query to aggregate over this new tag).

    The list of metrics affected: traces.received, traces.rejected, traces.saved-by-svc.

  • Remove deprecated index prefix separator : from Elastic (#1620, @pavolloffay)

    In Jaeger 1.9.0 release the Elasticsearch index separator was changed from : to -. To keep backwards compatibility the query service kept querying indices with : separator, however the new indices were created only with -. This release of Jaeger removes the query capability for indices containing :, therefore it's recommended to keep using older version until indices containing old separator are not queried anymore.

New Features
Bug fixes, Minor Improvements

UI Changes

  • UI pinned to version 1.3.0. The changelog is available here v1.3.0

1.12.0 (2019-05-16)

Backend Changes

⛔ Breaking Changes
  • The kafka flags were removed in favor of kafka.producer and kafka.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
    
  • Add Admin port and group all ports in one file (#1442, @yurishkuro)

    This change fixes issues #1428, #1332 and moves all metrics endpoints from API ports to admin ports. It requires re-configuring Prometheus scraping rules. Each Jaeger binary has its own admin port that can be found under --admin-http-port command line flag by running the ${binary} help command.

New Features
Bug fixes, Minor Improvements

UI Changes

  • UI pinned to version 1.2.0. The changelog is available here v1.2.0

1.11.0 (2019-03-07)

Backend Changes

⛔ Breaking Changes
  • Introduce kafka.producer and kafka.consumer flags to replace kafka 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
    
New Features
Bug fixes, Minor Improvements

UI Changes

  • UI pinned to version 1.1.0. The changelog is available here v1.1.0

1.10.1 (2019-02-21)

Backend Changes

Bug fixes, Minor Improvements
  • Separate query-service functionality from http handler (#1312, @annanay25)

UI Changes

1.10.0 (2019-02-15)

Backend Changes

⛔ Breaking Changes

Migration Path:

  1. Run plugin/storage/cassandra/schema/migration/v001tov002part1.sh which will copy dependencies into a csv, update the dependency UDT, create a new dependencies_v2 table, and write dependencies from the csv into the dependencies_v2 table.
  2. 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 new dependencies_v2 table.
  3. Update spark job to write to the new dependencies_v2 table. The feature will be done in #58.
  4. 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.

  • Remove ErrorBusy, it essentially duplicates SpansDropped (#1091, @cstyan)
New Features
Bug fixes, Minor Improvements

UI Changes

1.9.0 (2019-01-21)

Backend Changes

⛔ Breaking Changes

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_.

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

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"}
New Features
Bug fixes, Minor Improvements

UI Changes

  • UI pinned to version 1.0.0. The changelog is available here v1.0.0

1.8.2 (2018-11-28)

UI Changes

New Features
  • Embedded components (SearchTraces and Tracepage) (#263, @aljesusg)
Bug fixes, Minor Improvements
  • Fix link in scatter plot when embed mode (#283, @aljesusg)
  • Fix rendering X axis in TraceResultsScatterPlot - pass milliseconds to moment.js (#274, @istrel)

1.8.1 (2018-11-23)

Backend Changes

Bug fixes, Minor Improvements

1.8.0 (2018-11-12)

Backend Changes

⛔ Breaking Changes

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
New Features
Bug fixes, Minor Improvements

UI Changes

New Features
  • 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
Bug Fixes, Minor Improvements
  • 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)

1.7.0 (2018-09-19)

UI Changes

Backend Changes

⛔ Breaking Changes
  • jaeger-standalone binary has been renamed to jaeger-all-in-one. This change also includes package rename from standalone to all-in-one (#1062, @pavolloffay)
New Features

1.6.0 (2018-07-10)

Backend Changes

⛔ Breaking Changes
  • 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, the format 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)

New Features
  • 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)

Minor Improvements
  • [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)

1.5.0 (2018-05-28)

Backend Changes

  • 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)

UI Changes

  • None

1.4.1 (2018-04-21)

Backend Changes

  • Publish binaries for Linux, Darwin, and Windows (#765) - thanks to @grounded042

UI Changes

New Features
  • View Trace JSON buttons return formatted JSON (fixes #199)

1.4.0 (2018-04-20)

Backend Changes

New Features
  • Support traces with >10k spans in Elasticsearch (#668) - thanks to @sramakr
Bug Fixes, Minor Improvements
  • Allow slash '/' in service names (#586)
  • Log errors from HotROD services (#769)

1.3.0 (2018-03-26)

Backend Changes

New Features
  • 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)
Bug Fixes, Minor Improvements
  • 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)

UI Changes

New Features
  • 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)
Bug Fixes, Minor Improvements
  • Clearly identify traces without a root span (fixes #190)
  • Fix #166 JS error on search page after viewing 404 trace

Documentation Changes

1.2.0 (2018-02-07)

Backend Changes

New Features
  • 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)
Bug Fixes, Minor Improvements
  • Remove the override of GOMAXPROCS (#679)
  • Use UTC timezone for ES indices (#646)
  • Fix elasticsearch create index race condition error (#641)

UI Changes

New Features
  • Use Ant Design instead of Semantic UI (jaegertracing/jaeger-ui#169)
    • Fix #164 - Use Ant Design instead of Semantic UI
    • Fix #165 - Search results are shown without a date
    • Fix #69 - Missing endpoints in jaeger ui dropdown
Bug Fixes, Minor Improvements

1.1.0 (2018-01-03)

Backend Changes

New Features
  • Add support for retrieving unadjusted/raw traces (#615)
  • Add CA certificates to collector/query images (#485)
  • Parse zipkin v2 high trace id (#596)
Bug Fixes, Minor Improvements
  • 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)

UI Changes

New Features
Bug Fixes, Minor Improvements

1.0.0 (2017-12-04)

Backend Changes

  • 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)

UI Changes

  • Make dependencies tab configurable (#122)

0.10.0 (2017-11-17)

UI Changes

Backend Changes

  • 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

0.9.0 (2017-10-25)

UI Changes

Backend Changes

  • Add tracing to the query server #454
  • Support configuration files #462
  • Add cassandra tag filter #442
  • Handle ports > 32k in Zipkin JSON #488

0.8.0 (2017-09-24)

  • Convert to Apache 2.0 License

0.7.0 (2017-08-22)

  • 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

0.6.0 (2017-08-09)

  • Add viper/cobra configuration support #245 #307
  • Add Zipkin /api/v1/spans endpoint #282
  • Add basic authenticator to configs for cass