Skip to content

Releases: grafana/tempo

v2.1.1

28 Apr 16:26
4157d76
Compare
Choose a tag to compare

Bugfixes

  • [BUGFIX] Fix issue where Tempo sometimes flips booleans from false->true at storage time. #2400 (@joe-elliott)

v2.1.0

26 Apr 20:29
4e2f097
Compare
Choose a tag to compare

Breaking Changes

  • [CHANGE] Breaking Change Remove support for search on v2 blocks. #2159 (@joe-elliott)
    Removed config options:
    overrides:
      max_search_bytes_per_trace:
      search_tags_allow_list:
      search_tags_deny_list:
    
    Removed metrics:
    tempo_ingester_trace_search_bytes_discarded_total
  • [CHANGE] BREAKING CHANGE Change metrics prefixed with cortex_ to tempo_ #2204 (@mapno)
  • [ENHANCEMENT] Add Throughput and SLO Metrics with SLOConfig in Query Frontend #2008 (@electron0zero)
    • BREAKING CHANGE query_frontend_result_metrics_inspected_bytes metric removed in favour of query_frontend_bytes_processed_per_second

Changes

Features

Enhancements

  • [ENHANCEMENT] Capture and update search metrics for TraceQL #2087 (@electron0zero)
  • [ENHANCEMENT] Add support for s3 session token in static config #2093 (@farodin91)
  • [ENHANCEMENT] Metrics generator to make use of counters earlier #2068 (@zalegrala)
  • [ENHANCEMENT] Log when a trace is too large to compact #2105 (@scalalang2)
  • [ENHANCEMENT] Add support for arbitrary arithemtic to TraceQL queries #2146 (@joe-elliott)
  • [ENHANCEMENT] tempo-cli: add command to migrate a tenant #2130 (@kvrhdn)
  • [ENHANCEMENT] Added the ability to multiple span metrics by an attribute such as X-SampleRatio #2172 (@altanozlu)

Bugfixes

  • [BUGFIX] Correctly connect context during compaction #2220 (@ie-pham)
  • [BUGFIX] Apply rate() to bytes/s panel in tenant's dashboard. #2081 (@mapno)
  • [BUGFIX] Retry copy operations during compaction in GCS backend #2111 (@mapno)
  • [BUGFIX] Fix float/int comparisons in TraceQL. #2139 (@joe-elliott)
  • [BUGFIX] Improve locking and search head block in SearchTagValuesV2 #2164 (@mapno)
  • [BUGFIX] Fix not closing WAL block file before attempting to delete the folder. #2152 (@kostya9)
  • [BUGFIX] Stop searching for virtual tags if there are any hits.
    This prevents invalid values from showing up for intrinsics like status #2219 (@joe-elliott)
  • [BUGFIX] Correctly return unique spans when &&ing and ||ing spansets. #2254 (@joe-elliott)
  • [BUGFIX] Support negative values on aggregate filters like count() > -1. #2289 (@joe-elliott)
  • [BUGFIX] Support float as duration like {duration > 1.5s} [#2304]#2304 (@ie-pham)

v2.1.0-rc.0

26 Apr 15:47
8192bd0
Compare
Choose a tag to compare
v2.1.0-rc.0 Pre-release
Pre-release

Breaking Changes

  • [CHANGE] Breaking Change Remove support for search on v2 blocks. #2159 (@joe-elliott)
    Removed config options:
    overrides:
      max_search_bytes_per_trace:
      search_tags_allow_list:
      search_tags_deny_list:
    
    Removed metrics:
    tempo_ingester_trace_search_bytes_discarded_total
  • [CHANGE] BREAKING CHANGE Change metrics prefixed with cortex_ to tempo_ #2204 (@mapno)
  • [ENHANCEMENT] Add Throughput and SLO Metrics with SLOConfig in Query Frontend #2008 (@electron0zero)
    • BREAKING CHANGE query_frontend_result_metrics_inspected_bytes metric removed in favour of query_frontend_bytes_processed_per_second

Changes

Features

Enhancements

  • [ENHANCEMENT] Capture and update search metrics for TraceQL #2087 (@electron0zero)
  • [ENHANCEMENT] Add support for s3 session token in static config #2093 (@farodin91)
  • [ENHANCEMENT] Metrics generator to make use of counters earlier #2068 (@zalegrala)
  • [ENHANCEMENT] Log when a trace is too large to compact #2105 (@scalalang2)
  • [ENHANCEMENT] Add support for arbitrary arithemtic to TraceQL queries #2146 (@joe-elliott)
  • [ENHANCEMENT] tempo-cli: add command to migrate a tenant #2130 (@kvrhdn)
  • [ENHANCEMENT] Added the ability to multiple span metrics by an attribute such as X-SampleRatio #2172 (@altanozlu)

Bugfixes

  • [BUGFIX] Correctly connect context during compaction #2220 (@ie-pham)
  • [BUGFIX] Apply rate() to bytes/s panel in tenant's dashboard. #2081 (@mapno)
  • [BUGFIX] Retry copy operations during compaction in GCS backend #2111 (@mapno)
  • [BUGFIX] Fix float/int comparisons in TraceQL. #2139 (@joe-elliott)
  • [BUGFIX] Improve locking and search head block in SearchTagValuesV2 #2164 (@mapno)
  • [BUGFIX] Fix not closing WAL block file before attempting to delete the folder. #2139 (@kostya9)
  • [BUGFIX] Stop searching for virtual tags if there are any hits.
    This prevents invalid values from showing up for intrinsics like status #2219 (@joe-elliott)
  • [BUGFIX] Correctly return unique spans when &&ing and ||ing spansets. #2254 (@joe-elliott)
  • [BUGFIX] Support negative values on aggregate filters like count() > -1. #2289 (@joe-elliott)
  • [BUGFIX] Support float as duration like {duration > 1.5s} [#2304]#2304 (@ie-pham)

v2.0.1

03 Mar 13:55
2349115
Compare
Choose a tag to compare

Changes

  • [CHANGE] No longer return status.code from /api/search/tags unless it is an attribute present in the data #2059 (@mdisibio)
  • [CHANGE] Pad leading zeroes in span id to always be 16 chars #2062 (@ie-pham)

Bugfixes

  • [BUGFIX] Suppress logspam in single binary mode when metrics generator is disabled. #2058 (@joe-elliott)
  • [BUGFIX] Error more gracefully while reading some blocks written by an interim commit between 1.5 and 2.0 #2055 (@mdisibio)
  • [BUGFIX] Correctly coalesce trace level data when combining Parquet traces. #2095 (@joe-elliott)
  • [BUGFIX] Unescape query parameters in AWS Lambda to allow TraceQL queries to work. #2114 (@joe-elliott)

v2.0.0

31 Jan 16:26
9ad9924
Compare
Choose a tag to compare

Breaking Changes

Config

  • [CHANGE] BREAKING CHANGE Use snake case on Azure Storage config #1879 (@faustodavid)
    Example of using snake case on Azure Storage config:
    # config.yaml
    storage:
      trace:
        azure:
          storage_account_name:
          storage_account_key:
          container_name:
    
  • [CHANGE] Config updates to prepare for Tempo 2.0. #1978 (@joe-elliott)
    query_frontend:
      query_shards:                  // removed. use trace_by_id.query_shards
    querier:
        query_timeout:               // removed. use trace_by_id.query_timeout
    compactor:
        compaction:
            chunk_size_bytes:        // renamed to v2_in_buffer_bytes
            flush_size_bytes:        // renamed to v2_out_buffer_bytes
            iterator_buffer_size:    // renamed to v2_prefetch_traces_count
    ingester:
        use_flatbuffer_search:       // removed. automatically set based on block type
    storage:
      traces:
        wal:
            encoding:                // renamed to v2_encoding
            version:                 // removed and pinned to block.version
        block:
            index_downsample_bytes:  // renamed to v2_index_downsample_bytes
            index_page_size_bytes:   // renamed to v2_index_page_size_bytes
            encoding:                // renamed to v2_encoding
            row_group_size_bytes:    // renamed to parquet_row_group_size_bytes
    
  • [CHANGE] BREAKING CHANGE Remove search_enabled and metrics_generator_enabled. Both default to true. #2004 (@joe-elliott)
  • [CHANGE] BREAKING CHANGE Parquet is the new default block version #1678
    To continue using the v2 backend set:
    storage:
      trace:
        block:
          version: v2
    

Jsonnet

  • [CHANGE] Delete TempoRequestErrors alert from mixin #1810 (@zalegrala)
    • BREAKING CHANGE Any jsonnet users relying on this alert should copy this into their own environment.

Metrics Generator

  • [CHANGE] metrics-generator: handle collisions between user defined and default dimensions #1794 (@stoewer)
    BREAKING CHANGE Custom dimensions colliding with intrinsic dimensions will be prefixed with __.

Changes

  • [CHANGE] Increase default values for server.grpc_server_max_recv_msg_size and server.grpc_server_max_send_msg_size from 4MB to 16MB #1688 (@mapno)
  • [CHANGE] Update Go to 1.19 #1665 (@ie-pham)
  • [CHANGE] Update alpine image version to 3.16. #1784 (@zalegrala)
  • [CHANGE] Config updates to prepare for Tempo 2.0. #1978 (@joe-elliott)
    Defaults updated:
    query_frontend:
      max_oustanding_per_tenant: 2000
      search:
          concurrent_jobs: 1000
          target_bytes_per_job: 104857600
          max_duration: 168h
          query_ingesters_until: 30m
      trace_by_id:
          query_shards: 50
    querier:
        max_concurrent_queries: 20
        search:
            prefer_self: 10
    ingester:
        concurrent_flushes: 4
        max_block_duration: 30m
        max_block_bytes: 524288000
    storage:
        trace:
            pool:
                max_workers: 400
                queue_depth: 20000
            search:
                read_buffer_count: 32
                read_buffer_size_bytes: 1048576
    

Features

  • [FEATURE] TraceQL Phase 1 support. A new query language for traces!
  • [FEATURE] Parquet backend is GA and default. By default Tempo will create Parquet blocks to enhance search performance
    and to provide users with their data in an open format. See breaking changes above for a note on how to continue using older backends.
  • [FEATURE] Add generic forwarder and implement otlpgrpc forwarder #1775 (@Blinkuu)
    New config options and example configuration:
    # config.yaml
    distributor:
      forwarders:
        - name: "otel-forwarder"
          backend: "otlpgrpc"
          otlpgrpc:
            endpoints: ['otelcol:4317']
            tls:
              insecure: true
    
    # overrides.yaml
    overrides:
      "example-tenant-1":
        forwarders: ['otel-forwarder']
      "example-tenant-2":
        forwarders: ['otel-forwarder']
    

Enhancements

# use the following fields in _config field of jsonnet config, to enable zone aware ingester
    multi_zone_ingester_enabled: false,
    multi_zone_ingester_migration_enabled: false,
    multi_zone_ingester_replicas: 0,
    multi_zone_ingester_max_unavailable: 25,
  • [ENHANCEMENT] Add new data-type aware searchtagvalues v2 api #1956 (@mdisibio)
  • [ENHANCEMENT] Filter namespace by cluster in tempo dashboards variables #1771 (@electron0zero)
  • [ENHANCEMENT] Exit early from sharded search requests #1742 (@electron0zero)
  • [ENHANCEMENT] Avoid running tempodb pool jobs with a cancelled context #1852 (@zalegrala)
  • [ENHANCEMENT] Add config flag to allow for compactor disablement for debug purposes #1850 (@zalegrala)
  • [ENHANCEMENT] Identify bloom that could not be retrieved from backend block #1737 (@AlexDHoffer)
  • [ENHANCEMENT] tempo: check configuration returns now a list of warnings #1663 (@frzifus)
  • [ENHANCEMENT] Make DNS address fully qualified to reduce DNS lookups in Kubernetes #1687 (@electron0zero)
  • [ENHANCEMENT] Return 200 instead of 206 when blocks failed is < tolerate_failed_blocks. #1725 (@joe-elliott)
  • [ENHANCEMENT] Add GOMEMLIMIT variable to compactor jsonnet and set the value to equal compactor memory limit. #1758 (@ie-pham)
  • [ENHANCEMENT] Add capability to configure the used S3 Storage Class #1697 (@amitsetty)
  • [ENHANCEMENT] cache: expose username and sentinel_username redis configuration options for ACL-based Redis Auth support #1708 (@jsievenpiper)
  • [ENHANCEMENT] metrics-generator: expose span size as a metric #1662 (@ie-pham)
  • [ENHANCEMENT] Set Max Idle connections to 100 for Azure, should reduce DNS errors in Azure #1632 (@electron0zero)
  • [ENHANCEMENT] Add PodDisruptionBudget to ingesters in jsonnet #1691 (@joe-elliott)
  • [ENHANCEMENT] Add a cli command to convert a block to the current parquet schema. #1707 (@joe-elliott)
  • [ENHANCEMENT] metrics-generator: filter out older spans before metrics are aggregated #1612 (@ie-pham)
  • [ENHANCEMENT] Add hedging to trace by ID lookups created by the frontend. #1735 (@mapno)
    New config options and defaults:
query_frontend:
  trace_by_id:
    hedge_requests_at: 5s
    hedge_requests_up_to: 3
  • [ENHANCEMENT] Vulture now has improved distribution of the random traces it searches. #1763 (@rfratto)
  • [ENHANCEMENT] Add TLS support to the vulture #1874 (@zalegrala)
  • [ENHANCEMENT] metrics-generator: extract status_message field from spans #1786, #1794 (@stoewer)
  • [ENHANCEMENT] metrics-generator: handle collisions between user defined and default dimensions #1794 (@stoewer)
  • [ENHANCEMENT] metrics-generator: make intrinsic dimensions configurable and disable status_message by default #1960 (@stoewer)
  • [ENHANCEMENT] distributor: Log span names when distributor.log_received_spans.include_all_attributes is on #1790 (@suraciii)
  • [ENHANCEMENT] metrics-generator: truncate label names and values exceeding a configurable length #1897 (@kvrhdn)
  • [ENHANCEMENT] Convert last few Jsonnet alerts with per_cluster_label #2000 (@Whyeasy)
  • [ENHANCEMENT] New tenant dashboard #1901 (@mapno)
  • [ENHANCEMENT] Upgrade opentelemetry-proto submodule to v0.18.0 Internal types are updated to use scope instead of instrumentation_library.
    This is a breaking change in trace by ID queries if JSON is requested. #1754 (@mapno)

Bugfix...

Read more

v2.0.0-rc.0

24 Jan 20:08
896cd2d
Compare
Choose a tag to compare
v2.0.0-rc.0 Pre-release
Pre-release

Breaking Changes

Config

  • [CHANGE] BREAKING CHANGE Use snake case on Azure Storage config #1879 (@faustodavid)
    Example of using snake case on Azure Storage config:
    # config.yaml
    storage:
      trace:
        azure:
          storage_account_name:
          storage_account_key:
          container_name:
    
  • [CHANGE] Config updates to prepare for Tempo 2.0. #1978 (@joe-elliott)
    query_frontend:
      query_shards:                  // removed. use trace_by_id.query_shards
    querier:
        query_timeout:               // removed. use trace_by_id.query_timeout
    compactor:
        compaction:
            chunk_size_bytes:        // renamed to v2_in_buffer_bytes
            flush_size_bytes:        // renamed to v2_out_buffer_bytes
            iterator_buffer_size:    // renamed to v2_prefetch_traces_count
    ingester:
        use_flatbuffer_search:       // removed. automatically set based on block type
    storage:
      traces:
        wal:
            encoding:                // renamed to v2_encoding
            version:                 // removed and pinned to block.version
        block:
            index_downsample_bytes:  // renamed to v2_index_downsample_bytes
            index_page_size_bytes:   // renamed to v2_index_page_size_bytes
            encoding:                // renamed to v2_encoding
            row_group_size_bytes:    // renamed to parquet_row_group_size_bytes
    
  • [CHANGE] BREAKING CHANGE Remove search_enabled and metrics_generator_enabled. Both default to true. #2004 (@joe-elliott)
  • [CHANGE] BREAKING CHANGE Parquet is the new default block version #1678
    To continue using the v2 backend set:
    storage:
      trace:
        block:
          version: v2
    

Jsonnet

  • [CHANGE] Delete TempoRequestErrors alert from mixin #1810 (@zalegrala)
    • BREAKING CHANGE Any jsonnet users relying on this alert should copy this into their own environment.

Metrics Generator

  • [CHANGE] metrics-generator: handle collisions between user defined and default dimensions #1794 (@stoewer)
    BREAKING CHANGE Custom dimensions colliding with intrinsic dimensions will be prefixed with __.

Changes

  • [CHANGE] Increase default values for server.grpc_server_max_recv_msg_size and server.grpc_server_max_send_msg_size from 4MB to 16MB #1688 (@mapno)
  • [CHANGE] Update Go to 1.19 #1665 (@ie-pham)
  • [CHANGE] Update alpine image version to 3.16. #1784 (@zalegrala)
  • [CHANGE] Config updates to prepare for Tempo 2.0. #1978 (@joe-elliott)
    Defaults updated:
    query_frontend:
      max_oustanding_per_tenant: 2000
      search:
          concurrent_jobs: 1000
          target_bytes_per_job: 104857600
          max_duration: 168h
          query_ingesters_until: 30m
      trace_by_id:
          query_shards: 50
    querier:
        max_concurrent_queries: 20
        search:
            prefer_self: 10
    ingester:
        concurrent_flushes: 4
        max_block_duration: 30m
        max_block_bytes: 524288000
    storage:
        trace:
            pool:
                max_workers: 400
                queue_depth: 20000
            search:
                read_buffer_count: 32
                read_buffer_size_bytes: 1048576
    

Features

  • [FEATURE] TraceQL Phase 1 support. A new query language for traces!
  • [FEATURE] Parquet backend is GA and default. By default Tempo will create Parquet blocks to enhance search performance
    and to provide users with their data in an open format. See breaking changes above for a note on how to continue using older backends.
  • [FEATURE] Add generic forwarder and implement otlpgrpc forwarder #1775 (@Blinkuu)
    New config options and example configuration:
    # config.yaml
    distributor:
      forwarders:
        - name: "otel-forwarder"
          backend: "otlpgrpc"
          otlpgrpc:
            endpoints: ['otelcol:4317']
            tls:
              insecure: true
    
    # overrides.yaml
    overrides:
      "example-tenant-1":
        forwarders: ['otel-forwarder']
      "example-tenant-2":
        forwarders: ['otel-forwarder']
    

Enhancements

# use the following fields in _config field of jsonnet config, to enable zone aware ingester
    multi_zone_ingester_enabled: false,
    multi_zone_ingester_migration_enabled: false,
    multi_zone_ingester_replicas: 0,
    multi_zone_ingester_max_unavailable: 25,
  • [ENHANCEMENT] Add new data-type aware searchtagvalues v2 api #1956 (@mdisibio)
  • [ENHANCEMENT] Filter namespace by cluster in tempo dashboards variables #1771 (@electron0zero)
  • [ENHANCEMENT] Exit early from sharded search requests #1742 (@electron0zero)
  • [ENHANCEMENT] Avoid running tempodb pool jobs with a cancelled context #1852 (@zalegrala)
  • [ENHANCEMENT] Add config flag to allow for compactor disablement for debug purposes #1850 (@zalegrala)
  • [ENHANCEMENT] Identify bloom that could not be retrieved from backend block #1737 (@AlexDHoffer)
  • [ENHANCEMENT] tempo: check configuration returns now a list of warnings #1663 (@frzifus)
  • [ENHANCEMENT] Make DNS address fully qualified to reduce DNS lookups in Kubernetes #1687 (@electron0zero)
  • [ENHANCEMENT] Return 200 instead of 206 when blocks failed is < tolerate_failed_blocks. #1725 (@joe-elliott)
  • [ENHANCEMENT] Add GOMEMLIMIT variable to compactor jsonnet and set the value to equal compactor memory limit. #1758 (@ie-pham)
  • [ENHANCEMENT] Add capability to configure the used S3 Storage Class #1697 (@amitsetty)
  • [ENHANCEMENT] cache: expose username and sentinel_username redis configuration options for ACL-based Redis Auth support #1708 (@jsievenpiper)
  • [ENHANCEMENT] metrics-generator: expose span size as a metric #1662 (@ie-pham)
  • [ENHANCEMENT] Set Max Idle connections to 100 for Azure, should reduce DNS errors in Azure #1632 (@electron0zero)
  • [ENHANCEMENT] Add PodDisruptionBudget to ingesters in jsonnet #1691 (@joe-elliott)
  • [ENHANCEMENT] Add a cli command to convert a block to the current parquet schema. #1707 (@joe-elliott)
  • [ENHANCEMENT] metrics-generator: filter out older spans before metrics are aggregated #1612 (@ie-pham)
  • [ENHANCEMENT] Add hedging to trace by ID lookups created by the frontend. #1735 (@mapno)
    New config options and defaults:
query_frontend:
  trace_by_id:
    hedge_requests_at: 5s
    hedge_requests_up_to: 3
  • [ENHANCEMENT] Vulture now has improved distribution of the random traces it searches. #1763 (@rfratto)
  • [ENHANCEMENT] Add TLS support to the vulture #1874 (@zalegrala)
  • [ENHANCEMENT] metrics-generator: extract status_message field from spans #1786, #1794 (@stoewer)
  • [ENHANCEMENT] metrics-generator: handle collisions between user defined and default dimensions #1794 (@stoewer)
  • [ENHANCEMENT] metrics-generator: make intrinsic dimensions configurable and disable status_message by default #1960 (@stoewer)
  • [ENHANCEMENT] distributor: Log span names when distributor.log_received_spans.include_all_attributes is on #1790 (@suraciii)
  • [ENHANCEMENT] metrics-generator: truncate label names and values exceeding a configurable length #1897 (@kvrhdn)
  • [ENHANCEMENT] Convert last few Jsonnet alerts with per_cluster_label #2000 (@Whyeasy)
  • [ENHANCEMENT] New tenant dashboard #1901 (@mapno)
  • [ENHANCEMENT] Upgrade opentelemetry-proto submodule to v0.18.0 Internal types are updated to use scope instead of instrumentation_library.
    This is a breaking change in trace by ID queries if JSON is requested. #1754 (@mapno)

Bugfix...

Read more

v1.5.0

17 Aug 17:45
fd5743d
Compare
Choose a tag to compare

Breaking Changes

  • (#1478) In order to build advanced visualization features into Grafana we have decided to change our spanmetric names to match OTel conventions. This way any functionality added to Grafana will work whether you use Tempo, Grafana Agent or the OTel Collector to generate metrics. Details in the span metrics documentation.
  • (#1556) Jsonnet users will need to specify ephemeral storage requests and limits for the metrics generator.
  • (#1481) Anonymous usage reporting has been added. Distributors and metrics generators will now require permissions to object storage equivalent to compactors and ingesters. This feature is enabled by default but can be disabled easily.
  • (#1558) Deprecated metrics tempodb_(gcs|s3|azure)_request_duration_seconds have been removed in favor of tempodb_backend_request_duration_seconds.

Changes

  • [CHANGE] metrics-generator: Changed added metric label instance to __metrics_gen_instance to reduce collisions with custom dimensions. #1439 (@joe-elliott)
  • [CHANGE] Don't enforce max_bytes_per_tag_values_query when set to 0. #1447 (@joe-elliott)
  • [CHANGE] Add new querier service in deployment jsonnet to serve /status endpoint. #1474 (@annanay25)
  • [CHANGE] Swapped out Google Cloud Functions serverless docs and build for Google Cloud Run. #1483 (@joe-elliott)
  • [CHANGE] BREAKING CHANGE Change spanmetrics metric names and labels to match OTel conventions. #1478 (@mapno)
    Old metric names:
traces_spanmetrics_duration_seconds_{sum,count,bucket}

New metric names:

traces_spanmetrics_latency_{sum,count,bucket}

Additionally, default label span_status is renamed to status_code.

  • [CHANGE] Update to Go 1.18 #1504 (@annanay25)
  • [CHANGE] Change tag/value lookups to return partial results when reaching response size limit instead of failing #1517 (@mdisibio)
  • [CHANGE] Change search to be case-sensitive #1547 (@mdisibio)
  • [CHANGE] Relax Hedged request defaults for external endpoints. #1566 (@joe-elliott)
    querier:
      search:
        external_hedge_requests_at: 4s    -> 8s
        external_hedge_requests_up_to: 3  -> 2
    
  • [CHANGE] BREAKING CHANGE Include emptyDir for metrics generator wal storage in jsonnet #1556 (@zalegrala)
    Jsonnet users will now need to specify a storage request and limit for the generator wal.
    _config+:: {
      metrics_generator+: {
        ephemeral_storage_request_size: '10Gi',
        ephemeral_storage_limit_size: '11Gi',
      },
    }
  • [CHANGE] Two additional latency buckets added to the default settings for generated spanmetrics. Note that this will increase cardinality when using the defaults. #1593 (@fredr)
  • [CHANGE] Mark log_received_traces as deprecated. New flag is log_received_spans.
    Extend distributor spans logger with optional features to include span attributes and a filter by error status. #1465 (@faustodavid)

Features

  • [FEATURE] Add parquet block format #1479 #1531 #1564 (@annanay25, @mdisibio)
  • [FEATURE] Add anonymous usage reporting, enabled by default. #1481 (@zalegrala)
    BREAKING CHANGE As part of the usage stats inclusion, the distributor will also require access to the store. This is required so the distirbutor can know which cluster it should be reporting membership of.
  • [FEATURE] Include messaging systems and databases in service graphs. #1576 (@kvrhdn)

Enhancements

  • [ENHANCEMENT] Added the ability to have a per tenant max search duration. #1421 (@joe-elliott)
  • [ENHANCEMENT] metrics-generator: expose max_active_series as a metric #1471 (@kvrhdn)
  • [ENHANCEMENT] Azure Backend: Add support for authentication with Managed Identities. #1457 (@joe-elliott)
  • [ENHANCEMENT] Add metric to track feature enablement #1459 (@zalegrala)
  • [ENHANCEMENT] Added s3 config option insecure_skip_verify #1470 (@zalegrala)
  • [ENHANCEMENT] Added polling option to reduce issues in Azure blocklist_poll_jitter_ms #1518 (@joe-elliott)
  • [ENHANCEMENT] Add a config to query single ingester instance based on trace id hash for Trace By ID API. (1484)[https://github.com//pull/1484] (@sagarwala, @bikashmishra100, @ashwinidulams)
  • [ENHANCEMENT] Add blocklist metrics for total backend objects and total backend bytes #1519 (@ie-pham)
  • [ENHANCEMENT] Adds tempo_querier_external_endpoint_hedged_roundtrips_total to count the total hedged requests #1558 (@joe-elliott)
    BREAKING CHANGE Removed deprecated metrics tempodb_(gcs|s3|azure)_request_duration_seconds in favor of tempodb_backend_request_duration_seconds. These metrics
    have been deprecated since v1.1.
  • [ENHANCEMENT] Add tags option for s3 backends. This allows new objects to be written with the configured tags. #1442 (@stevenbrookes)
  • [ENHANCEMENT] metrics-generator: support per-tenant processor configuration #1434 (@kvrhdn)
  • [ENHANCEMENT] Include rollout dashboard #1456 (@zalegrala)
  • [ENHANCEMENT] Add SentinelPassword configuration for Redis #1463 (@zalegrala)
  • [ENHANCEMENT] Add support for time picker in jaeger query plugin. #1631 (@rubenvp8510)

Bugfixes

  • [BUGFIX] Fix nil pointer panic when the trace by id path errors. #1441 (@joe-elliott)
  • [BUGFIX] Update tempo microservices Helm values example which missed the 'enabled' key for thriftHttp. #1472 (@hajowieland)
  • [BUGFIX] Fix race condition in forwarder overrides loop. 1468 (@mapno)
  • [BUGFIX] Fix v2 backend check on span name to be substring #1538 (@mdisibio)
  • [BUGFIX] Fix wal check on span name to be substring #1548 (@mdisibio)
  • [BUGFIX] Prevent ingester panic "cannot grow buffer" #1258 (@mdisibio)
  • [BUGFIX] metrics-generator: do not remove x-scope-orgid header in single tenant modus #1554 (@kvrhdn)
  • [BUGFIX] Fixed issue where backend does not support root.name and root.service.name #1589 (@kvrhdn)
  • [BUGFIX] Fixed ingester to continue starting up after block replay error #1603 (@mdisibio)

v1.5.0-rc.2

12 Aug 14:25
7c33589
Compare
Choose a tag to compare
v1.5.0-rc.2 Pre-release
Pre-release

Two Parquet stability improvements

v1.5.0-rc.1

11 Aug 12:21
948a6af
Compare
Choose a tag to compare
v1.5.0-rc.1 Pre-release
Pre-release

Bugfixes

  • [BUGFIX] Fix issue where usage stats broke polling by creating an object that was interpreted as a tenant. #1625 (@ie-pham)

v1.5.0-rc.0

04 Aug 14:14
b052e37
Compare
Choose a tag to compare
v1.5.0-rc.0 Pre-release
Pre-release

Breaking Changes

  • (#1478) In order to build advanced visualization features into Grafana we have decided to change our spanmetric names to match OTel conventions. This way any functionality added to Grafana will work whether you use Tempo, Grafana Agent or the OTel Collector to generate metrics. Details below.
  • (#1556) Jsonnet users will need to specify ephemeral storage requests and limits for the metrics generator.
  • (#1481) Anonymous usage reporting has been added. Distributors and metrics generators will now require permissions to object storage equivalent to compactors and ingesters. This feature is enabled by default but can be disabled easily.
  • (#1558) Deprecated metrics tempodb_(gcs|s3|azure)_request_duration_seconds have been removed in favor of tempodb_backend_request_duration_seconds.

Changes

  • [CHANGE] metrics-generator: Changed added metric label instance to __metrics_gen_instance to reduce collisions with custom dimensions. #1439 (@joe-elliott)
  • [CHANGE] Don't enforce max_bytes_per_tag_values_query when set to 0. #1447 (@joe-elliott)
  • [CHANGE] Add new querier service in deployment jsonnet to serve /status endpoint. #1474 (@annanay25)
  • [CHANGE] Swapped out Google Cloud Functions serverless docs and build for Google Cloud Run. #1483 (@joe-elliott)
  • [CHANGE] BREAKING CHANGE Change spanmetrics metric names and labels to match OTel conventions. #1478 (@mapno)
    Old metric names:
traces_spanmetrics_duration_seconds_{sum,count,bucket}

New metric names:

traces_spanmetrics_latency_{sum,count,bucket}

Additionally, default label span_status is renamed to status_code.

  • [CHANGE] Update to Go 1.18 #1504 (@annanay25)
  • [CHANGE] Change tag/value lookups to return partial results when reaching response size limit instead of failing #1517 (@mdisibio)
  • [CHANGE] Change search to be case-sensitive #1547 (@mdisibio)
  • [CHANGE] Relax Hedged request defaults for external endpoints. #1566 (@joe-elliott)
    querier:
      search:
        external_hedge_requests_at: 4s    -> 8s
        external_hedge_requests_up_to: 3  -> 2
    
  • [CHANGE] BREAKING CHANGE Include emptyDir for metrics generator wal storage in jsonnet #1556 (@zalegrala)
    Jsonnet users will now need to specify a storage request and limit for the generator wal.
    _config+:: {
      metrics_generator+: {
        ephemeral_storage_request_size: '10Gi',
        ephemeral_storage_limit_size: '11Gi',
      },
    }
  • [CHANGE] Two additional latency buckets added to the default settings for generated spanmetrics. Note that this will increase cardinality when using the defaults. #1593 (@fredr)
  • [CHANGE] Mark log_received_traces as deprecated. New flag is log_received_spans.
    Extend distributor spans logger with optional features to include span attributes and a filter by error status. #1465 (@faustodavid)

Features

  • [FEATURE] Add parquet block format #1479 #1531 #1564 (@annanay25, @mdisibio)
  • [FEATURE] Add anonymous usage reporting, enabled by default. #1481 (@zalegrala)
    BREAKING CHANGE As part of the usage stats inclusion, the distributor will also require access to the store. This is required so the distirbutor can know which cluster it should be reporting membership of.
  • [FEATURE] Include messaging systems and databases in service graphs. #1576 (@kvrhdn)

Enhancements

  • [ENHANCEMENT] Added the ability to have a per tenant max search duration. #1421 (@joe-elliott)
  • [ENHANCEMENT] metrics-generator: expose max_active_series as a metric #1471 (@kvrhdn)
  • [ENHANCEMENT] Azure Backend: Add support for authentication with Managed Identities. #1457 (@joe-elliott)
  • [ENHANCEMENT] Add metric to track feature enablement #1459 (@zalegrala)
  • [ENHANCEMENT] Added s3 config option insecure_skip_verify #1470 (@zalegrala)
  • [ENHANCEMENT] Added polling option to reduce issues in Azure blocklist_poll_jitter_ms #1518 (@joe-elliott)
  • [ENHANCEMENT] Add a config to query single ingester instance based on trace id hash for Trace By ID API. (1484)[https://github.com//pull/1484] (@sagarwala, @bikashmishra100, @ashwinidulams)
  • [ENHANCEMENT] Add blocklist metrics for total backend objects and total backend bytes #1519 (@ie-pham)
  • [ENHANCEMENT] Adds tempo_querier_external_endpoint_hedged_roundtrips_total to count the total hedged requests #1558 (@joe-elliott)
    BREAKING CHANGE Removed deprecated metrics tempodb_(gcs|s3|azure)_request_duration_seconds in favor of tempodb_backend_request_duration_seconds. These metrics
    have been deprecated since v1.1.
  • [ENHANCEMENT] Add tags option for s3 backends. This allows new objects to be written with the configured tags. #1442 (@stevenbrookes)
  • [ENHANCEMENT] metrics-generator: support per-tenant processor configuration #1434 (@kvrhdn)
  • [ENHANCEMENT] Include rollout dashboard #1456 (@zalegrala)
  • [ENHANCEMENT] Add SentinelPassword configuration for Redis #1463 (@zalegrala)

Bugfixes

  • [BUGFIX] Fix nil pointer panic when the trace by id path errors. #1441 (@joe-elliott)
  • [BUGFIX] Update tempo microservices Helm values example which missed the 'enabled' key for thriftHttp. #1472 (@hajowieland)
  • [BUGFIX] Fix race condition in forwarder overrides loop. 1468 (@mapno)
  • [BUGFIX] Fix v2 backend check on span name to be substring #1538 (@mdisibio)
  • [BUGFIX] Fix wal check on span name to be substring #1548 (@mdisibio)
  • [BUGFIX] Prevent ingester panic "cannot grow buffer" #1258 (@mdisibio)
  • [BUGFIX] metrics-generator: do not remove x-scope-orgid header in single tenant modus #1554 (@kvrhdn)
  • [BUGFIX] Fixed issue where backend does not support root.name and root.service.name #1589 (@kvrhdn)
  • [BUGFIX] Fixed ingester to continue starting up after block replay error #1603 (@mdisibio)