3255 Commits

Author SHA1 Message Date
be4ba9775f Update Explore Traces to Traces Drilldown (#4793) 2025-03-05 21:40:39 +05:30
6148571033 Allow skipping spans for metric generation (#4728)
* Allow skipping spans for metric generation

* use request body instead of context where possible

* decode to PushSpansRequest
2025-03-05 09:41:17 -05:00
b78b1a4728 update tempo version (#4796) 2025-03-05 15:24:46 +01:00
5dda5c68ed chore: update go version to 1.24.1 for tempo tools image (#4794) 2025-03-05 14:13:40 +01:00
d71a556083 feat: Traceql metric sum_over_time (#4786)
* added sum_over_time to language

* rename evaluator

* refactor overtime functions

* added documentation

* fix compensation

* fix test due to floating point discrepancy

* changelog

* fix expr.y

* linting

* Update docs/sources/tempo/traceql/metrics-queries/_index.md

Co-authored-by: Ruslan Mikhailov <195758209+ruslan-mikhailov@users.noreply.github.com>

* Update docs/sources/tempo/traceql/metrics-queries/functions.md

Co-authored-by: Martin Disibio <mdisibio@gmail.com>

* add function

---------

Co-authored-by: Ruslan Mikhailov <195758209+ruslan-mikhailov@users.noreply.github.com>
Co-authored-by: Martin Disibio <mdisibio@gmail.com>
2025-03-05 10:01:54 +01:00
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
e21bce7593 chore: remove unused parameter (#4788) 2025-03-04 17:33:19 +01:00
ffe17b68d8 BugFix: Blocks whose end second matches a query range throw an erroneous error (#4783)
* make block metas for search take a time.Time to force the caller to interpret their time correctly

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

* Applied the same fix to cache key

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

* linter i love you, but you you're bringing me down

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

* maybe

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

* only calculate start/end time once in tag sharder

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

* push time.Time out one level

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

---------

Signed-off-by: Joe Elliott <number101010@gmail.com>
2025-03-04 10:38:02 -05:00
19556c7e72 fix: flaky TestWalBlockFindTraceByID test (#4787)
Some checks failed
docker / get-tag (push) Has been cancelled
docker / docker (tempo, map[arch:amd64 runner:ubuntu-24.04]) (push) Has been cancelled
docker / docker (tempo, map[arch:arm64 runner:github-hosted-ubuntu-arm64]) (push) Has been cancelled
docker / docker (tempo-cli, map[arch:amd64 runner:ubuntu-24.04]) (push) Has been cancelled
docker / docker (tempo-cli, map[arch:arm64 runner:github-hosted-ubuntu-arm64]) (push) Has been cancelled
docker / docker (tempo-query, map[arch:amd64 runner:ubuntu-24.04]) (push) Has been cancelled
docker / docker (tempo-query, map[arch:arm64 runner:github-hosted-ubuntu-arm64]) (push) Has been cancelled
docker / docker (tempo-vulture, map[arch:amd64 runner:ubuntu-24.04]) (push) Has been cancelled
docker / docker (tempo-vulture, map[arch:arm64 runner:github-hosted-ubuntu-arm64]) (push) Has been cancelled
docker / manifest (tempo) (push) Has been cancelled
docker / manifest (tempo-cli) (push) Has been cancelled
docker / manifest (tempo-query) (push) Has been cancelled
docker / manifest (tempo-vulture) (push) Has been cancelled
docker / cd-to-dev-env (push) Has been cancelled
Snyk Monitor Scanning / snyk-scan-ci (push) Has been cancelled
Github repo and issue stats collection / main (push) Has been cancelled
* fix: flaky TestWalBlockFindTraceByID test

* changelog

* convert to uint64
2025-03-04 11:40:54 +01:00
2326f7fa20 Bump github.com/jedib0t/go-pretty/v6 from 6.6.6 to 6.6.7 (#4777)
Bumps [github.com/jedib0t/go-pretty/v6](https://github.com/jedib0t/go-pretty) from 6.6.6 to 6.6.7.
- [Release notes](https://github.com/jedib0t/go-pretty/releases)
- [Commits](https://github.com/jedib0t/go-pretty/compare/v6.6.6...v6.6.7)

---
updated-dependencies:
- dependency-name: github.com/jedib0t/go-pretty/v6
  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>
2025-03-04 11:37:45 +01:00
db1d5ead76 Update make docs procedure (#4780)
Some checks failed
docker / get-tag (push) Waiting to run
docker / docker (tempo, map[arch:amd64 runner:ubuntu-24.04]) (push) Blocked by required conditions
docker / docker (tempo, map[arch:arm64 runner:github-hosted-ubuntu-arm64]) (push) Blocked by required conditions
docker / docker (tempo-cli, map[arch:amd64 runner:ubuntu-24.04]) (push) Blocked by required conditions
docker / docker (tempo-cli, map[arch:arm64 runner:github-hosted-ubuntu-arm64]) (push) Blocked by required conditions
docker / docker (tempo-query, map[arch:amd64 runner:ubuntu-24.04]) (push) Blocked by required conditions
docker / docker (tempo-query, map[arch:arm64 runner:github-hosted-ubuntu-arm64]) (push) Blocked by required conditions
docker / docker (tempo-vulture, map[arch:amd64 runner:ubuntu-24.04]) (push) Blocked by required conditions
docker / docker (tempo-vulture, map[arch:arm64 runner:github-hosted-ubuntu-arm64]) (push) Blocked by required conditions
docker / manifest (tempo) (push) Blocked by required conditions
docker / manifest (tempo-cli) (push) Blocked by required conditions
docker / manifest (tempo-query) (push) Blocked by required conditions
docker / manifest (tempo-vulture) (push) Blocked by required conditions
docker / cd-to-dev-env (push) Blocked by required conditions
Snyk Monitor Scanning / snyk-scan-ci (push) Waiting to run
Stale check / stale (push) Has been cancelled
Update `make docs` procedure / main (push) Has been cancelled
Co-authored-by: grafanabot <bot@grafana.com>
2025-03-03 13:02:43 +00:00
09a4f2b3a7 Bump google.golang.org/api from 0.222.0 to 0.223.0 (#4779)
Bumps [google.golang.org/api](https://github.com/googleapis/google-api-go-client) from 0.222.0 to 0.223.0.
- [Release notes](https://github.com/googleapis/google-api-go-client/releases)
- [Changelog](https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md)
- [Commits](https://github.com/googleapis/google-api-go-client/compare/v0.222.0...v0.223.0)

---
updated-dependencies:
- dependency-name: google.golang.org/api
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-03 18:19:48 +05:30
6941229bad Fix typos (#4776)
* Some typos fixed in comment lines.

Signed-off-by: Gökhan Özeloğlu <gozeloglu@gmail.com>
2025-03-03 18:19:08 +05:30
70f6095293 docs: Fix broken link to metrics generator from span metrics doc. (#4773)
Some checks failed
docker / get-tag (push) Has been cancelled
docker / docker (tempo, map[arch:amd64 runner:ubuntu-24.04]) (push) Has been cancelled
docker / docker (tempo, map[arch:arm64 runner:github-hosted-ubuntu-arm64]) (push) Has been cancelled
docker / docker (tempo-cli, map[arch:amd64 runner:ubuntu-24.04]) (push) Has been cancelled
docker / docker (tempo-cli, map[arch:arm64 runner:github-hosted-ubuntu-arm64]) (push) Has been cancelled
docker / docker (tempo-query, map[arch:amd64 runner:ubuntu-24.04]) (push) Has been cancelled
docker / docker (tempo-query, map[arch:arm64 runner:github-hosted-ubuntu-arm64]) (push) Has been cancelled
docker / docker (tempo-vulture, map[arch:amd64 runner:ubuntu-24.04]) (push) Has been cancelled
docker / docker (tempo-vulture, map[arch:arm64 runner:github-hosted-ubuntu-arm64]) (push) Has been cancelled
docker / manifest (tempo) (push) Has been cancelled
docker / manifest (tempo-cli) (push) Has been cancelled
docker / manifest (tempo-query) (push) Has been cancelled
docker / manifest (tempo-vulture) (push) Has been cancelled
docker / cd-to-dev-env (push) Has been cancelled
publish-technical-documentation-next / sync (push) Has been cancelled
Snyk Monitor Scanning / snyk-scan-ci (push) Has been cancelled
Signed-off-by: Heds Simons <hedley.simons@grafana.com>
2025-03-01 23:19:30 +05:30
074ab75e8b Fix query range frontend caching (#4771)
Some checks are pending
docker / get-tag (push) Waiting to run
docker / docker (tempo, map[arch:amd64 runner:ubuntu-24.04]) (push) Blocked by required conditions
docker / docker (tempo, map[arch:arm64 runner:github-hosted-ubuntu-arm64]) (push) Blocked by required conditions
docker / docker (tempo-cli, map[arch:amd64 runner:ubuntu-24.04]) (push) Blocked by required conditions
docker / docker (tempo-cli, map[arch:arm64 runner:github-hosted-ubuntu-arm64]) (push) Blocked by required conditions
docker / docker (tempo-query, map[arch:amd64 runner:ubuntu-24.04]) (push) Blocked by required conditions
docker / docker (tempo-query, map[arch:arm64 runner:github-hosted-ubuntu-arm64]) (push) Blocked by required conditions
docker / docker (tempo-vulture, map[arch:amd64 runner:ubuntu-24.04]) (push) Blocked by required conditions
docker / docker (tempo-vulture, map[arch:arm64 runner:github-hosted-ubuntu-arm64]) (push) Blocked by required conditions
docker / manifest (tempo) (push) Blocked by required conditions
docker / manifest (tempo-cli) (push) Blocked by required conditions
docker / manifest (tempo-query) (push) Blocked by required conditions
docker / manifest (tempo-vulture) (push) Blocked by required conditions
docker / cd-to-dev-env (push) Blocked by required conditions
Snyk Monitor Scanning / snyk-scan-ci (push) Waiting to run
* fix cache

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

* changelog

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

* remove the thing that lint doesn't like

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

* fix changelog

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

---------

Signed-off-by: Joe Elliott <number101010@gmail.com>
2025-02-28 14:37:17 -05:00
08b8625857 [Rhythm] Block-builder metrics and code cleanup (#4765)
* Consolidate block builder on common lag_seconds metric, clean out metrics for revoked partitions, cleanup

* Cleanup, lint

* utc

* Reuse existing test data functions
2025-02-28 11:17:28 -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
291eb0a783 Remove TempoRequestLatency alert and associated runbook section (#4768) 2025-02-28 08:17:06 -05:00
5d98dcd245 Convert throughput SLO metrics from histogram to counter (#4748)
For performance
2025-02-28 14:11:10 +01:00
907c974fb8 Log inspected bytes for trace by id V2 results (#4763) 2025-02-28 14:10:40 +01:00
c1f6280dd1 Do less Nexting (#4753)
* this is garbage

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

* filtery stuff

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

* fix

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

* max def everywhere

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

* clean up benches

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

* clean up

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

* remove vendor chagnes

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

* changelog

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

* add details about bench env vars

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

---------

Signed-off-by: Joe Elliott <number101010@gmail.com>
2025-02-28 08:08:18 -05:00
eb960ceb57 Make Carles a maintainer (#4760)
Signed-off-by: Joe Elliott <number101010@gmail.com>
2025-02-27 09:33:24 -05:00
9064e84aa5 [Metrics Generator] Allow running on a different source of data (#4686)
* [Metrics Generator] Allow running on a different source of data

* fix lint errors

* Address review feedback

* regenerate manifest

* do not start ring lifecycler

* make partition ring watcher a separate module

* do not join ring when gRPC is disabled

* changelog
2025-02-27 07:40:14 -05:00
122be753e6 Fix GOARM64 build option (#4761) 2025-02-27 21:06:50 +10:00
2c3c357ffd Improve Tempo build options (#4755)
* Set CPU architecture API version for amd64 and arm64

This enables the compiler to use instructions from more recent API versions

* Strip debug symbols from production binary

Reduces Tempo binary size by ~20%

* Remove GO111MODULE=on environment variable

GO111MODULE defaults to 'on' since Go 1.16

* CHANGELOG.md
2025-02-27 19:57:01 +10:00
1b7a088e08 Reorder span iterators (#4754)
* Reorder iterators

* CHANGELOG.md
2025-02-27 08:50:42 +10:00
a4b69ff70a rhythm: fail safe when no partitions are assigned to a blockbuilder instance (#4743)
* rythm: fail safe when no partitions are assigned to a blockbuilder instance

* returns an error if no partitions assigned

* include also pending partitions

* improve test to include another test case

* return the wait time when no partitions assigned

* remove not needed assertion
2025-02-26 18:15:34 +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
04aedaad5d Log inspected bytes for trace by id results (#4758)
We use this in dashboards

And update docs
2025-02-26 07:55:02 -05:00
c33c6fb568 [rhythm] blockbuilder: fix cycle handling (#4756)
* blockbuilder: fix cycle handling

* Add test

* Use commit

* Happy now?
2025-02-26 12:26:05 +00:00
52a0e16966 Issue 3880: fix mixin issues (#4757)
* Issue 3880: TempoBlockListRisingQuickly fix

* Issue 3880: TempoBlockListRisingQuickly fix: generate

* Issue 3880: New alerts

For unhealthy Ingester and metrics-generators

* Issue 3880: New alerts: generate

* Issue 3880: Runbook for new alerts

* Issue 3880: Better descriptions for runbook

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

* Issue 3880: Increase severity

for unhealthy metrics-generator and ingester

* Issue 3880: Increase severity: generate

---------

Co-authored-by: Suraj Nath <9503187+electron0zero@users.noreply.github.com>
2025-02-26 13:19:28 +01: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
8263d353e7 [TraceQL] Add ability to search for parent span id (#4692)
* [TraceQL] Add ability to search for parent span id

* docs and changelog

* update test

* add test and fix test
2025-02-25 15:28:56 -06:00
0a3fd0495a rhythm: fix block time range adjustment (#4746)
* rhythm: fix block time range adjustment

* fix pr number

* fix test
2025-02-25 13:13:36 +01:00
7cb63d54b6 rhythm: fix partition sorting (#4747) 2025-02-25 10:52:25 +01:00
5e7fe45e4e Issue 4742: fix panic on startup (#4744)
* Issue 4742: fix panic on startup

* Issue 4742: cover non-empty WAL in unit-tests
2025-02-24 18:01:01 +00:00
c2300f0f45 Issue 3948: user cfg override fix (#4741) 2025-02-24 17:39:27 +01:00
66d6ccae89 Bump github.com/google/go-cmp from 0.6.0 to 0.7.0 (#4736)
Bumps [github.com/google/go-cmp](https://github.com/google/go-cmp) from 0.6.0 to 0.7.0.
- [Release notes](https://github.com/google/go-cmp/releases)
- [Commits](https://github.com/google/go-cmp/compare/v0.6.0...v0.7.0)

---
updated-dependencies:
- dependency-name: github.com/google/go-cmp
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-24 17:32:03 +01:00
3435f32ecd Bump github.com/klauspost/compress from 1.17.11 to 1.18.0 (#4737)
Bumps [github.com/klauspost/compress](https://github.com/klauspost/compress) from 1.17.11 to 1.18.0.
- [Release notes](https://github.com/klauspost/compress/releases)
- [Changelog](https://github.com/klauspost/compress/blob/master/.goreleaser.yml)
- [Commits](https://github.com/klauspost/compress/compare/v1.17.11...v1.18.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-24 17:30:49 +01:00
034b7833c9 Bump google.golang.org/api from 0.221.0 to 0.222.0 (#4739)
Bumps [google.golang.org/api](https://github.com/googleapis/google-api-go-client) from 0.221.0 to 0.222.0.
- [Release notes](https://github.com/googleapis/google-api-go-client/releases)
- [Changelog](https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md)
- [Commits](https://github.com/googleapis/google-api-go-client/compare/v0.221.0...v0.222.0)

---
updated-dependencies:
- dependency-name: google.golang.org/api
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-24 17:29:13 +01:00
a08d7ad944 [rhythm] Add shuffle sharding (#4729) 2025-02-24 16:31:45 +01:00
9633c283e4 Collect inspected bytes by FindByTraceId (#4668) 2025-02-24 07:00:57 -05:00
b4588159db Nomad example bump version to 2.7.1 (#4740) 2025-02-24 10:42:42 +00:00
d8bf8fed20 [Rhythm] Improve metrics generator + Kafka performance and stability (#4721)
* Add new concurrency config options and validate

* Reduce allocations of IDmap when replaying wal blocks since we know the number of traces

* Generator read from kafka concurrency, add shared ingest lag metric, option to uniqify strings

* Memoize spanmetrics sanitizelabelname, move to better location

* Moved to shared queue for localblocks wal completion, allow concurrency within a tenant

* Honor max live traces in non-flushing local blocks processor

* Add metric for enqueue time

* Add missing mutex lock for enqueuing on replay

* Fix mutex lock while reloading blocks

* Increase default concurrency

* Simplify local blocks complete queue

* Remove uniqify, fix test

* Switch completequeue to reference counting and shut it down when last local blocks processor is stopped

* cache rename/cleanup

* Cleanup/denoising PR

* Lint/cleanup

* lint

* Update config manifest

* fix race condition

* cleanup

* review feedback

* Update config manifest

* changelog
2025-02-21 11:18:42 -05:00
fc828331c8 Remove outdated info from the runbook (#4733) 2025-02-21 10:42:23 -05:00
1b63c9fffc upgrade parquet-go (#4730)
Signed-off-by: Joe Elliott <number101010@gmail.com>
2025-02-21 08:19:18 -05:00
50a9daf668 rhythm: fair partition consumption (#4655)
* rhythm: weighted partition consumption

* remove printf

* make it simpler

* better logging

* fix typo

* update the loop to priorize the laggiest partition based in time not in offset

* remove log line

* address comments

* fix bug and remove test statements

* changelog

* remove unused variable
2025-02-21 09:27:02 +01:00
40c4351a65 Rewrite traces using rebatching (#4690)
* Implement span basic rebatching and 4to4 converter

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

* Generated trace data with unique scope and resource spans

The functions test.MakeBatch and test.MakeTrace* now create
more unique ResourceSpans and ScopeSpans. This avoids unwanted
rebatching in tests

* Fix tests in spanmetrics processor

Test data now has additional attributes on resource level
that caused these tests to fail

* Move rebatch code out of nested set function

* Make parquetTraceToTempopbTrace() private

* Add benchmark for testing traceToParquet()

* make check-fmt

* rebatchTrace() without allocating new slices for ResourceSpans and ScopeSpans

* Fix bug with duplicated rs ans ss in rebatchTrace()

* CHANGELOG.md

* Add finalizeTrace() function

* Call finalizeTrace() in combiner

---------

Signed-off-by: Joe Elliott <number101010@gmail.com>
Co-authored-by: Joe Elliott <number101010@gmail.com>
2025-02-21 09:31:03 +10:00
01d7c5dca3 [DOC] Rename Explore Apps to App Drilldown (#4725) 2025-02-20 19:45:10 +00:00
02ec38e47b [DOC] Updates for sharing content to GTC, Tempo data source (#4680) 2025-02-19 14:40:00 -05:00