Skip to content

Releases: go-graphite/graphite-clickhouse

v0.14.0

16 Sep 10:43
16044e9
Compare
Choose a tag to compare

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

Full Changelog: v0.13.4...v0.14.0

v0.13.4

18 Nov 20:18
8a2a695
Compare
Choose a tag to compare

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

22 Oct 09:40
48404ba
Compare
Choose a tag to compare

Bugfix:

  • use TabSeparatedRaw format in all finders to avoid unnecessary excapes @presto53 @Felixoid

Improvements and fixes

24 Sep 09:10
93ea5bf
Compare
Choose a tag to compare

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

21 Jun 08:43
Compare
Choose a tag to compare

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

12 Oct 19:05
Compare
Choose a tag to compare

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 fix bufio.Scanner: token too long

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

v0.11.7

15 Jul 08:17
Compare
Choose a tag to compare

Bugfix

  • Fixed panic in /tags/autoComplete/tags

v0.11.6

14 Jul 10:37
Compare
Choose a tag to compare

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 and rollup-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

22 May 21:45
Compare
Choose a tag to compare

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. Use ALTER TABLE .. DELETE instead.

v0.8.5

11 Apr 14:10
ce82030
Compare
Choose a tag to compare

Features

  • New max-metrics-in-find-answer option

Bugfix

  • Added escaping of "underline" symbol in find queries to ClickHouse