190 Commits

Author SHA1 Message Date
5d540e119f Move all intrinsic tag lookup to the query-frontend and prioritize them in the results (#4784)
* Move all intrinsic tag lookup to the query-frontend and prioritize them in the results

* lint, error handling, fix tests

* Fix some tests

* Revert unintended change to search/tags v1 behavior, update tests

* Reduce diff

* Revert unintended change to 'none' scope

* reduce diff

* changelog

* Update test to test intrinsic handling at the limit

* todos
2025-03-04 15:12:03 -05:00
1b998e9437 Improve CI pipeline (#4762)
* e2e tests: min_ready_duration set to 1

It reduces time for ingester to be ready
That reduces the slowest step in e2e tests
from 17 seconds to a couple of seconds

* Refactoring: Move block flush sleep time to global

* e2e test: Reduce complete_block_timeout

* e2e tests: reduce block flush wait time

* Parallelise slowest unit tests

* Improve the slowest test by making it less heavy

* Parallelise slow e2e test

To achieve that, each test will have
its own unique network name

* Parallelise slow unit test

* Revert "Parallelise slow unit test"

This reverts commit b8266a642ba7fa9f620b2f81d00363c92ab14130.

The optimisation does not have effect on CI
2025-02-28 14:33:55 +01:00
3c77a55b90 Issue 4578: Fix flaky test (#4759)
* Issue #4578: Fix flaky test

Wait until traces are queryable

* Issue #4578: move repeated values to global
2025-02-26 15:23:35 +00:00
f8339e6053 e2e: split and move api e2e tests into it's own package (#4751)
* e2e: move api e2e tests into api package

* move api e2e tests into test-e2e-api target and CI job

* fix lint
2025-02-26 12:15:27 +05:30
7a3b4975ed remove serverless tests (#4597)
* remove serverless tests

* remove integration tests
2025-01-22 20:39:39 -06:00
e709f8ac70 [rhythm] Introduce block-builder and kafka ingest path (#4533)
* Block-builder PoC

* Add unit test for block-builder (#4289)

* Add unit test for block-builder

* fmt

* Update tests

* cmon

* Deterministically build blocks for partition sections (#4327)

* Pull main (#4342)

* chore: remove gofakeit dependency (#4274)

* Further reduce Labes() calls in the metrics registry (#4283)

* Respect passed headers in read path requests (#4287)

* Ingester: Validate completed blocks (#4256)

* Add validate method to block

Signed-off-by: Joe Elliott <number101010@gmail.com>

* Add Validate usage in the ingester

Signed-off-by: Joe Elliott <number101010@gmail.com>

* changelog

Signed-off-by: Joe Elliott <number101010@gmail.com>

* add test and fix replay

Signed-off-by: Joe Elliott <number101010@gmail.com>

* increment metric

Signed-off-by: Joe Elliott <number101010@gmail.com>

---------

Signed-off-by: Joe Elliott <number101010@gmail.com>

* Add `invalid_utf8` to reasons spans could be rejected (#4293)

* Add `invalid_utf8` to reasons spans could be rejected

* Update changelog

* Update docs

* Ensure test covers invalid UTF-8 and not slack time

* add signals for duplicate rf1 data (#4296)

Signed-off-by: Joe Elliott <number101010@gmail.com>

* Bump anchore/sbom-action from 0.17.5 to 0.17.7 (#4307)

Bumps [anchore/sbom-action](https://github.com/anchore/sbom-action) from 0.17.5 to 0.17.7.
- [Release notes](https://github.com/anchore/sbom-action/releases)
- [Changelog](https://github.com/anchore/sbom-action/blob/main/RELEASE.md)
- [Commits](https://github.com/anchore/sbom-action/compare/v0.17.5...v0.17.7)

---
updated-dependencies:
- dependency-name: anchore/sbom-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* docs: Update readme with explore traces info (#4263)

* docs: Update readme with explore traces info

Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>

* chore: remove spanlogger (#4312)

* chore: remove spanlogger

* Query-Frontend: Add middleware to drop headers (#4298)

* header strip ware

Signed-off-by: Joe Elliott <number101010@gmail.com>

* comment

Signed-off-by: Joe Elliott <number101010@gmail.com>

* changelog

Signed-off-by: Joe Elliott <number101010@gmail.com>

* remove header strip wear from metrics summary

Signed-off-by: Joe Elliott <number101010@gmail.com>

---------

Signed-off-by: Joe Elliott <number101010@gmail.com>

* Increase length of time compactions have to fail (#4315)

* increase length of time compactions have to fail

Signed-off-by: Joe Elliott <number101010@gmail.com>

* gen

Signed-off-by: Joe Elliott <number101010@gmail.com>

---------

Signed-off-by: Joe Elliott <number101010@gmail.com>

* docs: mark serverless as deprecated (#4017)

* docs: mark serverless as deprecated

* Changelog + readme

* docs: Remove duplicated examples (#4295)

This removes duplicates examples from the Configure TraceQL
metrics page.

Signed-off-by: Alex Bikfalvi <alex.bikfalvi@grafana.com>

* tempo-cli: support dropping multiple traces in a single operation (#4266)

* tempo-cli: support dropping multiple traces in a single operation

* update final log message

---------

Co-authored-by: Suraj Nath <9503187+electron0zero@users.noreply.github.com>

* [DOC] Add clarification for metrics summary and traceQL metrics (#4316)

* Add clarification for metrics summary and traceQL metrics

* Apply suggestions from code review

Co-authored-by: Jennifer Villa <jvilla2013@gmail.com>

* Update docs/sources/tempo/api_docs/metrics-summary.md

---------

Co-authored-by: Jennifer Villa <jvilla2013@gmail.com>

* TraceQL metrics time range fixes (#4325)

* Disconnect job time range filtering from step, so that results in split backend/recent range is accurate

* changelog

* Fix to assert metrics query range before alignment because alignment may increase it, which is not the responsibility of the caller to account for (#4331)

* Add doc about configuring TLS with Helm (#4328)

* Add doc about configuring TLS with Helm

* Add memberlist and readinessProbe to example

* Include server config for listening on TLS

* Add note about scraping

* Update docs/sources/tempo/configuration/network/tls.md

Co-authored-by: Markus Toivonen <markus.toivonen@hoxhunt.com>

* Update docs/sources/tempo/configuration/network/tls.md

Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>

* Update docs/sources/tempo/configuration/network/tls.md

Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>

* Add memcached config for TLS

---------

Co-authored-by: Markus Toivonen <markus.toivonen@hoxhunt.com>
Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>

* [DOC] Add TLS info to Helm chart doc (#4334)

---------

Signed-off-by: Joe Elliott <number101010@gmail.com>
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Alex Bikfalvi <alex.bikfalvi@grafana.com>
Co-authored-by: Javier Molina Reyes <javiermolinar@live.com>
Co-authored-by: Zach Leslie <zach.leslie@grafana.com>
Co-authored-by: Joe Elliott <number101010@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ryan Perry <Rperry2174@gmail.com>
Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>
Co-authored-by: Suraj Nath <9503187+electron0zero@users.noreply.github.com>
Co-authored-by: Alex Bikfalvi <alex@bikfalvi.com>
Co-authored-by: Andrey Karpov <ndk@users.noreply.github.com>
Co-authored-by: Jennifer Villa <jvilla2013@gmail.com>
Co-authored-by: Martin Disibio <martin.disibio@grafana.com>
Co-authored-by: Markus Toivonen <markus.toivonen@hoxhunt.com>

* WIP: Rhythm ingest path (#4314)

* Validate distributor config. Finish encoder/decoder tests

* Repair tests

* Make SingleBinary work out of the box by defaulting to partition 0

* Fix first time startup where blockbuilder fails before ingester can create topic

* Fix initial startup cycle time and delay

* Add more failure modes to the block-builder (#4345)

* Add more tests to the block-builder

* stuff

* Add comments

* [Rhythm] Metrics generator read from kafka first pass (#4359)

* Metrics generator read from kafka first pass

* review feedback

* Multiple fixes in block-builder (#4364)

* [rhythm] git merge origin/main (#4376)

* chore: remove gofakeit dependency (#4274)

* Further reduce Labes() calls in the metrics registry (#4283)

* Respect passed headers in read path requests (#4287)

* Ingester: Validate completed blocks (#4256)

* Add validate method to block

Signed-off-by: Joe Elliott <number101010@gmail.com>

* Add Validate usage in the ingester

Signed-off-by: Joe Elliott <number101010@gmail.com>

* changelog

Signed-off-by: Joe Elliott <number101010@gmail.com>

* add test and fix replay

Signed-off-by: Joe Elliott <number101010@gmail.com>

* increment metric

Signed-off-by: Joe Elliott <number101010@gmail.com>

---------

Signed-off-by: Joe Elliott <number101010@gmail.com>

* Add `invalid_utf8` to reasons spans could be rejected (#4293)

* Add `invalid_utf8` to reasons spans could be rejected

* Update changelog

* Update docs

* Ensure test covers invalid UTF-8 and not slack time

* add signals for duplicate rf1 data (#4296)

Signed-off-by: Joe Elliott <number101010@gmail.com>

* Bump anchore/sbom-action from 0.17.5 to 0.17.7 (#4307)

Bumps [anchore/sbom-action](https://github.com/anchore/sbom-action) from 0.17.5 to 0.17.7.
- [Release notes](https://github.com/anchore/sbom-action/releases)
- [Changelog](https://github.com/anchore/sbom-action/blob/main/RELEASE.md)
- [Commits](https://github.com/anchore/sbom-action/compare/v0.17.5...v0.17.7)

---
updated-dependencies:
- dependency-name: anchore/sbom-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* docs: Update readme with explore traces info (#4263)

* docs: Update readme with explore traces info

Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>

* chore: remove spanlogger (#4312)

* chore: remove spanlogger

* Query-Frontend: Add middleware to drop headers (#4298)

* header strip ware

Signed-off-by: Joe Elliott <number101010@gmail.com>

* comment

Signed-off-by: Joe Elliott <number101010@gmail.com>

* changelog

Signed-off-by: Joe Elliott <number101010@gmail.com>

* remove header strip wear from metrics summary

Signed-off-by: Joe Elliott <number101010@gmail.com>

---------

Signed-off-by: Joe Elliott <number101010@gmail.com>

* Increase length of time compactions have to fail (#4315)

* increase length of time compactions have to fail

Signed-off-by: Joe Elliott <number101010@gmail.com>

* gen

Signed-off-by: Joe Elliott <number101010@gmail.com>

---------

Signed-off-by: Joe Elliott <number101010@gmail.com>

* docs: mark serverless as deprecated (#4017)

* docs: mark serverless as deprecated

* Changelog + readme

* docs: Remove duplicated examples (#4295)

This removes duplicates examples from the Configure TraceQL
metrics page.

Signed-off-by: Alex Bikfalvi <alex.bikfalvi@grafana.com>

* tempo-cli: support dropping multiple traces in a single operation (#4266)

* tempo-cli: support dropping multiple traces in a single operation

* update final log message

---------

Co-authored-by: Suraj Nath <9503187+electron0zero@users.noreply.github.com>

* [DOC] Add clarification for metrics summary and traceQL metrics (#4316)

* Add clarification for metrics summary and traceQL metrics

* Apply suggestions from code review

Co-authored-by: Jennifer Villa <jvilla2013@gmail.com>

* Update docs/sources/tempo/api_docs/metrics-summary.md

---------

Co-authored-by: Jennifer Villa <jvilla2013@gmail.com>

* TraceQL metrics time range fixes (#4325)

* Disconnect job time range filtering from step, so that results in split backend/recent range is accurate

* changelog

* Fix to assert metrics query range before alignment because alignment may increase it, which is not the responsibility of the caller to account for (#4331)

* Add doc about configuring TLS with Helm (#4328)

* Add doc about configuring TLS with Helm

* Add memberlist and readinessProbe to example

* Include server config for listening on TLS

* Add note about scraping

* Update docs/sources/tempo/configuration/network/tls.md

Co-authored-by: Markus Toivonen <markus.toivonen@hoxhunt.com>

* Update docs/sources/tempo/configuration/network/tls.md

Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>

* Update docs/sources/tempo/configuration/network/tls.md

Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>

* Add memcached config for TLS

---------

Co-authored-by: Markus Toivonen <markus.toivonen@hoxhunt.com>
Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>

* [DOC] Add TLS info to Helm chart doc (#4334)

* fix deprecation warning by switching to DoBatchWithOptions (#4343)

Signed-off-by: Daniel Strobusch <1847260+dastrobu@users.noreply.github.com>

* bump dskit to v0.0.0-20241115082728-f2a7eb3aa0e9 to leverage benefits for context causes for DoBatch calls. (#4341)

See https://github.com/grafana/dskit/issues/576

Signed-off-by: Daniel Strobusch <1847260+dastrobu@users.noreply.github.com>

* Bump github.com/minio/minio-go/v7 from 7.0.70 to 7.0.80 (#4282)

* Bump github.com/minio/minio-go/v7 from 7.0.70 to 7.0.80

Bumps [github.com/minio/minio-go/v7](https://github.com/minio/minio-go) from 7.0.70 to 7.0.80.
- [Release notes](https://github.com/minio/minio-go/releases)
- [Commits](https://github.com/minio/minio-go/compare/v7.0.70...v7.0.80)

---
updated-dependencies:
- dependency-name: github.com/minio/minio-go/v7
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update serverless vendor

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Zach Leslie <zach.leslie@grafana.com>

* update default config values to better align with production workloads (#4340)

* update default config values to better align with production workloads

* Update CHANGELOG.md and config docs

* Ingester memory improvements by adjusting prealloc (#4344)

* remove trace ids

Signed-off-by: Joe Elliott <number101010@gmail.com>

* linear buckets

Signed-off-by: Joe Elliott <number101010@gmail.com>

* changelog

Signed-off-by: Joe Elliott <number101010@gmail.com>

* tuney tune

Signed-off-by: Joe Elliott <number101010@gmail.com>

* metric misses and increase pool size

Signed-off-by: Joe Elliott <number101010@gmail.com>

* lint

Signed-off-by: Joe Elliott <number101010@gmail.com>

---------

Signed-off-by: Joe Elliott <number101010@gmail.com>

* Bump github.com/Azure/azure-sdk-for-go/sdk/azcore from 1.13.0 to 1.16.0 (#4302)

* Bump github.com/Azure/azure-sdk-for-go/sdk/azcore from 1.13.0 to 1.16.0

Bumps [github.com/Azure/azure-sdk-for-go/sdk/azcore](https://github.com/Azure/azure-sdk-for-go) from 1.13.0 to 1.16.0.
- [Release notes](https://github.com/Azure/azure-sdk-for-go/releases)
- [Changelog](https://github.com/Azure/azure-sdk-for-go/blob/main/documentation/release.md)
- [Commits](https://github.com/Azure/azure-sdk-for-go/compare/sdk/azcore/v1.13.0...sdk/azcore/v1.16.0)

---
updated-dependencies:
- dependency-name: github.com/Azure/azure-sdk-for-go/sdk/azcore
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update serverless vendor

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Zach Leslie <zach.leslie@grafana.com>

* Use Prometheus fast regexp (#4329)

* basic integration

Signed-off-by: Joe Elliott <number101010@gmail.com>

* patch tests for new meaning

Signed-off-by: Joe Elliott <number101010@gmail.com>

* patch up more tests

Signed-off-by: Joe Elliott <number101010@gmail.com>

* add basic tests

Signed-off-by: Joe Elliott <number101010@gmail.com>

* changelog + docs

Signed-off-by: Joe Elliott <number101010@gmail.com>

* remove benches

Signed-off-by: Joe Elliott <number101010@gmail.com>

* Cleaned up + tests

Signed-off-by: Joe Elliott <number101010@gmail.com>

* comment

Signed-off-by: Joe Elliott <number101010@gmail.com>

* lint

Signed-off-by: Joe Elliott <number101010@gmail.com>

* Update docs/sources/tempo/traceql/_index.md

Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>

* comment

Signed-off-by: Joe Elliott <number101010@gmail.com>

---------

Signed-off-by: Joe Elliott <number101010@gmail.com>
Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>

* Fix broken link in service-graphs docs (#4351)

* Fix minor typo in TraceQL docs (#4356)

* Bump default memcached version (#4363)

* Exemplar fixes (#4366)

* Fix exemplars based on duration to convert to seconds, fix various other issues

* changelog

* fix: initialize histogram buckets to 0 to avoid them being downsampled (#4368)

* initialized histogram buckets to 0 to avoid them being downsampled

* Ingester/Generator Live trace cleanup (#4365)

* moved trace sizes somewhere shareable

Signed-off-by: Joe Elliott <number101010@gmail.com>

* use tracesizes in ingester

Signed-off-by: Joe Elliott <number101010@gmail.com>

* make tests work

Signed-off-by: Joe Elliott <number101010@gmail.com>

* trace bytes in generator

Signed-off-by: Joe Elliott <number101010@gmail.com>

* remove traceCount

Signed-off-by: Joe Elliott <number101010@gmail.com>

* live trace shenanigans

Signed-off-by: Joe Elliott <number101010@gmail.com>

* changelog

Signed-off-by: Joe Elliott <number101010@gmail.com>

* Update modules/generator/processor/localblocks/livetraces.go

Co-authored-by: Mario <mariorvinas@gmail.com>

* Update modules/ingester/instance.go

Co-authored-by: Mario <mariorvinas@gmail.com>

* Test cleanup. Add sz test, restore commented out and fix e2e

Signed-off-by: Joe Elliott <number101010@gmail.com>

* remove todo comment

Signed-off-by: Joe Elliott <number101010@gmail.com>

---------

Signed-off-by: Joe Elliott <number101010@gmail.com>
Co-authored-by: Mario <mariorvinas@gmail.com>

* Bump anchore/sbom-action from 0.17.7 to 0.17.8 (#4371)

Bumps [anchore/sbom-action](https://github.com/anchore/sbom-action) from 0.17.7 to 0.17.8.
- [Release notes](https://github.com/anchore/sbom-action/releases)
- [Changelog](https://github.com/anchore/sbom-action/blob/main/RELEASE.md)
- [Commits](https://github.com/anchore/sbom-action/compare/v0.17.7...v0.17.8)

---
updated-dependencies:
- dependency-name: anchore/sbom-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Update for IDs change

* Only run blockbuilder if ingest enabled

---------

Signed-off-by: Joe Elliott <number101010@gmail.com>
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Alex Bikfalvi <alex.bikfalvi@grafana.com>
Signed-off-by: Daniel Strobusch <1847260+dastrobu@users.noreply.github.com>
Co-authored-by: Javier Molina Reyes <javiermolinar@live.com>
Co-authored-by: Zach Leslie <zach.leslie@grafana.com>
Co-authored-by: Joe Elliott <number101010@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ryan Perry <Rperry2174@gmail.com>
Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>
Co-authored-by: Suraj Nath <9503187+electron0zero@users.noreply.github.com>
Co-authored-by: Alex Bikfalvi <alex@bikfalvi.com>
Co-authored-by: Andrey Karpov <ndk@users.noreply.github.com>
Co-authored-by: Jennifer Villa <jvilla2013@gmail.com>
Co-authored-by: Martin Disibio <martin.disibio@grafana.com>
Co-authored-by: Markus Toivonen <markus.toivonen@hoxhunt.com>
Co-authored-by: Daniel Strobusch <1847260+dastrobu@users.noreply.github.com>
Co-authored-by: Carles Garcia <carles.garciacabot@grafana.com>

* [rhythm] Changes to simplify operations (#4389)

* Use mapping for assigning partitions

* Use mapping for assigning partitions in the generator too

* Add support for SASL auth to kafka clients

* Add metrics to ingest (#4395)

* [rhythm] Extract block-builder into its own module (#4396)

* Extract block-builder into its own module

* Update /operations and examples

* No ephemeral storage

* No rolling strategy either

* fmt and compile

* Address review comment

* [rhythm] Correctly pass start/end time when appending a trace (#4410)

* Correctly pass start/end times

* Different code, same result

* [rhythm] Multiple fixes to block-builder consumption (#4413)

* Multiple fixes to cycle consumption

* fmt

* happy now?

* ups

* Rhythm: Separate non-flushing local blocks processor to store new queue data for reads (#4411)

* wip: separate non-flushing local blocks processor to store new queue data for reads

* Make real config for non-flushing local blocks processor, optional, validate wal config and use defaults if needed

* Fix defaulting of second WAL config

* [rhythm] Make ID generator more robust (#4416)

* Make ID generator more robust

* Simplify

* Update to e50f5d96b

* Fix registering of kafka read client metrics (#4502)

* [rhythm] Make ID generator more robust (#4416) (#4507)

* Make ID generator more robust

* Simplify

* Removed references to Loki and Mimir (#4509)

Signed-off-by: Joe Elliott <number101010@gmail.com>

* [Rhythm] Block builder test updates (#4510)

* Make blockbuilder tests closer to real kafka and less implementation specific by always enabling support for consumer groups, call commit control func in order

* Verify last committed offset in each test

* hide test function

* lint

* lint

* [Rhythm] Block-builder consumption loop (#4480)

* Alternate block-builder consume

* Set timeout on PollFetches, reduce initial poll delay, update 1 test to work using real consumergroup functionality

* restore metrics

* Re-add original partition lag metric, polled in separate goroutine. Fix consume loop to only consume full-duration cycles for more determinism

* merge conflict

* Review feedback

* Review feedback

* Comment

* code cleanup, lint

* logs

* code cleanup

* lint

* Review feedback

* Remove missed lookback_on_no_commit config in e2e tests and regen manifest

* Review feedback

* Fix rewind to latest commit to init correctly, it didn't work in some clusters (#4532)

* [rhythm] merge main at 71e8531 (#4531)

* Fixes

* More fixes

---------

Signed-off-by: Joe Elliott <number101010@gmail.com>
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Alex Bikfalvi <alex.bikfalvi@grafana.com>
Signed-off-by: Daniel Strobusch <1847260+dastrobu@users.noreply.github.com>
Co-authored-by: Javier Molina Reyes <javiermolinar@live.com>
Co-authored-by: Zach Leslie <zach.leslie@grafana.com>
Co-authored-by: Joe Elliott <number101010@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ryan Perry <Rperry2174@gmail.com>
Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>
Co-authored-by: Suraj Nath <9503187+electron0zero@users.noreply.github.com>
Co-authored-by: Alex Bikfalvi <alex@bikfalvi.com>
Co-authored-by: Andrey Karpov <ndk@users.noreply.github.com>
Co-authored-by: Jennifer Villa <jvilla2013@gmail.com>
Co-authored-by: Martin Disibio <martin.disibio@grafana.com>
Co-authored-by: Markus Toivonen <markus.toivonen@hoxhunt.com>
Co-authored-by: Daniel Strobusch <1847260+dastrobu@users.noreply.github.com>
Co-authored-by: Carles Garcia <carles.garciacabot@grafana.com>
2025-01-10 16:05:42 +01:00
dbd750555f Update all open-telemetry packages to 0.116.0 (#4466) 2024-12-20 17:02:16 +01:00
e0e6e6c926 update azurite (#4464)
* update azurite

* changelog
2024-12-18 13:30:55 +01:00
6c9dc98867 feat: limit tags and tag values search (#4320)
This PR introduces two new optional parameters to enhance the control of Tags and Tag Values lookups:

limit:
Specifies the maximum number of items to retrieve. For the api/v2/tags endpoint, the search stops if any scope reaches this limit.

maxStaleValues:
Restricts the search for tag values. If the number of stale (already known) values meets or exceeds this limit, the search is halted. This is useful when we have a small set of tag values.


---------

Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>
Co-authored-by: Joe Elliott <joe.elliott@grafana.com>
2024-12-05 16:37:40 +01:00
dc97da1252 Ingester/Generator Live trace cleanup (#4365)
* moved trace sizes somewhere shareable

Signed-off-by: Joe Elliott <number101010@gmail.com>

* use tracesizes in ingester

Signed-off-by: Joe Elliott <number101010@gmail.com>

* make tests work

Signed-off-by: Joe Elliott <number101010@gmail.com>

* trace bytes in generator

Signed-off-by: Joe Elliott <number101010@gmail.com>

* remove traceCount

Signed-off-by: Joe Elliott <number101010@gmail.com>

* live trace shenanigans

Signed-off-by: Joe Elliott <number101010@gmail.com>

* changelog

Signed-off-by: Joe Elliott <number101010@gmail.com>

* Update modules/generator/processor/localblocks/livetraces.go

Co-authored-by: Mario <mariorvinas@gmail.com>

* Update modules/ingester/instance.go

Co-authored-by: Mario <mariorvinas@gmail.com>

* Test cleanup. Add sz test, restore commented out and fix e2e

Signed-off-by: Joe Elliott <number101010@gmail.com>

* remove todo comment

Signed-off-by: Joe Elliott <number101010@gmail.com>

---------

Signed-off-by: Joe Elliott <number101010@gmail.com>
Co-authored-by: Mario <mariorvinas@gmail.com>
2024-11-22 12:26:33 -05:00
b6d7289e3b Add invalid_utf8 to reasons spans could be rejected (#4293)
* Add `invalid_utf8` to reasons spans could be rejected

* Update changelog

* Update docs

* Ensure test covers invalid UTF-8 and not slack time
2024-11-07 14:44:57 +00:00
44c18cc863 Query-Frontend: Perf improvements (#4242)
* create and use a way to consistently clone requests

Signed-off-by: Joe Elliott <number101010@gmail.com>

* use content len

Signed-off-by: Joe Elliott <number101010@gmail.com>

* fix tests

Signed-off-by: Joe Elliott <number101010@gmail.com>

* standardize logging

Signed-off-by: Joe Elliott <number101010@gmail.com>

* cleanup

Signed-off-by: Joe Elliott <number101010@gmail.com>

* i love the linter

Signed-off-by: Joe Elliott <number101010@gmail.com>

* lint

Signed-off-by: Joe Elliott <number101010@gmail.com>

* prealloc builder

Signed-off-by: Joe Elliott <number101010@gmail.com>

* changelog

Signed-off-by: Joe Elliott <number101010@gmail.com>

* do what the comment says so CI passes

Signed-off-by: Joe Elliott <number101010@gmail.com>

* review

Signed-off-by: Joe Elliott <number101010@gmail.com>

* add tracing context to pipeline request

Signed-off-by: Joe Elliott <number101010@gmail.com>

---------

Signed-off-by: Joe Elliott <number101010@gmail.com>
2024-11-01 10:01:06 -04:00
6607ab3617 Tighten file permissions (#4251)
* Tighten file permissions

* Update changelog

* Tighten /var/tempo permissions

* Revert integration change and add note
2024-10-31 15:22:38 +00:00
de5cb003a8 fix: skip exemplars for instant queries (#4204)
Currently, we are computing the exemplars for query_range and  instant queries. Since exemplars are not supported for instant queries (same as Prometheus) we can save that computing time.

It also fixes a bug where the exemplars query param was not being honored

Co-authored-by: Martin Disibio <mdisibio@gmail.com>
2024-10-25 21:48:55 +02:00
67be243b99 Avoid returning 500 for TRACE_TOO_LARGE (#4160)
* Avoid returning 500 when for TRACE_TOO_LARGE

* Test for frontend return of 413

* Check the GRPC message content as well

* Move status code rewrite to the frontend combiner for tracebyid

* Match the error string in tests

* Quit and not return an error

* Move from 413 to 422 after some discussion

* Update changelog

* Update modules/frontend/combiner/trace_by_id.go

Co-authored-by: Javier Molina Reyes <javiermolinar@live.com>

* Lint

---------

Co-authored-by: Javier Molina Reyes <javiermolinar@live.com>
2024-10-18 14:17:29 +00:00
327c96466b Add throughput and SLO metrics in the tags and tag values endpoints (#4148)
propagate the bytes read from the storage layer to the frontend, and use bytes read to compute throughout, and use that in SLO computation for metadata endpoints.

metadata SLO thresholds can be configured via `metadata_slo` config.
```
search:
   metadata_slo:
      duration_slo: 5s
      throughput_bytes_slo: 1.073741824e+09
```

we will also return the `metrics` in the response of all the metadata endpoints:
 - `/search/tags`
-  `/v2/search/tags`
- `/search/tag/<tagName>/values`
- `/v2/search/tag/<tagName>/values`

here is what the it looks like in the response:
```json
{
   "<existing keys>": "<existing response>",
  "metrics": {
    "inspectedBytes": "630188"
  }
}
```
we return `"metrics": {}` when response is empty or only contains `intrinsics`


it will also expose these new label to existing metrics with `op="metadata"` label
- total metadata queries counter
- metadata queries within SLO counter
- metadata queries throughput histogram
2024-10-15 18:21:03 +05:30
Aki
8c23c561b3 fix_3811: send semver version in api/stattus/buildinfo for cloud deployments (#4110)
* fix(tools): fix github action

* fix(tools): use correct ref fr v4

* fix(tools): use correct ref

* fix(tools): fecth tags

* fix(tools): fetch tags

* fix(tools): use tag directly during build

* Revert "fix(tools): use tag directly during build"

This reverts commit 5cbd0552db1daeccc89bb931c3545dcd2d04ff37.

* fix(tools): inject tag as version directly during build
2024-10-09 15:53:51 -04:00
884bbea6a3 Replace TenantIndex, BlockMeta and CompactedBlockMeta with proto near-equivalents (#4072)
* Update proto for v1 backend

* Functioning blocklist with new package

* Functioning blocklist with existing package

* Generate proto to existing package

* Add wrapper around google UUID for proto marshaling

* Update blocklist for wrapper type

* Test WriteTenantIndex

* Implement json for uuid

* Almost functional backend tests

* Passing backend tests

* Improve UUID coverage and utility

* TempoDB updates for UUID and struct type changes

* Update method style for uuid.New()

* Update method style for uuid.MustParse()

* Add uuid.From helper

* Update modules for UUID and proto struct types

* Update poller integration test for UUID

* Update tempo-cli for UUID and proto struct type changes

* Lint and clean up

* Fix serverless

* Fix cli

* Fix cli

* Add fixture tests for roundtrip assurance between versions

* Clean up notes from proto definition

* Update backend/test

* Be more specific about unmarshal UUID

* Include event for compacted block

* Use better json tag for compacted meta

* Implement UnmarshalJson on CompcatedBlockMeta for embedded struct

* Test for CompactedMeta marshal/unmarshal

* Drop benchmark index

* Clean commented code

* Extend mocks to capture multiple writes

* Update backend/test fixtures

* Write both proto and json to the backend for all three files in all backends

* Fix lint

* Back UUID with google.UUID to avoid struct

* Relocate pkg/uuid to tempodb/backend

* Re-plumb UUID through tempodb

* Re-plumb UUID through cmd

* Re-plumb UUID through modules

* Re-plumb UUID through integration/

* Drop package spec from tempo.proto

* Improve encoding marshal performance

* Drop block proto and tenantindex json

* Drop additional proto include

* Implement zstd tenant index compression

* Add note about use of json in the dedicatedcolumns

* Fix ingester local block

* Spell

* Revert mock update

* Drop json fallback from tenantindex read

* Replace single-tenant test fixtures

* Update fixture replacement test

* Improve error handling and fix test

* Extend test for tenantindex round-trip

* Small fixes

* Revert "Drop json fallback from tenantindex read"

This reverts commit 834ff5b85d8a8a4d7eb560fbb67ba8f3a5a3959a.

* Add back mocks to capture multiple backend writes

* Add back proto & json writitng/reading for tenantindex

* Change TotalObjects type from int32 -> int64

The original change was int -> int32, which on 64bit machines is a
downgrade that I overlooked.  Raising here to int64 to maintain the
size.

* Store write buffer at object path in mocks to improve readability in tests

* Avoid allocation in interface validation

* Update note to include intern

* Pluralize metas and compacted_metas fields

* Fallback to json only on ErrDoesNotExist

* Lint

* Drop debug

* Revert "Pluralize metas and compacted_metas fields"

This reverts commit 46a8c36e37ac33e1ffc104287d898930e02cdd97.

* Import original tenantindex and test contents for backwards compatibility

* Update changelog
2024-10-02 18:40:59 +00:00
37cd12017f Correctly handle 400 Bad Request and 404 Not Found in gRPC streaming (#4144)
* Correctly handle 400 Bad Request in gRPC streaming

* chlog

* ups

* Fix test and return Not Found for 404s

* Update chlog

* Also exclude not found from SLO
2024-10-01 11:03:55 +02:00
2999520f29 [CHANGE] tempo-query: switch from grpcPlugin to standalone (#3840)
* tempo-query: switch from grpcPlugin to standalone

Jaeger 1.58 no longer supports gRPC storage plugins.

Signed-off-by: Benedikt Bongartz <bongartz@klimlive.de>

* add changelog entry

Signed-off-by: Benedikt Bongartz <bongartz@klimlive.de>

* update vendor

Signed-off-by: Benedikt Bongartz <bongartz@klimlive.de>

* fix: panic when requesting dependencies

Signed-off-by: Benedikt Bongartz <bongartz@klimlive.de>

* integration/e2e: adapt tempo-query test

Signed-off-by: Benedikt Bongartz <bongartz@klimlive.de>

* changelog: update

Signed-off-by: Benedikt Bongartz <bongartz@klimlive.de>

---------

Signed-off-by: Benedikt Bongartz <bongartz@klimlive.de>
2024-09-03 13:12:13 -04:00
43d9326477 [TraceQL Metrics] Remove all obsolete settings and code for RF3 metrics (#3995)
* Remove all obsolete settings and code for RF3 metrics. The only path going forward is RF1-based

* Remove remaining references to rf1_read_path

* changelog

* Remove another reference to obsolete sampling rate

* Update error messages for correctness
2024-08-26 09:42:37 -04:00
075fed7795 add a LogDiscardedSpansConfig to the distributor to log discarded spans causing issues. (#3964)
```yaml
distributor:
  config:
    log_discarded_spans:
      enabled: true
    log_received_spans:
      # ...

```

Relates to #3957.

Signed-off-by: Daniel Strobusch <1847260+dastrobu@users.noreply.github.com>
2024-08-23 11:17:35 -04:00
8a0b0e72a0 feat: added new middleware to validate request query values (#3993)
* feat: added new middleware to validate request query values

* remove unused test

* use different regex for tests

* rename middlewares and add e2e tests
2024-08-22 15:56:21 -04:00
fbf249a41f [TraceQL] Add support for querying by instrumentation scope (#3967)
* lexer

* blocktraceql

* autocomplete

* changelog

* lint

* fix test

* scope => instrumentation

* lint

* scopescope byebye
2024-08-21 17:31:15 -05:00
d3a9caf2c6 Implement polling tenants concurrently (#3647)
* Implement polling tenants concurrently

* Pass config through tempodb

* Avoid race on consecutiveErrors

* Add comments for atomic use

* Increase tenant count, concurrency and randomness in poller integration test

* Drop test logs

* Tidy up

* Include TenantPollConcurrency in deletion integration test

* Match a regex on the error rather than a specifc one to account for the concurrency

* Add log for base test

* Use math/rand/v2

* Fix for consistent error handling of consequetive errors

* Reduce test work and output for truncation and timeouts

* Update changelog

* Adjust error handling

Here we make changes to the error handling to account for the additional
complexity brought with the tenant concurrency.

This changes the behavior of the
blocklist_poll_tolerate_consecutive_errors configuration by applying to
a single tenant, which instructs the poller to retry until the threshold
is met.

A new configuration parameter blocklist_poll_tolerate_tenant_failures
has been added to account for the number of failing tenants that will be
tolerated.

This allows parts of the old behavior scoped to a single tenant, but
also accounts for a more global picture.  This means that a single
failing tenant by default will not stop the entire polling process.

Tests have been updated to account for this additional logic.

* Fix tenant failure increment

* Fix race in test

* Lint

* Avoid race for integer read/write

* Clarify tracking of failing tenants

* Play golf

* Add doc for new config option
2024-08-05 13:16:17 +00:00
5a6f140ef4 Add exemplars to TraceQL metrics (#3824)
* Add exemplars to TraceQL metric queries

Add query hint

Fix test

Might work now

fmt

Almost there

A few fixes

Doc fix

Drop percentage

More more

Consolidating

fmt

Fix tests

More changes

chlog

Minor fix

Exemplars in compare() and other fixes

Fix test

Improvements

Bucketize

ups

Cleaning up

Stuff

Change benchmark

Clean up

Exemplar iterator

Ditch predicate approach

* Quit early predicate improvements

* Docs

* Post-review improvements

* Consolidate hint checking

* Empty exemplars cleanup

* Not a map anymore

* Split observe() and observeExemplar()

* Minor fixes

* Consolidate exemplar sampling

* Some improvements

* Reduce allocs

* Remove unnecessary func

* Review comments

* Pass callback in Condition

* Comment

* Fix tests
2024-08-02 13:13:55 -04:00
5ce539d0d0 Reorganise e2e tests (#3927)
* Move heavy e2e to new folder

* Ups

* Ups 2

* Ups final

* What about now?

* Split e2e targets even further

* Names
2024-08-01 13:25:12 +02:00
d36cc9f227 fix: bring back OTEL receiver metrics (#3917)
* bring back OTEL receiver metrics

* a bit of clean up

* create an ID

* improve id

* better comments

* changelog

* remove unused deps

* remove unused deps

* discard metrics that we are not interested in

* unpack the labels in a more performant way while ensuring the labels order

* benchmark

* wording
2024-07-29 12:42:09 -04:00
d0f0a5fddb [Traceql] Add support for event timestamp (#3908)
* add event start time

* add event:timeSinceStart

* changelog

* missed one test

* more test
2024-07-25 14:56:44 -05:00
3ad6f9d973 Promote Azure v2 SDK (#3875)
* Promote Azure v2 SDK

* Fix bug in Azure Find() to keep the tenant in the object path

* Restructure tests after v1 drop

* Add reminder about failing test

* Comment failing test

* Pin azurite version

* Use new SDK for error handling

* Update vendor

* Update changelog and docs
2024-07-25 17:30:04 +00:00
5cae77c9cf feat: rename batches property of Trace to ResourceSpans to be OTEL compatible (#3895)
* rename batches property of Trace to ResourceSpans to be OTEL compatible

* added test to assert that the response hasn't change

* update test data

* fix unmarshall test

* changelog

* fix e2e

* try to fix flaky test

* create helper functions to marshal and unmarshal traces to OTEL compatible schema

* added better documentation
2024-07-25 09:55:35 -04:00
374c600387 feat: reduce log level verbosity for e2e tests (#3900)
* reduce log level verbosity for e2e tests

* set loglevel to info
2024-07-24 08:48:12 +00:00
4082749eb7 [TraceQL] Autocomplete for events and links (#3846)
* add event and link to autocomplete, return event name to traceql query

* check for primary iters too

* changelog

* lint

* add more tests

* fix test

* rebased and added new search tag tests for events and links

* fix test and review comments
2024-07-15 13:12:52 -05:00
89e67899e2 Tag name filtering (#3822)
* tag name filtering added in the block

Signed-off-by: Joe Elliott <number101010@gmail.com>

* add well known and dedicated cols

Signed-off-by: Joe Elliott <number101010@gmail.com>

* Support for scopes at FetchTags

Signed-off-by: Joe Elliott <number101010@gmail.com>

* conditionally add selectAs in the trace level iterator

Signed-off-by: Joe Elliott <number101010@gmail.com>

* add support for intrinsics

Signed-off-by: Joe Elliott <number101010@gmail.com>

* add scope

Signed-off-by: Joe Elliott <number101010@gmail.com>

* all but vp4

Signed-off-by: Joe Elliott <number101010@gmail.com>

* all todos

Signed-off-by: Joe Elliott <number101010@gmail.com>

* vp4

Signed-off-by: Joe Elliott <number101010@gmail.com>

* pipe through

Signed-off-by: Joe Elliott <number101010@gmail.com>

* add to request

Signed-off-by: Joe Elliott <number101010@gmail.com>

* parse query

Signed-off-by: Joe Elliott <number101010@gmail.com>

* tempodb tests

Signed-off-by: Joe Elliott <number101010@gmail.com>

* docs

Signed-off-by: Joe Elliott <number101010@gmail.com>

* integration

Signed-off-by: Joe Elliott <number101010@gmail.com>

* changelog

Signed-off-by: Joe Elliott <number101010@gmail.com>

* vendor check

Signed-off-by: Joe Elliott <number101010@gmail.com>

* lint

Signed-off-by: Joe Elliott <number101010@gmail.com>

* remove hardcoded scopes

Signed-off-by: Joe Elliott <number101010@gmail.com>

* Update docs/sources/tempo/api_docs/_index.md

Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>

* review

Signed-off-by: Joe Elliott <number101010@gmail.com>

---------

Signed-off-by: Joe Elliott <number101010@gmail.com>
Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>
2024-07-10 16:34:21 -04:00
df5180df2e feat: added new helper function to allow debugging e2e tests (#3836)
* added new helper method for allow debugging e2e tests

* reorder changelog

* fix typo

* added how to debug an e2e to the documentation

* Update CHANGELOG.md

---------

Co-authored-by: Mario <mariorvinas@gmail.com>
2024-07-04 14:23:29 +00:00
2a38bd11bc Remove autocomplete_filtering_enabled config flag (#3729)
* Remove autocomplete_filtering_enabled config flag

* Remove missed reference

* IT'S A BREAKING CHANGE

* Last two fixes
2024-06-21 13:18:15 +00:00
d0b7922949 update the opentelemetry module version from 0.97.0 to 0.102.1 (#3784)
* Update bunch of module and code

Signed-off-by: debasishbsws <debasishbsws.dev@gmail.com>

* Update Changelog

Signed-off-by: debasishbsws <debasishbsws.dev@gmail.com>

* remove named argument and do go mod tidy in tempo-serveless

Signed-off-by: debasishbsws <debasishbsws.dev@gmail.com>

---------

Signed-off-by: debasishbsws <debasishbsws.dev@gmail.com>
2024-06-19 19:17:18 +02:00
dbc3888065 Search tags refactor (#3754)
* refactor db layer

Signed-off-by: Joe Elliott <number101010@gmail.com>

* build searchtags on searchtagsv2

Signed-off-by: Joe Elliott <number101010@gmail.com>

* create collectors package

Signed-off-by: Joe Elliott <number101010@gmail.com>

* scoped distinct string

Signed-off-by: Joe Elliott <number101010@gmail.com>

* use scoped collector

Signed-off-by: Joe Elliott <number101010@gmail.com>

* lint

Signed-off-by: Joe Elliott <number101010@gmail.com>

* why doesnt lint tell me all the errors at once

Signed-off-by: Joe Elliott <number101010@gmail.com>

* more

Signed-off-by: Joe Elliott <number101010@gmail.com>

* distinct scope diff test

Signed-off-by: Joe Elliott <number101010@gmail.com>

---------

Signed-off-by: Joe Elliott <number101010@gmail.com>
2024-06-18 11:20:39 -04:00
01f4bc8ac2 Query-frontend: Parrallelize unmarshalling of responses (#3713)
* Add combiner does not race test

Signed-off-by: Joe Elliott <number101010@gmail.com>

* make unmarshal in combiner //able

Signed-off-by: Joe Elliott <number101010@gmail.com>

* wip: one test failing

Signed-off-by: Joe Elliott <number101010@gmail.com>

* store first err

Signed-off-by: Joe Elliott <number101010@gmail.com>

* config

Signed-off-by: Joe Elliott <number101010@gmail.com>

* lint

Signed-off-by: Joe Elliott <number101010@gmail.com>

* enhance

Signed-off-by: Joe Elliott <number101010@gmail.com>

* lint n' stuff

Signed-off-by: Joe Elliott <number101010@gmail.com>

* addNextAsync -> consumeAndCombineResponses

Signed-off-by: Joe Elliott <number101010@gmail.com>

* fix race

Signed-off-by: Joe Elliott <number101010@gmail.com>

* fixed test

Signed-off-by: Joe Elliott <number101010@gmail.com>

* fix race

Signed-off-by: Joe Elliott <number101010@gmail.com>

* test to confirm errors are held

Signed-off-by: Joe Elliott <number101010@gmail.com>

---------

Signed-off-by: Joe Elliott <number101010@gmail.com>
2024-06-04 15:22:02 -04:00
Ali
f51485312c "ingestion_rate_limit_bytes" is set too short (#3685)
* Fixed multiple typos

* The limit is short and causes the 'test integration e2e suite' to fail

* The limit is short and causes the 'test integration e2e suite' to fail

* Update _index.md

Reverted the change 
My mistake

* Update linux.md

Reverted the other change
My mistake

* Update tempo-distributed-a.yaml

Reverted the other change
My mistake

* Update tempo-distributed-b.yaml

Reverted the other change
My mistake

* Update tempo-distributed.yaml

Reverted the other change
My mistake

* Update tempo-distributed.yaml

Reverted the other change
My mistake

* Update tempo-distributed.yaml

Reverted the other change
My mistake

* Update tempo-distributed.yaml

Reverted the other change
My mistake

* Update tempo-distributed.yaml

Reverted the other change
My mistake

* Update tempo.yaml

Reverted the other change
My mistake

* Update tempo-scalable-single-binary.yaml

Reverted the other change
My mistake

* Update backend.go

Reverted the other change
My mistake

* Update tempo.yaml

Reverted the other change
My mistake

* Update azure_test.go

Reverted the other change
My mistake

* Update search_sharder_test.go

Reverted the other change
My mistake

* Update tempo-distributed.yaml

Reverted the other change
My mistake

* Update tempo-distributed.yaml

Reverted the other change
My mistake

* Reverted the other change
2024-05-20 07:19:21 -04:00
Ali
fa25422593 Fixed multiple typos (#3684)
* Fixed multiple typos

* The limit is short and causes the 'test integration e2e suite' to fail

* Update config-limits-partial-success.yaml

Sent it in another PR
2024-05-16 14:06:18 -04:00
3f831f9e31 Implement tenant deletion for empty tenants (#3611)
* Extend backend.Reader with Find() function

* Extend backend.Writer with Delete() function

* Add EmptyTenantDeletion age config to tempodb

* Add delete handling to poller

* Add integration tests for poller change

* Update backend implementations

* Fix lint

* Setup test defaults

* Integrate prefix test permutations

* Add doc for the new configuration option

* Update changelog

* Fix local implementation to ignore directories

* Tidy up todo after test coverage

* Update docs/sources/tempo/configuration/_index.md

Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>

* Address some PR feedback

* Rename backend.FindOpts -> backend.FindMatch
* Adjust default delete time from 20m -> 12h

* Add log message for object deletion

* Add additional safety check to avoid deletion

* Add test default value

* Godoc update after rename

* Drop logging from the backend used for testing

* Require empty tenant deletion to be enabled in the config

* Add docs for _enabled config

---------

Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>
2024-05-03 20:48:42 +00:00
9caf167fb7 Update docker compose examples (#3603)
* Update local example to mention the path ownership required

* Drop grafana7.4 docker-compose example

* Drop docker-compose example for gcs

* Drop docker-compose example for azure

* Drop docker-compose example for s3

* Update docker compose examples

* Drop deprecated `version` field
* Add init service to chown the volume on startup and set dependency for ordered startup
* Use yaml reference for docker image specification

* Update docker compose example commands for deprecation

* Update top docker-compose readme to point to our docs

* Update integration readme for docker compose command deprecation

* Update tk readme for docker compose command deprecation

* Remove s3 docker compose example and point to the top of the example/docker-compose

* Update wording slightly

* Update changelog

* Be less specific about the possible backend configurations.
2024-04-24 16:16:07 +00:00
27f78c124d Update examples and docs for UID path ownership change (#3596) 2024-04-19 17:15:41 +00:00
475312b319 Tempo: Refactor Trace By ID and Metrics Summary (#3522)
* extend buildUpstreamRequest

Signed-off-by: Joe Elliott <number101010@gmail.com>

* metrics summary

Signed-off-by: Joe Elliott <number101010@gmail.com>

* trace by id first pass

Signed-off-by: Joe Elliott <number101010@gmail.com>

* fixed inf loop

Signed-off-by: Joe Elliott <number101010@gmail.com>

* works

Signed-off-by: Joe Elliott <number101010@gmail.com>

* removed trace id hedging in the frontend

Signed-off-by: Joe Elliott <number101010@gmail.com>

* todos, tests and cleanup

Signed-off-by: Joe Elliott <number101010@gmail.com>

* add 429 test

Signed-off-by: Joe Elliott <number101010@gmail.com>

* changelog

Signed-off-by: Joe Elliott <number101010@gmail.com>

* lint

Signed-off-by: Joe Elliott <number101010@gmail.com>

* restore api prefix

Signed-off-by: Joe Elliott <number101010@gmail.com>

* pass the right param

Signed-off-by: Joe Elliott <number101010@gmail.com>

* fix race in test

Signed-off-by: Joe Elliott <number101010@gmail.com>

* move deduper into combiner

Signed-off-by: Joe Elliott <number101010@gmail.com>

* Move content type marshalling into combiner

Signed-off-by: Joe Elliott <number101010@gmail.com>

* lint: check err in test

Signed-off-by: Joe Elliott <number101010@gmail.com>

* Update integration/e2e/limits_test.go

Co-authored-by: Koenraad Verheyden <koenraad.verheyden@posteo.net>

* Apply suggestions from code review

Co-authored-by: Koenraad Verheyden <koenraad.verheyden@posteo.net>

* rename func for clarity

Signed-off-by: Joe Elliott <number101010@gmail.com>

* review

Signed-off-by: Joe Elliott <number101010@gmail.com>

---------

Signed-off-by: Joe Elliott <number101010@gmail.com>
Co-authored-by: Koenraad Verheyden <koenraad.verheyden@posteo.net>
2024-04-11 15:07:36 -04:00
0d3bde58b2 Update docker image to run as non-root (#2265)
* Update Tempo image to run as non-root

Signed-off-by: Zach Leslie <zach.leslie@grafana.com>

* Change ownership of /var/tempo

Signed-off-by: Zach Leslie <zach.leslie@grafana.com>

* Breadcrumbs for ingester filesystem permissions

Signed-off-by: Zach Leslie <zach.leslie@grafana.com>

* Create the directory we attempt to chown

Signed-off-by: Zach Leslie <zach.leslie@grafana.com>

* Include initcontainer and adjust statefulset security for new UID

* Compile jsonnet

* Drop securityContext since the chown handles the permissions

* Adjust test path for ownership

* Update changelog to note breaking change

* Drop extra object and include additional hardcode

* Improve language for CHANGELOG

---------

Signed-off-by: Zach Leslie <zach.leslie@grafana.com>
2024-04-04 16:43:53 +00:00
75baee405f Tryout otlp collector fix for retryable http errors (#3515)
* Add test to reproduce otlp http 500s

* Bad merge

* Add scary test

* Update dependencies to use juraci's collector fork and fix

* Fix mario tests regarding otlp http limits

* vendor latest collector

Signed-off-by: Jesus Vazquez <jesus.vazquez@grafana.com>

---------

Signed-off-by: Jesus Vazquez <jesus.vazquez@grafana.com>
Co-authored-by: Mario <mariorvinas@gmail.com>
2024-03-27 19:23:29 +00:00
c61bd1b9d6 Frontend Refactor: Streaming tags (#3460)
* log request

Signed-off-by: Joe Elliott <number101010@gmail.com>

* move stuff a bit

Signed-off-by: Joe Elliott <number101010@gmail.com>

* oh my. e2e tests pass

Signed-off-by: Joe Elliott <number101010@gmail.com>

* add handlers

Signed-off-by: Joe Elliott <number101010@gmail.com>

* streaming tags

Signed-off-by: Joe Elliott <number101010@gmail.com>

* add cli support

Signed-off-by: Joe Elliott <number101010@gmail.com>

* improve logging

Signed-off-by: Joe Elliott <number101010@gmail.com>

* fix

Signed-off-by: Joe Elliott <number101010@gmail.com>

* docs

Signed-off-by: Joe Elliott <number101010@gmail.com>

* pipe overrides

Signed-off-by: Joe Elliott <number101010@gmail.com>

* cleanup

Signed-off-by: Joe Elliott <number101010@gmail.com>

* cleanup

Signed-off-by: Joe Elliott <number101010@gmail.com>

* support limits

Signed-off-by: Joe Elliott <number101010@gmail.com>

* docs

Signed-off-by: Joe Elliott <number101010@gmail.com>

* e2e tests and caching

Signed-off-by: Joe Elliott <number101010@gmail.com>

* key prefixes

Signed-off-by: Joe Elliott <number101010@gmail.com>

* cache keys

Signed-off-by: Joe Elliott <number101010@gmail.com>

* Fixed distinct collection in combiners

Signed-off-by: Joe Elliott <number101010@gmail.com>

* fixed combiner bugs and revived tests

Signed-off-by: Joe Elliott <number101010@gmail.com>

* restored all tests

Signed-off-by: Joe Elliott <number101010@gmail.com>

* lint

Signed-off-by: Joe Elliott <number101010@gmail.com>

* made search handler utilities generic

Signed-off-by: Joe Elliott <number101010@gmail.com>

* Added handler tests for tags

Signed-off-by: Joe Elliott <number101010@gmail.com>

* add diff support

Signed-off-by: Joe Elliott <number101010@gmail.com>

* lint

Signed-off-by: Joe Elliott <number101010@gmail.com>

* add distinct value collector tests

Signed-off-by: Joe Elliott <number101010@gmail.com>

* fix integration tests

Signed-off-by: Joe Elliott <number101010@gmail.com>

* diff tests

Signed-off-by: Joe Elliott <number101010@gmail.com>

* swapped query for the more robust ExtractMatchers(query)

Signed-off-by: Joe Elliott <number101010@gmail.com>

* tests

Signed-off-by: Joe Elliott <number101010@gmail.com>

* moved e2e tests to a more sensible place

Signed-off-by: Joe Elliott <number101010@gmail.com>

* fix non-deterministic  test

Signed-off-by: Joe Elliott <number101010@gmail.com>

* changelog

Signed-off-by: Joe Elliott <number101010@gmail.com>

* fix tests for 429 handling

Signed-off-by: Joe Elliott <number101010@gmail.com>

* Update docs/sources/tempo/operations/tempo_cli.md

Co-authored-by: Mario <mariorvinas@gmail.com>

* review

Signed-off-by: Joe Elliott <number101010@gmail.com>

* Update docs/sources/tempo/api_docs/_index.md

Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>

* Correctly cancel GRPC context beneath the HTTP server (#3443)

* cancel context

Signed-off-by: Joe Elliott <number101010@gmail.com>

* update dskit

Signed-off-by: Joe Elliott <number101010@gmail.com>

* focused timeouts

Signed-off-by: Joe Elliott <number101010@gmail.com>

* docs

Signed-off-by: Joe Elliott <number101010@gmail.com>

* lint N docs

Signed-off-by: Joe Elliott <number101010@gmail.com>

* more lint

Signed-off-by: Joe Elliott <number101010@gmail.com>

* make update-mod

Signed-off-by: Joe Elliott <number101010@gmail.com>

---------

Signed-off-by: Joe Elliott <number101010@gmail.com>

* Bump anchore/sbom-action from 0.15.8 to 0.15.9 (#3476)

Bumps [anchore/sbom-action](https://github.com/anchore/sbom-action) from 0.15.8 to 0.15.9.
- [Release notes](https://github.com/anchore/sbom-action/releases)
- [Commits](https://github.com/anchore/sbom-action/compare/v0.15.8...v0.15.9)

---
updated-dependencies:
- dependency-name: anchore/sbom-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Doc update (#3482)

* doc: remove reference to previously purged script

* doc: correct label for docs updates

* [TraceQL Metrics] Use new per-tenant max_metrics_duration and fix duration check (#3484)

* Use new per-tenant max_metrics_duration, and fix duration timestamp handling

* Update docs and defaults

* Handle prefixes when listing blocks from S3 and GCS (#3466)

* Handle prefixes when listing blocks from S3

fixes #3465

* Handle prefixes when listing blocks from GCS

* Add test for prefixes when listing blocks from Azure

* Update unit tests to check for actual block IDs instead of just length of the slices

Cleanup unit tests

* Further refine S3/GCS backend for ListBlocks

Brings logic more in line with Azure object parsing.
Also has the benefit of handling prefixes without a trailing slash.

* Update poller integration test to exercise prefixes

* Update e2e test to exercise prefixes

* Fix format check error

* Fix failing e2e tests

* Remove unnecessary prefix permutations from e2e test

* Remove unnecessary test config file copy

* Ignore lint

---------

Co-authored-by: Zach Leslie <zach.leslie@grafana.com>

* Update doc-validator.yml (#3483)

Updates the doc-validator to the latest version. Note that this changes the reference format to use the full URL (https://....) instead of /docs/blah

* [DOC] Document Tempo Operator Monolithic mode (#3474)

* [DOC] Document Tempo Operator Monolithic mode

Signed-off-by: Andreas Gerstmayr <agerstmayr@redhat.com>

* clarify supported storages

Signed-off-by: Andreas Gerstmayr <agerstmayr@redhat.com>

* fix case of title

Signed-off-by: Andreas Gerstmayr <agerstmayr@redhat.com>

* Apply suggestions from code review

* Apply suggestions from code review

---------

Signed-off-by: Andreas Gerstmayr <agerstmayr@redhat.com>
Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>

* [DOC] document Grafana data source setup using Grafana and Tempo operators (#3473)

* [docs] document Grafana data source setup using Grafana and Tempo operators

* move the Grafana data source setup page to the operator folder (this
  page is only relevant for the operator)
* document Grafana data source setup using Grafana and Tempo operators

Signed-off-by: Andreas Gerstmayr <agerstmayr@redhat.com>

* Apply suggestions from code review

---------

Signed-off-by: Andreas Gerstmayr <agerstmayr@redhat.com>
Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>

* [DOC] fix typo in setup/operator/monolithic.md (#3496)

Signed-off-by: Andreas Gerstmayr <agerstmayr@redhat.com>

* Bump github.com/prometheus/client_golang from 1.18.0 to 1.19.0 (#3455)

* Bump github.com/prometheus/client_golang from 1.18.0 to 1.19.0

Bumps [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) from 1.18.0 to 1.19.0.
- [Release notes](https://github.com/prometheus/client_golang/releases)
- [Changelog](https://github.com/prometheus/client_golang/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prometheus/client_golang/compare/v1.18.0...v1.19.0)

---
updated-dependencies:
- dependency-name: github.com/prometheus/client_golang
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update serverless gomod

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: grafanabot <bot@grafana.com>

* Add support for dashes, quotes and spaces in attribute names (#3458)

* Add support for dashes, quotes and spaces in attribute names

* chlog

* [TraceQL Metrics] Step align query_range time range (#3490)

* Step align query_range time range

* Time range error: improve message and fix format for prom format.

* oops remove printlns

* lint

* changelog

* 2.4.1 changelog (#3503)

Signed-off-by: Joe Elliott <number101010@gmail.com>

* [DOC] Add 2.4.1 release notes (#3504)

* fix tests due to interface changing

Signed-off-by: Joe Elliott <number101010@gmail.com>

* Pass context

Signed-off-by: Joe Elliott <number101010@gmail.com>

---------

Signed-off-by: Joe Elliott <number101010@gmail.com>
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Andreas Gerstmayr <agerstmayr@redhat.com>
Co-authored-by: Mario <mariorvinas@gmail.com>
Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Matt Simonsen <matt.simonsen@gmail.com>
Co-authored-by: Martin Disibio <martin.disibio@grafana.com>
Co-authored-by: Ben Foster <bpfoster@gmail.com>
Co-authored-by: Zach Leslie <zach.leslie@grafana.com>
Co-authored-by: Andreas Gerstmayr <agerstmayr@redhat.com>
Co-authored-by: grafanabot <bot@grafana.com>
2024-03-20 15:53:00 -04:00
8e6e7fe86f Handle prefixes when listing blocks from S3 and GCS (#3466)
* Handle prefixes when listing blocks from S3

fixes #3465

* Handle prefixes when listing blocks from GCS

* Add test for prefixes when listing blocks from Azure

* Update unit tests to check for actual block IDs instead of just length of the slices

Cleanup unit tests

* Further refine S3/GCS backend for ListBlocks

Brings logic more in line with Azure object parsing.
Also has the benefit of handling prefixes without a trailing slash.

* Update poller integration test to exercise prefixes

* Update e2e test to exercise prefixes

* Fix format check error

* Fix failing e2e tests

* Remove unnecessary prefix permutations from e2e test

* Remove unnecessary test config file copy

* Ignore lint

---------

Co-authored-by: Zach Leslie <zach.leslie@grafana.com>
2024-03-14 18:39:37 +00:00
c889e63212 Frontend Refactor (#3400)
* async handlers

Signed-off-by: Joe Elliott <number101010@gmail.com>

* search pipeline

Signed-off-by: Joe Elliott <number101010@gmail.com>

* cleanup

Signed-off-by: Joe Elliott <number101010@gmail.com>

* lint

Signed-off-by: Joe Elliott <number101010@gmail.com>

* fixed api tests

Signed-off-by: Joe Elliott <number101010@gmail.com>

* make err last param - lint

Signed-off-by: Joe Elliott <number101010@gmail.com>

* lint

Signed-off-by: Joe Elliott <number101010@gmail.com>

* remove test for dropped metrics

Signed-off-by: Joe Elliott <number101010@gmail.com>

* pipeline readme

Signed-off-by: Joe Elliott <number101010@gmail.com>

* cleanup

Signed-off-by: Joe Elliott <number101010@gmail.com>

* responses cleanup

Signed-off-by: Joe Elliott <number101010@gmail.com>

* review comments

Signed-off-by: Joe Elliott <number101010@gmail.com>

* remove unnecessary goroutine

Signed-off-by: Joe Elliott <number101010@gmail.com>

* async sharder takes len

Signed-off-by: Joe Elliott <number101010@gmail.com>

* nolint

Signed-off-by: Joe Elliott <number101010@gmail.com>

* AsyncSharder rename/cleanup

Signed-off-by: Joe Elliott <number101010@gmail.com>

* lint

Signed-off-by: Joe Elliott <number101010@gmail.com>

* fix integration tests

Signed-off-by: Joe Elliott <number101010@gmail.com>

* lint >.<

Signed-off-by: Joe Elliott <number101010@gmail.com>

* remove special context handling in the grpc collector

Signed-off-by: Joe Elliott <number101010@gmail.com>

* prevent goroutine leak when sending to a full channel

Signed-off-by: Joe Elliott <number101010@gmail.com>

* buffer error to guarantee at least one makes it

Signed-off-by: Joe Elliott <number101010@gmail.com>

* responses in error should stay in error

Signed-off-by: Joe Elliott <number101010@gmail.com>

* test for returning the same error

Signed-off-by: Joe Elliott <number101010@gmail.com>

* don't pass requests in error forward

Signed-off-by: Joe Elliott <number101010@gmail.com>

* log http results even on err

Signed-off-by: Joe Elliott <number101010@gmail.com>

---------

Signed-off-by: Joe Elliott <number101010@gmail.com>
2024-03-01 07:51:26 -05:00