All Versions
41
Latest Version
Avg Release Cycle
36 days
Latest Release
54 days ago

Changelog History
Page 2

  • v1.16.0 Changes

    December 17, 2019

    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 used the old table operation_names and set empty spanKind in the response.
        Steps to get the updated functionality:
        1. You will need to run below command on the host you can use cqlsh to connect the the cassandra contact point 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.

    0๏ธโƒฃ 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
  • v1.15.1 Changes

    November 07, 2019
    ๐Ÿ› Bug fixes, Minor Improvements
  • v1.15.0 Changes

    November 07, 2019

    Backend Changes

    ๐Ÿ’ฅ Breaking Changes

    0๏ธโƒฃ 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, but will be removed removed in the future, it's recommended to use --collector.grpc.tls.client-ca instead.

    ๐Ÿ†• New Features
    ๐Ÿ› 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)
    • 0๏ธโƒฃ 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
  • v1.14.0 Changes

    September 02, 2019

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

    0๏ธโƒฃ 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

    • ๐Ÿ›  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
  • v1.13.1 Changes

    June 28, 2019

    Backend Changes

    ๐Ÿ’ฅ Breaking Changes
    ๐Ÿ†• New Features
    ๐Ÿ› Bug fixes, Minor Improvements
    • ๐Ÿ”„ Change default for bearer-token-propagation to false (#1642, @wsoula)

    ๐Ÿ’ป UI Changes

  • v1.13.0 Changes

    June 27, 2019

    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
  • v1.12.0 Changes

    May 16, 2019

    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
  • v1.11.0 Changes

    March 07, 2019

    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
    • ๐Ÿ‘Œ Support secure gRPC channel between agent and collector (#1391, @ghouscht, @yurishkuro)

    • ๐Ÿ‘ Allow to use TLS with ES basic auth (#1388, @pavolloffay)

    ๐Ÿ› Bug fixes, Minor Improvements

    ๐Ÿ’ป UI Changes

    • ๐Ÿ“Œ UI pinned to version 1.1.0. The changelog is available here v1.1.0
  • v1.10.1 Changes

    February 21, 2019

    Backend Changes

    ๐Ÿ’ฅ Breaking Changes
    ๐Ÿ†• New Features
    ๐Ÿ› Bug fixes, Minor Improvements
    • Separate query-service functionality from http handler (#1312, @annanay25)

    ๐Ÿ’ป UI Changes

  • v1.10.0 Changes

    February 15, 2019

    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 metric, it essentially duplicates SpansDropped (#1091, @cstyan)

    ๐Ÿ†• New Features

    ๐Ÿ› Bug fixes, Minor Improvements

    • ๐Ÿ‘‰ 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)

    ๐Ÿ’ป UI Changes