Releases: trickstercache/trickster
Release list
Release v2.0.4 / 2026-07-03
Welcome to Trickster 2.0.4! 🎉
In this release, we:
- Fixed a defect in Time Series Merge ALBs where proxy-only data would cause the merge to fail and return a 502 response to the caller.
- Improved OTLP tracing integration by passing through more span data from downstream callers and incorporating additional span tags data describing how Trickster handled the request
- Improved error handling when multiple backends/shards are called and have a mix of successes and failures
- Updated dependencies
Run via docker
# via ghcr.io
docker run --name trickster -d -v /path/to/trickster.yaml:/etc/trickster/trickster.yaml -p 0.0.0.0:8480:8480 ghcr.io/trickstercache/trickster:2.0.4
# via docker.io
docker run --name trickster -d -v /path/to/trickster.yaml:/etc/trickster/trickster.yaml -p 0.0.0.0:8480:8480 docker.io/trickstercache/trickster:2.0.4Run via kubernetes/helm
helm install trickster oci://ghcr.io/trickstercache/charts/trickster --version '^2' --set image.tag="2.0.4"Note:
- The trickster chart version is managed separately from the Trickster version.
- The latest major version is 2.x, and supports a minimum Trickster version of 2.0.0 (beta3 or later).
For more information, see:
- Trying Out Trickster
- trickster's helm chart.
What's Changed
- fix: include OTLP service resource by @houyuwushang in #1038
- feat: add tracing attributes to proxy spans by @houyuwushang in #1039
- fix: propagate trace context to origins by @houyuwushang in #1042
- fix: merge proxy-only TSM responses by @houyuwushang in #1041
- fix: honor parent trace sampling by @houyuwushang in #1048
- refactor: keep user-router runtime state out of options by @houyuwushang in #1036
- fix(deltaproxycache): better handling of failed requests by @Elia-Renzoni in #989
Full Changelog: v2.0.3...v2.0.4
Release v2.0.3 / 2026-06-29
Welcome to Trickster 2.0.3! 🎉
In this release, we:
- improved ALB compatibility, including adding Time Series Merge support for
topkandbottomkPromQL aggregators - fixed a defect in Tracing configurations that would prevent some configs from being effective
- added additional test coverage
Run via docker
# via ghcr.io
docker run --name trickster -d -v /path/to/trickster.yaml:/etc/trickster/trickster.yaml -p 0.0.0.0:8480:8480 ghcr.io/trickstercache/trickster:2.0.3
# via docker.io
docker run --name trickster -d -v /path/to/trickster.yaml:/etc/trickster/trickster.yaml -p 0.0.0.0:8480:8480 docker.io/trickstercache/trickster:2.0.3Run via kubernetes/helm
helm install trickster oci://ghcr.io/trickstercache/charts/trickster --version '^2' --set image.tag="2.0.3"Note:
- The trickster chart version is managed separately from the Trickster version.
- The latest major version is 2.x, and supports a minimum Trickster version of 2.0.0 (beta3 or later).
For more information, see:
- Trying Out Trickster
- trickster's helm chart.
What's Changed
- test: use synctest for healthcheck timing by @houyuwushang in #1031
- fix: finalize topk and bottomk tsm results by @houyuwushang in #1035
- test: cover sharded query-range integration by @houyuwushang in #1033
- fix: [alb] expose localresponse via Handlers() so paths: overrides apply by @thinker0 in #1029
- fix: apply configured OTLP endpoint by @houyuwushang in #1037
New Contributors
- @houyuwushang made their first contribution in #1031
Full Changelog: v2.0.2...v2.0.3
Release v2.0.2 / 2026-06-24
Welcome to Trickster 2.0.2! 🎉
In this release, we:
- Added numerous performance and stability enhancements and bugfixes (see changelog below)
- Significantly increased test coverage
- Restored per-data point LRU cache eviction capability
- Improved Time Series Merge compatibility
- Added a new sanitized config endpoint for posting to issues/support
Run via docker
# via ghcr.io
docker run --name trickster -d -v /path/to/trickster.yaml:/etc/trickster/trickster.yaml -p 0.0.0.0:8480:8480 ghcr.io/trickstercache/trickster:2.0.2
# via docker.io
docker run --name trickster -d -v /path/to/trickster.yaml:/etc/trickster/trickster.yaml -p 0.0.0.0:8480:8480 docker.io/trickstercache/trickster:2.0.2Run via kubernetes/helm
helm install trickster oci://ghcr.io/trickstercache/charts/trickster --version '^2' --set image.tag="2.0.2"Note:
- The trickster chart version is managed separately from the Trickster version.
- The latest major version is 2.x, and supports a minimum Trickster version of 2.0.0 (beta3 or later).
For more information, see:
- Trying Out Trickster
- trickster's helm chart.
What's Changed
- chore(deps): bump github.com/redis/go-redis/v9 from 9.17.3 to 9.18.0 by @dependabot[bot] in #921
- chore(deps): bump github.com/alicebob/miniredis/v2 from 2.35.0 to 2.36.1 by @dependabot[bot] in #922
- fix: [lint] address new linter warnings by @crandles in #920
- chore: run go fix ./... by @crandles in #923
- chore: enable new linters & fix flaky test by @crandles in #924
- chore: extend developer dashboard; add k6 load test by @crandles in #926
- chore(deps): bump github.com/alicebob/miniredis/v2 from 2.36.1 to 2.37.0 by @dependabot[bot] in #931
- chore(deps): bump golang.org/x/net from 0.50.0 to 0.51.0 by @dependabot[bot] in #932
- perf: [proxy/engines] add singleflight to delta and object proxy caches by @crandles in #930
- fix: report singleflight de-duplicated calls as proxy-hit by @crandles in #933
- feat: widen DPC singleflight to include fast-forward and marshal by @crandles in #934
- chore: [proxy] remove named locker by @crandles in #935
- fix: [tls] handle CA-only and client-cert-only TLS configurations in Validate by @EduardoCusihuaman in #940
- fix: [proxy/engines] refactor and fix singleflight optimization by @crandles in #939
- test: [proxy/engines] increase coverage by @crandles in #941
- test: [backends/prometheus] increase coverage by @crandles in #943
- test: [timeseries] increase coverage by @crandles in #942
- fix: [proxy/engines] fix PCF deadlock edge case by @crandles in #944
- perf: [alb] optimize fanout mechanisms + fix race and edge cases by @crandles in #945
- ci: limit workflow cancellation to PRs, skip for main by @crandles in #946
- refactor: drop context.Context from alb pool & proxy listener structs by @crandles in #947
- fix: [proxy/engines] correct off-by-one byte ranges and handle ignored io.ReadAll errors by @crandles in #948
- chore(deps): bump google.golang.org/grpc from 1.78.0 to 1.79.3 by @dependabot[bot] in #951
- chore: improve error-level logging by @Elia-Renzoni in #952
- fix+perf: concurrency limiting, size cropper, and hot-path optimizations by @crandles in #953
- perf: hot-path optimizations for DPC, wire marshal, and dataset operations by @crandles in #954
- fix+perf: reaper capacity bug, encoder pooling, and cache-path optimizations by @crandles in #955
- feat: [alb/tsm] per-query merge strategy for ALB time-series merge by @crandles in #956
- test: [proxy/engines] validate kmiss occurrs when backend does not provide headers by @crandles in #962
- add AI guardrails and PR template by @jranson in #963
- docs: update maintainer term dates by @jranson in #964
- test: add simple integration test by @crandles in #857
- fix: include match[] in label endpoint cache keys by @crandles in #965
- refactor: [proxy/engines] proxyRequest field refactor + comments by @crandles in #966
- fix: [backends/clickhouse] support multi line queries by @crandles in #967
- test/fix: extend test wait to account for prometheus first scrape by @crandles in #968
- test/fix: expand integration test; ensure proxy supports POST RawQuery by @crandles in #969
- fix: [backends/prometheus] propagate captured headers in ALB transform path by @crandles in #970
- chore(deps): bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp from 1.42.0 to 1.43.0 by @dependabot[bot] in #971
- chore(deps): bump go.opentelemetry.io/otel/sdk from 1.42.0 to 1.43.0 by @dependabot[bot] in #972
- fix: tsm vector unmarshaling error by @jranson in #938
- test/fix: expand integration tests + misc defects by @crandles in #975
- fix: surface upstream read errors in DPC + add high-fanout ALB+TSM integration suite by @crandles in #978
- ci+fix: integration coverage, quality infrastructure, bug fixes across prometheus/clickhouse/merge layers by @crandles in #979
- docs: update clickhouse docs for Go SDK support by @crandles in #980
- fix: [proxy/engines] reset cacheStatus on DPC empty-body recovery; pin chunk test clock by @crandles in #986
- refactor: replace compression libraries by @Elia-Renzoni in #987
- feat: [prometheus] 3.x support by @crandles in #983
- fix: fortify health check status emits and reduce chatty logging by @jranson in #994
- fix: [alb/tsm] prom avg outer aggregation with POST by @jranson in #998
- fix: [alb/healthcheck/proxy] route only to live targets + ALB hardening sweep by @crandles in #997
- fix: [alb/healthcheck] nested alb pools report
ncinstead of available by @crandles in #1000 - chore: [docker] bump prometheus to 3.11.3 by @crandles in #995
- fix+refactor: [alb] hardening sweep + shared fanout primitive by @crandles in #1001
- fix: [integration] nonce histogram fidelity query to avoid cache hit by @crandles in #1002
- add sanitized config endpoint by @jranson in #1003
- [feat] Update config sanitizer (tracing & cache endpoints) by @jranson in #1004
- fix+refactor+test: [alb/cache/proxy] continued hardening sweep by @crandles in #1006
- fix+test: [alb] surface healthy_floor misconfigurations and degraded dispatch by @crandles in #1012
- test: expand unit test coverage by @jranson in #1026
- test: extend unit test coverage by @jranson in #1027
- fix: [engines] set Request.GetBody to support HTTP/2 GOAWAY retries by @thinker0 in #1020
- feat+perf: [alb/fanout,proxy/capture] loser-drain histogram + capture body presize by @crandles i...
Release v2.0.1 / 2026-02-21
Welcome to Trickster 2.0.1! 🎉
In this release, we:
- updated to Go 1.26, which provides better garbage collection and reduced memory usage
- improved speed and performance of the Memory Cache
- squashed several ALB bugs that could cause
502 Bad Gatewayresponses
Run via docker
# via ghcr.io
docker run --name trickster -d -v /path/to/trickster.yaml:/etc/trickster/trickster.yaml -p 0.0.0.0:8480:8480 ghcr.io/trickstercache/trickster:2.0.1
# via docker.io
docker run --name trickster -d -v /path/to/trickster.yaml:/etc/trickster/trickster.yaml -p 0.0.0.0:8480:8480 docker.io/trickstercache/trickster:2.0.1Run via kubernetes/helm
helm install trickster oci://ghcr.io/trickstercache/charts/trickster --version '^2' --set image.tag="2.0.1"Note:
- The trickster chart version is managed separately from the Trickster version.
- The latest major version is 2.x, and supports a minimum Trickster version of 2.0.0 (beta3 or later).
For more information, see:
- Trying Out Trickster
- trickster's helm chart.
What's Changed
- chore: Bump Go version to 1.26 by @crandles in #913
- ci: cancel in progress workflows (to same PR/branch) by @crandles in #914
- fix: [alb] allow alb merging to occur by @crandles in #916
- feat: [cache/memory] use ristretto as memory backend by @crandles in #917
- feat: [alb] add concurrency limit options by @crandles in #918
- retain pre-existing hc target status on config reload by @jranson in #919
Full Changelog: v2.0.0...v2.0.1
Release v2.0.0 / 2026-02-10
Welcome to Trickster 2.0! 🎉
We've published an all-inclusive list of everything that is new and changed from Trickster 1.x. Thanks to all 28 contributors who helped get this over the finish line. 🙏
Happy Accelerating!
Run via docker
# via ghcr.io
docker run --name trickster -d -v /path/to/trickster.yaml:/etc/trickster/trickster.yaml -p 0.0.0.0:8480:8480 ghcr.io/trickstercache/trickster:2.0.0
# via docker.io
docker run --name trickster -d -v /path/to/trickster.yaml:/etc/trickster/trickster.yaml -p 0.0.0.0:8480:8480 docker.io/trickstercache/trickster:2.0.0Run via kubernetes/helm
helm install trickster oci://ghcr.io/trickstercache/charts/trickster --version '^2' --set image.tag="2.0.0"Note:
- The trickster chart version is managed separately from the Trickster version.
- The latest major version is 2.x, and supports a minimum Trickster version of 2.0.0 (beta3 or later).
For more information, see:
- Trying Out Trickster
- trickster's helm chart.
Release v2.0.0-rc2 / 2025-12-18
Welcome to Trickster 2.0.0-rc2! 🎉
What's Changed
- feat: we've added back the
callerfield in log output, which provides the exact file and line of code in the codebase that called the log event. - feat: the
/trickster/confighttp endpoint no longer shows irrelevant cache sections (e.g., the default redis configs if it's a memory cache) - perf: faster startup when many health checks are configured
- bugfix: pprof http endpoint was not actually routing
- perf: health check agent is faster w/ increased test coverage
- sec: concurrency limits in caching layer and in backend
- new
MaxConcurrentConnsbackend configuration (see example usage)
- new
- perf: leaner Time Series cropping algorithm
- perf: leaner ALB mechanism handlers
fgr,fr,nlm, andtsm
Full Changelog: v2.0.0-rc1...v2.0.0-rc2
Release v2.0.0-rc1 / 2025-12-09
Welcome to Trickster v2.0 Release Candidate 1! 🎉
In This Release
Fixes
- fixed several panics with Rules
- NOTE: Rules configuration has changed to use a yaml sequence instead of a map for rule cases
- fixed custom Path configs not working
- NOTE: Backend Paths configuration has changed to use a yaml sequence instead of a map for custom paths
- fixed config reload API/Hup not effectual
- improved ALB performance and reliability
- improved Health Checking reliability + more robust status page
Features
- new Request Body Size Limiter configuration
- new Redis configuration features around Authentication and TLS
- New Authenticator feature
See Everything new in Trickster 2.0 here.
New Contributors
- @Elia-Renzoni made their first contribution in #865. Welcome to the project! ⭐️ 🚀
Full Changelog: v2.0.0-beta3...v2.0.0-rc1
Release v2.0.0-beta3 / 2025-05-27
And we are back. At long last, welcome to Trickster 2.0 Beta 3! Finally! 🎉
Trickster is now better than ever and even faster. 🚀
This release is the result of a massive, monthslong overhaul, upgrade and modernization of the entire Trickster project. We've eliminated over 70 data race conditions, a bunch of panics and a few deadlocks; sped up literally everything through refactors; and improved compatibility with InfluxDB and ClickHouse - all while adding dozens of new features. The What's New in Trickster 2.0 page has an exhaustive list of all the stuff we've crammed into Beta 3. We also have refreshed the roadmap, so you can see where things are headed over the course of the year.
We'd love for you to please check out the docs, try out Beta3 and report any issues you find. On that note, welcome to new contributors @trumant and @tonychoe.
Finally, a very special shoutout to maintainer @crandles for dedicating countless nights and weekends to get this release across the finish line. 🙏
Release v1.1.5 / 2021-02-04
Release v1.1.4 / 2021-02-01
This release provides various performance enhancements and bug fixes:
-
caching performance and hit rate improvements for InfluxDB backends (#522)
-
more verbose debug logging on upstream requests (#525)
-
ensure formatted times (e.g., outputting headers and in testing) use a UTC-localized time object (#528)
-
performance enhancement to locks package and tests to improve performance under heady load (#517, #526)
-
typographical errors in docker-compose demo (#530)
-
update dependency versions:
- golang/snappy -> v0.0.2
- influxdata/influxdb -> 1.8.4
- promethues/client_golang -> 1.9.0
- prometheus/common -> 0.15.0
- tinylinb/msgp -> 1.1.5
- go.opentelemetry.io/* -> 0.16.0
We wish to thank and recognize these first-time contributors for assisting with this release: @samuelgmartinez and @ntk148v