Releases: go-graphite/graphite-clickhouse
Releases · go-graphite/graphite-clickhouse
v0.14.0
What's Changed
- Prometheus 2.40.2 by @lomik in #211
- Make Prometheus lookback-delta configurable. by @lexx-bright in #214
- Prometheus series fixes by @lexx-bright in #215
- Implement queries limiter by @msaf1980 in #217
- Do active healthcheck for /alive by @msaf1980 in #222
- limiter: enter limiter before query (for prevent overload on multi-target requests) by @msaf1980 in #224
- [WP] Merge finder request in one if possible. by @msaf1980 in #223
- limiter: fix get username by @msaf1980 in #226
- cache: change mem cache implementation (perfomance) by @msaf1980 in #228
- [WP] merge multi targets in one requests by @msaf1980 in #225
- healthcheck: fix alive healthcheck error handling by @msaf1980 in #229
- finder: restrict seriesByTag (require minimum non-wildcarded eq arguments) by @msaf1980 in #230
- finder: refactoring for restrict gready autocomplete by @msaf1980 in #234
- config: fix generate default toml config by @lordvidex in #237
- return empty series if metrics exist in index and has no points by @lordvidex in #240
- feat: Add mTLS connection to clickhouse by @lordvidex in #241
- Optimize tagged finder when tagged-use-daily=false by @lexx-bright in #242
- limiter: adaptive limiter (based on load average) by @msaf1980 in #233
- Add Remote Read Server Support by @Hedius in #245
- fix: prometheus test/doc cleanup by @msaf1980 in #252
- feat(sd): default namespace is graphite, reduce weight if overload by @msaf1980 in #253
- fix(finder): fix seriesByTag arg t=~^q by @msaf1980 in #256
- Tags uploading optimization by @tsukanov-as in #257
- feat(config): add -exact-config command line argument by @mchrome in #262
- index.json: Properly escape json strings. by @bzed in #258
- sd: allow to tune degraded point by @msaf1980 in #264
- Update Prometheus to v.0.51.1 / v2.51.1 by @Hedius in #269
- Fixed incorrect finder behaviour with extra-prefix specified by @lexx-bright in #243
- tagger: add two feature-flags that change seriesByTag behavior by @mchrome in #266
- feat(query): substitute aggregation if request contains consolidateBy by @mchrome in #273
- rollup: split plain/tagged rules by @msaf1980 in #276
- Make terms with equality and empty values in seriesByTag count as if they have a wildcard when using use-carbon-behaviour by @mchrome in #283
- refactor: change returned status code and description in clickhouse error handling by @AleksandrMatsko in #286
New Contributors
- @lordvidex made their first contribution in #237
- @Hedius made their first contribution in #245
- @almostinf made their first contribution in #259
- @tsukanov-as made their first contribution in #257
- @mchrome made their first contribution in #262
- @Tetrergeru made their first contribution in #280
- @AleksandrMatsko made their first contribution in #286
Full Changelog: v0.13.4...v0.14.0
v0.13.4
Features:
- allow to store Date in UTC (PR #190)
- tagged search tune (allow to set cost for tags to be less prefered) (PR #179)
- add health status endpoint for monitoring by @MalKeshar (PR #185)
- allow to enable/disable filtering tagged-table by date by @lexx-bright (PR #187)
- find cache (PR #176)
- requests metrics (PR #194)
- multiply data timeouts/urls for render (for short/long range queries) (PR #181)
Bug fixes:
- fix step calculation on multitarget render query
- fix missing results on day start (on some tomezones due to inconsistence day filter with carbon-clickhouse) (PR #190)
- fix for panic on empty seriesByTag()
Security fixes:
- update github.com/gogo/protobuf from 1.0.0 to 1.3.2
Improvements:
- improve logging (log carbonapi uuid and custom request headers) (PR #175)
- configurable rollup update interval when rollup-conf set to "auto" by @lexx-bright (PR #186)
Version 0.13.2
Improvements and fixes
Go v1.14 is dropped.
Fixes:
- Use proper config for carbonlink timeout
- Fix prometheus timeframe boundaries
Building improvements:
- Use static build
- Update logging config documentation
- Auto-pushing packages to packagecloud
Version 0.13.0
Changes since v0.12.0:
Features:
- Use ClickHouse external data to pass metric names
- Debugging:
- External data
- Add debug logging for each pb3 target
- Add debug curl command for external data to logs
- Add debug protobuf output
- Add debug JSON output
- Create dedicated documentation for debugging
- Pass proper function name to pb3 response
Improvements:
- Process
$
in metric names - Improve logging:
- All handlers have a proper name
- Log X-Ctx-Carbonapi-Uuid header
- Log ClickHouse query summary
- Use X-Gch-Request-Id globally for all requests
- Config:
- Add config parameter to limit metrics per target in requests
- Reversed or direct index search tuning
- DEPRECATION: tree-table is deprecated, consider migration to the index table
- DEPRECATION: single
[logging]
should be replaced by[[logging]]
- DEPRECATION: data-table parameter in [clickhouse] is deprecated; use [[data-table]]
- Check if TaggedTable is set in config before process autocomplete
- Process X-Real-Ip and X-Forwarded-For
- Fix possible XSS, overflow, and int parsing after CodeQL
- Add curly braces expansion to tags, thanks to @msaf1980
- Improve errors handling, thanks to @msaf1980
- Add tuning for reversed index search, thanks to @msaf1980 and @Felixoid
Bug fixes:
- Make data fetching inclusive for
until
parameter - Fix step calculation, thanks to @mrodikov
- Use 60 seconds as the default step if none provided in prometheus API, thanks to Oleg Izgagin
- Fix autocomplete for tags containing
=
in values, thanks to @Hipska
Refactoring:
- Rework /render handler almost completely
- Migrate from BurntSushi/toml to pelletier/go-toml
Build and infrastructure:
- Use github actions instead of Travic CI
- Check the config documentation is in the actual state
- Use codeql analysis
- Improve code documentation
- Drop x86 packages, add arm64
- Test all non-vendor packages in the project
- Create a proper root structure in deploy/
- Add logrotate config to packages
- Save nightly deb and rpm packages as artifacts for each commit
Version 0.12.0
Changes since v.0.11.7
Features
- Add
memory-return-interval
option - Decrease the amount of transferred data with an aggregation of values and timestamps by Path
- Add
noprom
tag to make prometheus dependency optional - Add carbonapi_v3_pb protobuf format (carbonapi v0.14.1 is required)
- Add an optional aggregation on ClickHouse side, see wiki
- Increase
scanner.Buffer
on demand to fixbufio.Scanner: token too long
- Increase
Bugfix
- Fix metric finder content type for
protobuf
- Remove unused escape functions
- Sort labels with name, labels beginning with a capital letter do not work in aggregation functions
- Allow using
graphite..inner.data
as rollup table - Fix broken deb-compression fpm argument
- Use the same start/stop/step logic as in graphite-web
Improvements
- Upload packages to https://packagecloud.io/go-graphite/
- Log ClickHouse query_id
- Always build the binary in Makefile
- Use go.mod to maintain vendor directory
- Moderate data fetching refactoring
- Improve logging and answer 500 on marshaling errors
- Check 5xx errors from ch-proxy
- Add X-Gch-Request-ID response header
- Disable /debug/pprof on default listener
- Add config parameter for
pprof-listen
string
- Add config parameter for
v0.11.7
v0.11.6
Changes since v0.9.0
Features
- Built-in Prometheus 2.11.1 (
/graph
UI and/api/v1/*
methods) - Plain graphite series are accessible from Prometheus API using
graphite{target="graphite wildcard"}
selector. Parts of metric name can be used as labels:graphite{target="graphite wildcard", node1="hostname"}
- Added new options
rollup-default-precision
androllup-default-functions
- Added logging of the Grafana Dashboard ID from http headers to the access log and ClickHouse query_log (in http_user_agent)
Bugfix
- Much of the code is rewritten. Fixed old bugs and added new ones.
v0.9.0
Features
- New index table
- Combined rollup rules are supported
- Magic word
auto
can be used instead of file name for automatic select rollup rules from ClickHouse - New location
/debug/config
with current config and actual rollup rules - Column
Deleted
is no longer used. UseALTER TABLE .. DELETE
instead.