Welcome to Trickster 2.0.5! 🎉
In this release, we:
- added support for more aggregation operators in Time Series Merge:
limitk,limit_ratio,stddev,stdvarandquantileandsort - support OTLP tracing protocol selection between http (default) and gRPC
- added max_query_range config to time series backends
- support TSM Replica Groups for indicating HA replicas vs disjoint merge members
- added a new listeners section to the config to define all frontend listeners in one place. You can now configure multiple frontend listener ports and map each backend to a listener. Existing listener configs in
mgmtandfrontendwill work with a deprecation warning. - incorporated various other performance improvements and bug fixes
- improved handling of merge errors
Thanks to:
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.5
# 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.5Run via kubernetes/helm
helm install trickster oci://ghcr.io/trickstercache/charts/trickster --version '^2' --set image.tag="2.0.5"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).
- Support customizable CORS configs per-backend and backend path.
For more information, see:
- Trying Out Trickster
- trickster's helm chart.
What's Changed
- docs: update OTLP tracing examples by @houyuwushang in #1049
- feat: support OTLP tracing protocol selection by @houyuwushang in #1050
- refactor: remove unused tsm rr fallback by @houyuwushang in #1054
- docs: document X-Trickster-Result header by @houyuwushang in #1055
- fix: close demand probe response bodies by @houyuwushang in #1057
- fix: return 500 on internal failures by @jranson in #1053
- fix: ensure host header promotion works consistently by @jranson in #1058
- fix: batch high-cardinality tsm rank merges by @houyuwushang in #1060
- test: modernize benchmarks with b.Loop by @houyuwushang in #1065
- fix: merge aggregations through prometheus sort wrappers by @houyuwushang in #1064
- feat: configure backend CORS policies by @houyuwushang in #1066
- fix: enable TSM context cancellation by @jranson in #1062
- test: remove healthcheck wall-clock waits by @houyuwushang in #1074
- refactor: introduce TSM merge plans by @houyuwushang in #1075
- cleanup string literals + reorganize by @jranson in #1076
- test: update Prometheus SDK integration calls by @houyuwushang in #1085
- feat: support limit_ratio in ALB TSM by @houyuwushang in #1077
- sec+feat: harden config endpoint and add listeners map by @jranson in #1086
- support prom scalars in ALB Time Series Merge by @jranson in #1082
- fix(routing): swap middleware wrapping order of WithResourcesContext and LimitQueryRange by @thinker0 in #1078
- feat(alb,proxy): enforce max_query_range limit on ALB TSM scatter/gather entry point by @thinker0 in #1079
- chore: standardize on timeconv.Duration across options (issue #1089) by @thinker0 in #1090
- fix: preserve duration parsing compatibility by @houyuwushang in #1092
- feat: support TSM HA, Federation and Hybrid via Replica Groups by @jranson in #1088
- chore: integration cleanup for linter/coverage by @jranson in #1093
- tests: increase test coverage in least-covered packages by @jranson in #1094
- tests: add more unit tests by @jranson in #1095
- feat: support pooled stddev and stdvar in ALB TSM by @houyuwushang in #1080
- bugfix: retain errorType after replica group merge by @jranson in #1096
- feat: support exact quantile in ALB TSM by @houyuwushang in #1083
- tests: increase daemon test coverage by @jranson in #1097
- feat: support global PromQL limitk in ALB TSM by @houyuwushang in #1084
Full Changelog: v2.0.4...v2.0.5