146 Commits
Author SHA1 Message Date
Oleg V. KozlyukandZach Kelling 0e6e71d79e fix: check-fmt failing on changes in ./tools/vendor/ (#6335) 2026-02-22 00:55:20 -08:00
Oleg V. KozlyukandGitHub c33e5559c1 chore: Use Buf to generate go definitions (#6130) 2026-01-07 09:12:36 -05:00
Joe ElliottandGitHub 863b79ba21 Tempo 3.0: Integration Tests Rewrite (#6088)
* First pass test harness

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

* limits - passed

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

* metrics generator - passed

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

* harness cleanup/fix target info test

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

* deployments - passed

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

* receivers - passed

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

* harness cleanup

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

* storage - passed

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

* api - passing

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

* cleanup and CI

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

* Additional tests

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

* it's me and you linter. how many times are you going to do this to me?

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

* lint and tests

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

* restored live store partition tests

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

* massive lint

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>

* wups

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

* cleanup and stabilizing

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

* cleanup

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

* omg

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

* added config file. removed empty file. deleted some debug code

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

* even more fixes

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

* maybe this works? maybe it was all local networking issues

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

* review

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

* backed off huge write timeout. added missing config file

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

* restore disable parallelism setting. restore beefy write timeout

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

* apparently another test relied on the http receiver

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

* livestore avail zone!

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

* add support for v1 traces and tags endpoints

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

* review

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

* changed the location of the changelog entry to avoid conflicts

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

---------

Signed-off-by: Joe Elliott <number101010@gmail.com>
2026-01-07 08:31:11 -05:00
Martin DisibioandGitHub fc3212ff6a Support span:childCount intrinsic with new column in vp5 (#6126)
* Support span:childCount intrinsic with new column in vp5

* Fix tests, update build image and re-gen traceql

* changelog
2026-01-06 09:07:36 -05:00
Zach LeslieandGitHub 8703e593d0 Refactor jsonnet compilation (#6016)
* [operations/jsonnet] restructure our compiled output for multiple environments

* Clean up old files

* Ignore vendor/ path for microservices

* Include "extras" example for testing non-default outputs

* Drop extras for the size of the diff
2025-12-04 17:39:48 +00:00
Oleg V. KozlyukandGitHub df20e3b44e feat: Adding coverage annotations on GitHub PRs (#6013) 2025-12-03 09:55:03 +01:00
Joe ElliottandGitHub da40cbe84b remove ci benches (#6012)
Signed-off-by: Joe Elliott <number101010@gmail.com>
2025-12-01 14:11:41 -05:00
Suraj NathandGitHub e898a6e679 Allow RetryInfo to be disabled in per tenant overrides (#5741)
* Allow RetryInfo to be enabled at cluster and runtime overrides

* Update manifest.md file

* Add CHANGELOG.md entry

* use RetryAfterOnResourceExhausted > 0 as cluster level control
2025-10-24 15:09:17 +00:00
MarioandGitHub 5f50821dc0 Add live-stores to jsonnet lib (#5591)
* Add livestores to jsonnet lib

* Update tk example to run complete rhythm setup

* Small fixes

* Simplify antiaffinity config

* chlog

* compile!
2025-09-01 11:25:02 +02:00
Zach LeslieandGitHub f2459376bd Backend scheduler tests (#5324)
* Additional scheduler tests

* Include scheduler integration make target

* Update integration tests

* Include tests in CI

* Include new integration tests in test-all target

* Include docker target for backend-scheduler integration

* Use t.TempDir for temporary directory

* Clean up after review

* Add missing comma
2025-07-02 14:47:18 +00:00
MarioandGitHub d343a786de Add e2e test coverage for rhythm (#4965)
* Add e2e test coverage for rhythm

Updated e2e tests for rhythm/ingest. Also added a new `test-e2e-ingest` target in CI workflows and Makefile.

* Build image

* Refactor and update integration tests, configs, and utilities

Signed-off-by: Mario <mariorvinas@gmail.com>

* Remove unnecessary time.Sleep

* woah, forbidden

---------

Signed-off-by: Mario <mariorvinas@gmail.com>
2025-05-29 17:01:19 +02:00
JaviandGitHub 077a81460b chore: added kafka information to write dashboard (#4947)
* added kafka information to write dashboard

* fmt

* added distributor bytes recieved

* changelog

* proper unit

* use histogram quantiles instead of heatmaps

* compile mixin again

* split kafka appends between failed and success for better resolution
2025-04-14 09:30:01 +02:00
4e2942135f [Rhythm] Full RF1 read path (#4857)
* New config and logic to only search RF1 blocks after a given date, and stop all flushing from ingesters

* Fix filtering function

* Fix lint issue

* Re-generate manifest

* Add RF1After query param to search

Introduced a new `RF1After` field in the search request to allow filtering blocks by replication factor and time. Updated backend logic and tests to handle this functionality. Adjusted max search duration to enhance usability and clarity in search tests.

Signed-off-by: Mario <mariorvinas@gmail.com>

* Update Docker images for protobuf gen

Signed-off-by: Mario <mariorvinas@gmail.com>

* Improve RF1After handling and validation in trace queries

Added RF1After field to trace query validation logic and related structures. Updated request parsing, test cases, and query configuration to support RF1After. Removed deprecated RF1After config from querier module, ensuring runtime determination.

Signed-off-by: Mario <mariorvinas@gmail.com>

* Undo dumb logic

* Fix config options

* You again proto?

* Add RF1After filtering logic to tag searches

Signed-off-by: Mario <mariorvinas@gmail.com>

* WTF proto

* Fix comment

---------

Signed-off-by: Mario <mariorvinas@gmail.com>
Co-authored-by: Martin Disibio <mdisibio@gmail.com>
2025-03-24 12:12:28 +01:00
85dfe4dcfa Begin backend scheduler/worker for consistent compaction (#4770)
* Begin changes for backend-scheduler module

* Comment breadcrumb

* Initial compactor extensions and backendscheduler module

* Add initial jsonnet

* Some cleanup after discussion

* Add basic integration test for jobs fetching

* Flesh out some unit tests

* Clean up and add test coverage

* Improve coverage

* Clean up dead ring code

* Set default value for compactor job polling

* Add log message for backend scheduling

* Add note about fixing the compactor flow

* Small operational fixes

* Plumb client defaults

* Fix job handling and module dependency chicken/egg/lizard

* Update config manifest

* Move CompactionBlockSelector

* Revert tempodb compactor changes

* Revert "Revert tempodb compactor changes"

This reverts commit 239c4f2a9df2c289164321f427ac56fa4b7d92cc.

* Add backendworker module and work around comapctor dependencies

* Move job work and queue into separate package

* Add jsonnet for backend-worker

* Fix backendscheduler tests

* Update docs manifest

* Revert compaction method rename

* Drop debug

* Revert compactor module changes

* Drop debug

* Revert compactor test change

* Fix mock interface after extension

* Start e2e integration test

* Lint and clean up

* Move tmpDir creation to the top

* Commit for sharing

* Clean up debug

* Working integration test

* Implement backoff

* Add manifest

* Clean up comments

* Clean up comments

* Clean up comments

* Clean up

* Clean up comments

* Clean up test

* Clean up comment

* Clean up

* Ensure the queue is drained before schedule

* Fix metric label

* Ensure the poller context is canceled

* Set default values for worker backoff locally

* Fix metric label

* Drop worker interval in favor of backoff

* Fix prune handling

* Improve work selection

* Hack in a backend cache

* Leverage existing blocklist measurement

* Skip the work cache when listing tenants

* Test CompactWithConfig

* Move proto for new work to new file

* Tenants with zero blocks have zero priority

* Many things

* Add note

* Drop empty file

* Plumb work config for pruning

* Drop needless proto change

* Update backendscheduler tests

* Update integration tests

* Fix config and generate doc manifest

* Add config validation

* Add more config validation

* Implement backoff wrapper for update calls

* Move tenant index-writitng to the backend-worker and shard on the ring

* Include RingConfig

* Generate manifest

* Fix manifest instance_id

* Drop workerID context injection from the GRPC request

* Push job collection into work package

* Push logic for skipping blocks which are already working into work package

* Log the workerID

* Return gRPC error on invalid job status

* Metric worker retry calls

* Improve test coverage for work

* Improve test coverage for job

* Fix test logic

* Reduce surface area, improve test coverage, clean up error handling

* Include new errors

* Fix lint

* Add tests for backendworker module

* Drop comments

* Fix backoff for Next() call on the worker to ensure backoff is honored with error return

* Bring back outstanding block metric on scheduler

* Make note about losing the last work time when the tenant is pushed back to the queue

* Measure all tenants, not just ones which get scheduled

* Continue scheduling if a single tenant was not enough work to load

* thoughts

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

* Add a timeout to cleanup jobs which have been running too long

* Drop "last work" from tenant selector implementation for simplicity

* Revert blocklist changes

* Ensure locking on work.OnBlock

* Clean up

* Generate manifest

* Clean up comment

* Clean up

* Clean up and handle a couple TODO

* Metric jobs created

* Fix job count per tenant

* Fix signature change in grpc DialOption

* Generate manifest

* Clean up

* Spellcheck

* Add missing Prune call

* Auto start jobs which are returned, metric job retries

* Drop Type from NextRequest

* Move marshal/unmarshal to Work and drop a mutex

* Simplify mutex handling

* Test for job reload

* Clean up after rebase

* Generate manifest

---------

Signed-off-by: Joe Elliott <number101010@gmail.com>
Co-authored-by: Joe Elliott <number101010@gmail.com>
2025-03-21 16:24:22 +00:00
A. StoewerandGitHub 122be753e6 Fix GOARM64 build option (#4761) 2025-02-27 21:06:50 +10:00
A. StoewerandGitHub 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
Suraj NathandGitHub 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
Carles GarciaandGitHub 58b06e8676 Fix local make calls (#4609)
Because we are using the $(MAKE) variable in targets which are called inside
the tools containers, the value of the variable corresponds to the path of make in the host,
which may be different than the one in the container, causing make to fail locally.
2025-01-24 14:15:50 +00:00
Suraj NathandGitHub 51aca06f9f Remove tempo serverless (#4599)
* remove tempo-serverless from cmd

* cleanup Makefile and .gitignore

* remove serverless code from pkg/api/

* remove serverless code from the querier

* clean up serverless from tempo-mixin and playbook

* Remove serverless from tempo docs

* Update changelog

* go mod vendor

* Remove tempo_feature_enabled metric

* inline internalSearchBlock

* docs alias
2025-01-24 05:02:29 +00:00
J PhamandGitHub 7a3b4975ed remove serverless tests (#4597)
* remove serverless tests

* remove integration tests
2025-01-22 20:39:39 -06:00
Carles GarciaandGitHub 52388dd460 Delete remaining Drone files to finish migration to GHA (#4552) 2025-01-14 11:02:30 -05:00
+6 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
Martin DisibioandGitHub 12102dd1c2 Add make targets for multi-arch tempo docker image (#4535) 2025-01-10 08:15:06 -05:00
Carles GarciaandGitHub 7117de4d3f Add golangci-lint cache (#4433)
* Add golangci-lint cache in CI and locally

* Use year and week number for cache key
2024-12-11 12:46:06 +01:00
Carles GarciaandGitHub 5d9e8a0ad9 Add script to generate manifest with default config (#4430)
* Add script to generate manifest with default config

The script:
- generates the manifest with default config YAML which is included in the docs as a reference.
- runs in CI to check if the manifest needs to be updated as a result of new changes in the default config.

* Generate manifest during build step in CI

* Add Makefile command

* Add build flags
2024-12-11 12:11:24 +01:00
Javier Molina ReyesandGitHub f8a1dbb8c2 chore: remove gofakeit dependency (#4274) 2024-11-05 14:27:18 +01:00
AkiandGitHub 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
Zach LeslieandGitHub 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
MarioandGitHub 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
shalk(xiao kun)andGitHub ca5fdaed42 upgrade build image to 0.33.2 with golang 1.22.5 (#3910) 2024-07-26 08:18:37 -04:00
91347213a4 feat: Make Makefile self-documented (#3844)
* self document makefile

* improve wording

* Update CHANGELOG.md

---------

Co-authored-by: Mario <mariorvinas@gmail.com>
2024-07-08 08:03:42 +02:00
MarioandGitHub 843556e2aa Update to Go 1.22.4 (#3793)
* Update Go to 1.22.4

* Update CI

* chlog

* Clean chlog

* Update tool's go.mod

* now?
2024-06-20 14:10:07 -04:00
Joe ElliottandGitHub 977579613e Iterator Perfomance Improvements (#3667)
* steal benches

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

* Gen floats, ints and bool predicates

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

* remove string allocs

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

* added gen to make

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

* Gen strings

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

* patch up vp2 and vp4

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

* remove instrumented predicate

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

* int32 rns

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

* skip nulls

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

* vp4 unsafe string

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

* revert isnull check due to impact on query range

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

* remove string range cond

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

* changelog

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

* lint and tests

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

* exclude

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

* again

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

* fix second line

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

* fix bool pred

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

* change generated file name and exclude

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

* additional tests

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

---------

Signed-off-by: Joe Elliott <number101010@gmail.com>
2024-05-15 14:58:45 -04:00
Zach LeslieandGitHub 868d066806 Pin the goreleaser version for Go version support (#3674)
* Pin the goreleaser version for Go version support

Without this change, goreleaser@latest requires a newer version of Go
than is currently supported by the project.  Here we pin the version.

* Pin the version of the tools image
2024-05-14 18:37:11 +00:00
Zach LeslieandGitHub 496b450e44 Use tools image for lint in CI and allow passing base ref (#3660)
* Use tools image for lint in CI and allow passing base ref

* Add fetch detpth for main diff
2024-05-10 13:16:08 +00:00
Zach LeslieandGitHub b76ab98594 Golangci deprecations and update using tools pattern (#3610)
* Breadcrumbs for golangci

* Include golangci in tools

* Use tools image for lint make target

* Update changelog
2024-05-08 20:56:43 +00:00
Zach LeslieandGitHub 1debcaeb60 Move jsonnetfmt, jsonnet, goimports and others install into tools/ (#2869)
* Move `jsonnetfmt` and `goimports` install into tools/

This will ensure that the version we are using to compile locally is the
same version that we are using in CI.  The `goimports` was already
included in the tools, and so the CI was redundant.  Also not, this
moves us from the C jsonnet to the Go jsonnet, which looks to introduce
slight formatting changes.

* Compile jsonnet

* Move tk, jb, and jsonnet also into tools/

* Include tools dependency on additional make targets

* Include tools Dockerfile

* Include tools image build target

* Update tools/go.sum

* Tidy up image build

* Prepare multi-arch docker image with install script

The script is used because not all imports in the tools.go are modules
which can be imported.  The version of the import is determined by
matching the nearest module path and installing the import at the
version specified in the go.mod.  This will allow updates to the go.mod
to direct the versions of the tools installed in the docker image.

* Stop ignoring the tools to allow docker build

* Include entrypoint

* Use TOOLS_CMD for docker execution on a few key make targets

* Use my image

* Fix variable

* Mark workdir as git safe

* Update drone to publish a tempo-ci-tools image

* Fix --platform for image source and use golang:alpine
2024-04-05 16:57:25 +00:00
Jennie PhamandGitHub 3ed534a07b Revendor parquet go and re-enable seekwithinpage (#3360)
* revendor parquet go and re-enable seekwithinpage

* go mod

* go mod

* serverless mod

* increase timeout for test
2024-02-04 22:12:50 -06:00
Suraj NathandGitHub 96c4e72327 Add support for multi-tenant queries in streaming search (#3262)
Add multi-tenant query support in streaming search endpoints.

follow up on #3087
2024-01-25 16:37:38 +05:30
Martin DisibioandGitHub a6f4f0d74e Upgrade otel/build-protobuf image for apple silicon compatibility (#3270) 2024-01-09 14:56:36 -05:00
Joe ElliottandGitHub efb11ea97f Parquet page caching (#3196)
* page caching first pass

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

* set default vals

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

* actually return cache

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

* disallow none cache

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

* restore buffered reader

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

* fix read buffer size

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

* remove load

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

* changelog

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

* fix stopping behavior

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

* copy before storing parquet pages

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

* combined cached reader and optimized reader

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

* lint/asserts

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

* simplify needsCopy

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

* add parquet-pages to docs

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

* add stoewer file?

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

* perhaps this incantation will work, mused the lonely wizard

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

---------

Signed-off-by: Joe Elliott <number101010@gmail.com>
2023-12-15 07:42:43 -05:00
7e0e31015a Implement polling improvements (#2652)
* tempodb: update poller tests and mocks to support new work

* include Blocklist interface for testing

* tempodb: include quick poller

* Include QuickBlocks on tempodb

* Include notes about what is being implemented

* Add initial ListBlocks() stubs and implement s3

* Fix poller commits

* Lint fix

* Fix method for unimplemented test

* Add test coverage for previous compactions

* Fix method for unimplemented test

* Lint fix

* Drop some debug printing

* Drop unused variablea and update debug message

* Relocate allocations

* Invent fewer objects

* Lint fix

* Implement gcs ListBlocks()

* Tidy up s3.go

* Import fix

* Adjust list_test.go for eyeball parse

* Include notes after discoverying why

* Wrap a couple errors for clarity

* Modify error test for additional details

* Modify gcs backend for single character delimiter

* Add note about call change

* Add note about call change and implement listv2 for s3

* Adjust uuidInBlocklist to use existing allocations

* Add config and defaults for tenant polling concurrency

* Implement concurrent tenant polling

* Implement Find() on backend readers

* Add Find to MockRawReader

* Convert QuickBlocks over to use Find()

* Implement Find() on local/cache backend readers

* Drop ListBlocks in favor of Find

* Replace Blocks() with QuickBlocks() and update usage everywhere

* Fix local.Find for path handling

* Fix backend raw tests for Find mocks

* Reorder to reduce PR diff

* Relocate super-handy block boudary method

* Extend FindFunc to indicate Done

* Parallelize the Find() calls within Blocks()

* Fix race

* Fix boundedwaitgroup init in test

* Update backend implementations

* Make note of implemenation details

* Capture errors from tenant polling

* Add feature detection on backend readers

* Use backend.HasFeature() to determine if appropriate function

* Fix error handling in poller

* Pick lint

* Extend log message to include tenant_concurrency

* Add doc for HasFeature

* Local backend supports no features

* Pick lint

* Ensure we wait for results

* Avoid early return

* Improve error handling to include all errors

* Remove HasFeature() from RawReader interface after discussion

* Drop start argument from Find signature

* Include range calculation for sharded list calls

* Enable concurrent list calls for s3.Find()

* Include useful OwnsEverythingSharder

* Remove concurrency handling from tempodb.Blocks()

* Add docs for new config options

* Fix GCS e2e object path

* Clean up comments

* Include a test to ensure retained blocks are forgotten

* Begin reimplementing ListBlock() in RawReaders after discussion

* Reimplement ListBlocks() on the backends

* Fix ListBlocks() for gcs

* Drop Find and supporting code

* Drop unused method

* Back out proto change, since `main` also has this issue

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

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

* Reimplement ListBlocks() for Azure

* Lint

* Rename config option for concurrent block list

* Relocate block boundary code to own package

* Relocate Blocklist interface to poller package

* Rely on error count for early exit condition

* Avoid polling additional tenants if we have already reached our error tollerance

* Improve tests

* Include initial benchmarks

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

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

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

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

* Use *List directly, drop Blocklist interface

* Use builtin clear() to avoid heap escape

* Adhere to new error usage

* Speed up benchmark setup

* Trade memory for time in large data sets

* Lock for race

* Update CLI handling for Blocks() call to include compacted results

* Add doc to mention the concurrency per-instance

* Tidy up backends a bit

* Implement concurrent ListBlocks() on gcs

* Clean up

* Include ListBlocksConcurrency config option for GCS

* Test for compacted migration

* Start tracing ListBlocks()

* Start tracing the poller

* Fix span attribute

* Sort the block list for test

* Use slice collection instead of channel collection for deadlock

* Revert tenant poll concurrency

* Pass context to the EnablePolling method for future use

* Handle context on pollingLoop

* Use attribtues not events for better traceql

* Drop last tenant concurrency reference

* Fix Do() revert to old code

* Update for context

* Update tracing attributes for poller

* Back out proto update

* Remove unused error

* Remove inacurate docs after refactor

* Clean up

* Include additional span attributes

* Drop unused

* Drop unused

* Address some feedback in the backend

* Skip compacted blocks on trace summary

* Include TODO about reducing the 404 on meta.json for compacted blocks

* Include integration test for poller

* Upgrade fake-gcs-server

* Use JSONRead in gcs client for fake-gcs-server when Endpoint is set

* Avoid early allocation of error for concurent operations

* Include EndOffset in gcs backend

* Include integration configs

* Fix for global min/max

* Include poller integration test in ci

* Preallocate for review comments

* Lock for all results and break early if error

* Include additional assertion for poller_test

* Adjust gcs and s3 locking

* Adjust ListBlocks interface to take a tenant string instead of a keypath

* Move OwnsEverythingSharder

* Remove some comments

* Ensure exclusive max unless global max

* Restructure for clarity

* Tidy up backends a bit

* Fix test call count after avoiding BlockMeta for known compacted blocks

* Update tests to include CompactedMeta call count

* Include error message when block UUID is below shard minimum

* Centralize backend.GlobalMaxBlockID

---------

Co-authored-by: Mario <mariorvinas@gmail.com>
Co-authored-by: Koenraad Verheyden <koenraad.verheyden@posteo.net>
2023-10-27 19:36:37 +00:00
A. StoewerandGitHub 98760acff1 Enable errorlint and check for plain error comparisons (#2907)
* Use errorlint to check for plain error comparisons and type assertions

* Explicitly load golangci-lint config file

* Fix linter warnings about plain error comparison

* Fix linter warnings about plain error type assertions

* Implement tooManySpansError.Error() with pointer receiver

* Implement traceTooLargeError.Error() with pointer receiver

* Implement unsupportedError.Error() with pointer receiver

* Implement ParseError.Error() with pointer receiver

* Improve comment for errorlint in .golangci.yml

* Implement validationError.Error() with pointer receiver

* Check for ParseError using errors.As()

* Remove custom multi error implementation

* More readable condition for errors.Is(err, context.Canceled)

* Implement validationError.Unwrap()
2023-09-21 11:01:37 +10:00
Zach LeslieandGitHub a5a7adb5cd Run gofumpt -w on all go files and integrate with CI (#2584)
* Include gofumpt and goimports in tools

* Replace gofmt with gofumpt in Makefile

* Run `make fmt`

* Adhere to goconst lint rule

* Include gofumpt note in the CONTRIBUTING.md

* Update CHANGELOG
2023-07-20 16:02:05 +00:00
Zach LeslieandGitHub ab590108de Begin unit testing jsonnet microservices (#2229)
* Attempt unit testing jsonnet microservices

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

* Config update

* Update structure for microservices test

* Wire up CI to run the jsonnet tests

* Separate compile step, use output in first test

---------

Signed-off-by: Zach Leslie <zach.leslie@grafana.com>
2023-06-07 16:28:49 +00:00
Ruben VargasandGitHub a7d9931be3 Add e2e tests for jaeger query plugin (#2438)
* include e2e tests for jaeger query plugin

Signed-off-by: Ruben Vargas <ruben.vp8510@gmail.com>

* Build tempo-query with e2e tests target

Signed-off-by: Ruben Vargas <ruben.vp8510@gmail.com>

* adjust times for plugin e2e

Signed-off-by: Ruben Vargas <ruben.vp8510@gmail.com>

* restore tempo query image

Signed-off-by: Ruben Vargas <ruben.vp8510@gmail.com>

---------

Signed-off-by: Ruben Vargas <ruben.vp8510@gmail.com>
2023-05-30 15:46:04 +02:00
Joe ElliottandGitHub d572f51e6c Possibly reduce cost of tempodb tests (#2500)
* flip tests

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

* gomemlimit

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

---------

Signed-off-by: Joe Elliott <number101010@gmail.com>
2023-05-24 08:01:45 -04:00
Zach LeslieandGitHub 292662ba07 Replace "go test" with "gotestsum" in Makefile (#2429)
* Replace "go test" with "gotestsum" in Makefile

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

* Include make fragment for installing tools add dependent target

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

* Ignore tools/ source files

* Require tools for test-bench target

---------

Signed-off-by: Zach Leslie <zach.leslie@grafana.com>
2023-05-22 16:13:31 +00:00
Suraj NathandGitHub 25a9cae1fb Break up CI tests into pkg, tempodb, tempodb/wal and others (#2324)
* Break up tests into pkg, tempodb and others in CI Job

* fix ci.yaml file

* fix Makefile

* Run tests with -v

* split tempodb/wal out from tempodb

* lower go test timeout

* keep unit-tests-tempodb name short
2023-04-12 23:55:12 +05:30
Suraj NathandGitHub 6801c1bf75 Really fix VERSION in Drone Builds (#2319)
* Revert https://github.com/grafana/tempo/pull/2312

* Add bash in build-tempo-binaries Drone step

`tools/image-tag` script need bash and it was failing because
`golang:1.20-alpine` image used in build-tempo-binaries step
is missing bash

due to missing bash `./tools/image-tag` was failing with
`env: can't execute 'bash': No such file or directory` and
producing tempo binaries with missing version tag

Tested this locally by building tempo in `golang:1.20-alpine`
with bash, and it works.

* make drone
2023-04-10 14:05:24 +00:00