Releases: timescale/promscale
0.17.0
At a high level, this release contains
- Support for PostgreSQL 15
- Improvements to caching
- Improvements to vacuum engine
Requirements
PostgreSQL: 12.x
, 13.x
, 14.x
, 15.x
TimescaleDB: >= 2.7.0
single-node (multi-node is not supported in this release)
Promscale Database Extension: >=0.8.0
Promscale version compatibility matrix
Connector | Extension | TSDB (single-node) | Postgres |
---|---|---|---|
0.17.x | 0.8.x | 2.9.1 and above | 12.x, 13.x, 14.x, 15.x |
0.16.x | 0.7.x | 2.7.0 and above | 12.x, 13.x, 14.x |
0.15.x | 0.7.x | 2.7.0 and above | 12.x, 13.x, 14.x |
Upgrade notes
- Before starting the upgrade please make sure that you have deployed version
0.8
of the Promscale extension. You will also need TimescaleDB extension version2.7.0
or above available. Then stop all Promscale Connector instances, upgrade the first one and restart it. The migration will happen automatically. Once the migration is completed, upgrade the remaining Promscale instances and restart them if needed.
Added
- Add support for PostgreSQL 15
- Alerts from Promscale monitoring mixin are grouped also by namespace label [#1714]
- Added a new family of metrics tracking database maintenance jobs durations and failures [#1745]
- Allow config options in the file to be set as yaml mappings [#1737]
- Add
startup.dataset
option in the config file for the dataset
configuration. Supersedesstartup.dataset.config
which accepts a string
instead of a mapping [#1737] - Add an alert to notify about duplicate sample/metric ingestion. [#1688]
- Add histogram to track the number of samples/metadata/span sent per request [#1767]
Changed
- Reduced the verbosity of the logs emitted by the vacuum engine [#1715]
- The vacuum engine now throttles the number of workers used based on the oldest txid from
the chunks needing freezing [#1761] - In order to reduce the overall load on the system, some internal database
metrics won't be collected as often as they used to. None of the affected
metrics are expected to change faster than its new collection interval [#1793] - Aggregate metrics at a global level to avoid legend pollution in dashboards [#1800]
- The vacuum engine now looks for compressed chunks missing stats and vacuums these too [#1804]
Fixed
- Fixing the query behind chunks_uncompressed. The new definition should
change the baseline value [#1794]
Thanks
We'd like to thank the following users for their contribution to this release:
Changelog
- a7a8f7c - Adding a jitter to the "slow metrics" update starting time - Adjusting alerts relying on promscale_sql_database_chunks_metrics_uncompressed_count
- 84b6775 Add DeepCopy method to dataset.Config
- 8173f2f Add SPM feature in docker-compose
- 0b5196c Add alert to notify about duplicate sample/metric ingestion
- 9df822a Add deprecation warning for
startup.dataset.config
- b846443 Add heatmap to visualize samples & spans per req
- f78b2de Add histogram to track number samples/metadata/span sent per request
- 0253640 Add Prometheus metrics to the vacuum engine
- 1279d1c Add some details about Jaeger certification
- 85c784e Add support for PG15
- e56849e Add the troubleshooting guide
- 22b5792 Add the troubleshooting guide
- 3b9edc6 Aggregate metrics at global level to avoid legend pollution in dashboards
- 19d8e3e Alert when PG shared_buffers is smaller than open chunks
- e08049e Allow config options in file as yaml mappings
- 6b9a20b Avoid using
total
suffix for gauge metrics and apply rate for counters - 73ec0bc Bump series cache default size
- b5a2566 Change log level in vacuum engine
- fee0e1f Collecting job stats for each maintenance job type and signal. - A test has been moved to the extension repository and another test was adjusted to not over-specify the number of jobs in a metrics test. - Two new families of metrics were added to the dashboard - Histograms are now supported in database-reported metrics
- a23059e Fix Docker compose example
- 2abb1d5 Fix formatting changes
- aeb6a5e Fix incorrect histogram quantile in Promscale dashboard
- ed2303c Fix jaeger env vars in docker-compose.yaml
- 8578fe0 Fix series cache growth
- 89bbdaa Fix typo (?) in MaintenanceJobRunningTooLong runbook
- 03c01c4 Fixing Gosec complaints
- e069098 Fixing the query behind chunks_uncompressed metric by making it rely on a function used by the maintenance jobs.
- 08abf8b Further changes based on feedback
- 19dc42d Grow inverted labels cache if needed
- 114f965 Include Jaeger ingest metrics in Promscale dashboard
- 94e68c9 Increase eviction threshold
- 92ad453 Introuducing a new setting allowing to configure custom polling intervals for individual db metric queries. The actual polling still happens on
evalInterval
, but this setting can by used to make heavier queries run less often. - 6b96a7d Merge branch 'master' into include-ns-in-alerts
- 8a6b7b8 Merge pull request #1714 from paulfantom/include-ns-in-alerts
- 168e988 Merge pull request #1747 from paulfantom/dashboard-improvements
- 6c160d0 Move test to extension
- 41360b6 Move tracegen to extension repo
- 148f25d Prepare for 0.17.0 release
- 1d7be7c Prepare for the next dev cycle
- 97a6c13 Preparing for 0.8.0 extension release
- 08ad0cc Promscale dashboard: Use rate in
Cache hit ratio
panels. - 675ebd0 Reduce cache size in E2E tests b/c of GH runner memory constraints
- 507e376 Remove TestMetricView
- 2ff573e Remove info_view golden file test
- 3349550 Removing 16 bytes alignment for cache elements
- 850151c Removing tests that are failing upon PGX upgrade and are duplicates of tests from promscale_extension.
- b3c030d Rename err label to reason
- 6b45872 Replace deprecated github actions '::set-output' command
- 6a2579e Revert code to match with v2.39.2 Prometheus release.
- 9ce3f73 Since query timeout and cancel use the same error code we need an additional metric label to track what happened. This should also help with having better alerting control.
- 753aed3 Stop counting idle processes in metrics
- b3e1ea9 Tell renovate about golang versions in Dockerfiles
- ac1cf99 Throttle vacuum workers based on chunk age
- 0a01dd2 Track metrics per workload in vacuum engine
- f5255ab Update CODEOWNERS
- c6e66d0 Update PromQL till Sept 30, 2022
- fde61c9 Update architecture to reflect our Jaeger support
- d631066 Update dataset config migration guide
- 4c29693 Update dependency golang to v1.19.3
- d0bd0b1 Update docker-compose.yaml
- dd24506 Update github actions
- ca1ad91 Update goreleaser/goreleaser-action action to v4
- fca2794 Update pkg/vacuum/vacuum.go
- 15c0283 Update pkg/vacuum/vacuum.go
- 93ed639 Vacuum compressed chunks missing stats
- 7081762 docs/mixin reduce flakiness of PromscaleIngestHighDataDuplication by looking at larger window
- c7738f1 docs/mixin/dashboards: fix hidden panels and stop requiring DS variable
- fc92099 docs/mixin: PromscaleStorageHighLatency alert should not include exec method
- e8830ab docs/mixin: add variables to Promscale dashboard
- 84a6bd1 docs/mixin: adjust linter as offending metrics were removed
- ad5118a docs/mixin: adjust minimum step for range queries
- cb580cd docs/mixin: fix exclusion rules
- da6b3c9 docs/mixin: group by namespace
- c3ad7d3 docs/mixin: humanize values in alerts description
- 07fc3b8 docs/mixin: improve Promscale dashboard
- e416b13 docs/mixin: simplify PromscaleStorageHighErrorRate alert
- 840b394 docs/mixin: split query error high alert by handler and use different threshold for query_range
- 16eee06 fix docker-compose
- 4546827 fix docker-compose (fix CI)
- 260db96 refactor: unify promdata proto struct recycle
0.16.0
At a high level, this release contains
Promscale as a Jaeger-certified backend, performance improvements, and other bug fixes.
Requirements
PostgreSQL: 12.x
, 13.x
, 14.x
TimescaleDB: >= 2.7.0
single-node (multi-node is not supported in this release)
Promscale Database Extension: >=0.7.0
Upgrade notes
- Before starting the upgrade, please ensure that you have deployed version
0.7.0
of the Promscale extension. You will also need TimescaleDB extension version2.7.0
or above available. Then stop all Promscale Connector instances, upgrade the first one and restart it. The migration will happen automatically. Once the migration is completed, upgrade the remaining Promscale instances and restart them if needed.
Improvements
- Jaeger certification. Promscale is now a certified Jaeger backend and it passes all Jaeger storage backend tests. [#1621]
- Improve the performance of trace id queries made from the Jaeger UI. [#1626]
Fixes
- Fix queries returning no references/links when querying traces ingested using the native Jaeger API. [#1641]
- Fix traces queries returning duplicated events and links (or logs and references in Jaeger) for traces with more than one event and one link. [#1678]
- Fix incorrect reference types when retrieving Jaeger traces with multiple parent references. [#1681]
- Fix incorrect population of span kind field in jaeger to get operations response.
Changelog
- bdc733e .github: clean up code ownership
- de48961 Add regex based skip list for jager integration tests
- 045d01d Apply missing binary decode operation for batch.Process.Tags
- 765ea4c Clone test spans before passing to SpanWriter
- 8240a5b Fix
FindTraces/Trace_spans_over_multiple_indices
- 6e09316 Fix incorrect population of span kind field in jaeger getOperations response
- f5fbaa1 Fix performance of trace id query
- d0fc6f2 Fix retrieve traces query data inconsistencies
- 10379d2 Instruction to use thanos-remote-read adapter for migrating data from Thanos.
- a6d486c Optimize trace-id-time subquery
- 72c29aa Prepare for 0.16.0 release
- 7a2a4d1 Prepare for the 0.16.0 development cycle
- 7831177 Preserve Jaeger RefType when storing/retrieving traces.
- b98967c Refactor trace queries
- e040f54 Refactor upgrade tests
- 4dad1c0 Remove last bit of helm pieces
- 7326873 Reuse CompareSliceOfTraces from jaeger_integration_tests package
- ccde8ac Run Jaeger storage integration tests in separate GH actions job
- d5a6eed Translate jaeger ref to otel span link with meta attributes
- 79651c6 Use jaeger storage integration test fixtures from upstream
0.15.0
At a high-level, this release contains
Bug fixes and performance improvements in tracing(Jaeger & OTLP) subsystem.
Requirements
PostgreSQL: 12.x
, 13.x
, 14.x
TimescaleDB: >= 2.7.0
single-node (multi-node is not supported in this release)
Promscale Database Extension: >=0.7.0
Upgrade notes
- Before starting the upgrade please make sure that you have deployed version
0.7.0
of the Promscale extension. You will also need TimescaleDB extension version2.7.0
or above available. Then stop all Promscale Connector instances, upgrade the first one and restart it. The migration will happen automatically. Once the migration is completed, upgrade the remaining Promscale instances and restart them if needed.
Improvements
- prom-migrator: Support for passing custom HTTP headers via command line arguments for both
reader and writer [#1020] - Propagate the context from received HTTP read requests downstream to database
requests [#1205] - Add cmd flag
web.auth.ignore-path
to skip http paths from authentication [#1637] - Add cmd flag
tracing.streaming-span-writer
to enable/disable streaming span writer. It is enabled by default. [#1633]. - Enable
tracing.async-acks
by default [#1633]. - Sizes of maintenance worker backlogs exposed as database metrics on the Promscale dashboard [#1634]
- Added a vacuum engine that detects and vacuums/freezes compressed chunks [#1648]
- Add pool of database connections for maintenance jobs e.g. telemetry [#1657]
- Metrics for long-running statements and locks originating from maintenance jobs. [#1661]
Changes
- Log throughput in the same line for samples, spans and metric metadata [#1643]
- The
chunks_created
metrics was removed. [#1634] - Stop logging as an error grpc NotFound and Canceled status codes [#1645]
- TimescaleDB is now mandatory [#1660].
- When querying for Jaeger tags with binary values the binary data will be
returned instead of the base64 representation of the string [#1649]. - Reuse ingestion temp tables across batches [#1679]
Fixes
- Do not collect telemetry if
timescaledb.telemetry_level=off
[#1612] - Fix broken cache eviction in clockcache [#1603]
- Possible goroutine leak due to unbuffered channel in select block [#1604]
- Wrap extension upgrades in an explicit transaction [#1665]
Changelog
- 65eedbd - Adding a batch of metrics covering long running statements originating from maintenance jobs. - Adding lock-mode metrics for the maintenance jobs - Adding these metrics to the dashboard.
- e11ef92 Add Bug/Feature templates
- b60be95 Add a database connection pool for maintenance jobs
- a874bcd Add an option to disable streaming span writer
- ad4f88a Add cmd flag to skip http paths from authentication
- 9764fa7 Add reader and writer custom HTTP headers flags
- 4b61d1f Add required parameter to
config_maintenance_jobs
examples - 4071810 Add test for upgrades with no compression
- d3fbb74 Add vacuum engine
- 1c21f72 Adding a changelog entry
- 42b3f08 Adding a delayed compression metric for metrics data.
- 68c6ab6 Adding a labels to the alert description
- d662c8a Adding new metrics to the dashboard.
- db1463f Allow using version 0.7.0 of the extension
- 0f12a84 Bump jaeger to 1.38.0
- 06507b0 Change from prom/prometheust main to latest in e2e
- bb2d0ae Compare for context.Canceled error with
Is
- 96f1626 Dashboard improvements and adding alerts.
- 4aa9a58 Do not log gRPC NotFound and Canceled status code
- 3d8b901 Enable tracing.async-acks by default
- 8f47bcd Filter by label key before Exists() for LabelValues() in multi-tenancy mode.
- 8ccdc0f Fix broken cache eviction in clockcache
- 28276ba Fix event tag correctness
- 47f0a96 Fix possible goroutine leak
- d486d58 Fix upgrade test by cleanly stopping test containers
- efec5ae Fix: Do not collect telemetry if set to
off
- b0a862b Fix:
0 samples/sec
in throughput by logging metric metadata throughput. - 06ff2c6 Format advisory lock ID as decimal number
- 6ec1131 Introducing metrics for to-be-compressed and to-be-deleted chunks.
- 76a7868 Make TimescaleDB usage mandatory
- b6c4e6c Move auth functionality into separate package
- 546529f Move from deprecated ioutil to io and os
- 1d4d7a8 Optimize label queries with tenants
- a91f428 Optimize the label name query
- 6823dd1 Order the label name and value queries
- c80f69c Prepare for the 0.15.0 release
- 70f7365 Prepare for the next development cycle
- 1151221 Propagate context from query requests
- 5dc588f Remove
use-timescaledb
option from tests - 361b96c Remove
withTimescaleDB
option from dataset configuration - 024c34b Remove helm chart left over references
- b8bced7 Remove references to 'Vanilla Postgres'
- 2441ed4 Removing chunks_created metrics because it's not computed correctly and thus not particularly useful.
- 7e76605 Reuse ingestion temp tables across batches
- 8ad5f95 Revert "Change from prom/prometheust main to latest in e2e"
- 8c8b441 Rework ingest pipeline documentation
- 6f89768 Run timescaledb-tune with the promscale profile
- ce43749 Skip context.Canceled error in grpc logging interceptors
- 04d2664 Support for Jaeger tags with binary value
- 11e3e1f Support for coalescing multiple metrics into a single SQL query
- 3b2efdc Track errors for async trace ingest
- 622a499 Update bug_report.md
- 584c4a1 Update bug_report.md
- b4de059 Update feature_request.md
- efe8eb5 Wrap extension upgrades in a transaction
- c93d12d demo: grpc based remote storage for jaeger collector
- 36ec07f review feedback
0.14.0
At a high-level, this release contains
- Support for native Jaeger gRPC interface to ingest traces. Now you can send traces from Jaeger collector/agent/SDK by configuring the endpoint as
http://promscale:9202
- Improvements to querying (PromQL and Traces)
Requirements
PostgreSQL: 12.x
, 13.x
, 14.x
TimescaleDB: >= 2.7.0
single-node (multi-node is not supported in this release)
Promscale Database Extension: >=0.6
Upgrade notes
- Before starting the upgrade please make sure that you have deployed version
0.6
of the Promscale extension. You will also need TimescaleDB extension version2.7.0
or above available. Then stop all Promscale Connector instances, upgrade the first one and restart it. The migration will happen automatically. Once the migration is completed, upgrade the remaining Promscale instances and restart them if needed.
Improvements
- Implement Jaeger gRPC remote storage writer interface [#1543]
- Batching for traces to improve ingest performance along with CLI flags for better control [#1554]
- Helm chart now ships a JSON Schema for imposing a structure of the
values.yaml
file [#1551]
Changes
- Helm chart code was migrated to https://github.com/timescale/helm-charts [#1562]
Deprecations
- Deprecate flag
-tracing.otlp.server-address
in favour of-tracing.grpc.server-address
[#1588]
Fixes
- Make Jaeger Event queryable using name and tags [#1553]
- Reset inverted labels cache on epoch change [#1561]
- Error
column "exemplar_label_values" does not exist (SQLSTATE 42703)
on ingesting exemplars [#1574] /api/v1/labels
&/api/v1/label/{name}/values
to respond with labels of authorized tenants only [#1577]
Thanks
- We'd like to thank @alingse for his pull request [#1480]
- We'd like to thank @raphaelzoellner for his pull request [#1524]
Changelog
- a92e15e Add BenchmarkCacheFalseSharing
- 162317b Add E2E tests for
querier.LabelNames()
in multi-tenancy. - 48cde7c Add batching for traces
- 51b6326 Add benchmark to test varying ingestion load
- ca91e2f Add e2e test for Jaeger gRPC based remote store
- 7ae4fb2 Add missing steps found after 0.13.0 release
- ccbc431 Add preserveConnectionSecret value to allow to disable the preservation of the connection user and password on a helm upgrade
- 246eff3 Add release checklist using GH issue template
- d1a8962 Add support for running and comparing benchmarks in CI.
- e7f16a8 Adds support for benchmarking new series creation.
- bf2a736 Adjust Promscale extension version range Promscale requires
_ps_trace.text_matches
function introduced in extension version 0.6.0 - a270ffd Allow using version 0.6.0 of the Promscale extension
- 0e9c66a Disable synchronous_commit by default for writer connections
- 60062e0 Ensure we pin the container image of Promscale to an actual version - Change how the container image information is structures in values.yaml - Take the default container image tag from Chart.yaml, but allow override. - Fix github actions pipeline
- 6e3e81e Expand the reminder to link issues to PRs
- 3ad54a6 Fix
/api/v1/label/{name}/values
API to respond with authorized tenants only. - aef1d99 Fix
/api/v1/labels
: respond with labels of authorized tenants only when in multi-tenancy mode. - 68a59b6 Fix exemplar ingestion due to conflicting temporary tables.
- 1c9f929 Fix tag matching correctness and optimization
- 552242e Fix upgrade test by pinning to timescaledb 2.7.1
- 2922338 Hide PR template instructions from published PR
- 85e3146 Implement Jaeger gRPC remote storage writer interface
- 8cda625 Make Jaeger Event queryable using name and tags
- 50bd2ed Merge pull request #1519 from timescale/renovate/docker-compose
- 9a6e2d1 Merge pull request #1525 from nhudson/helm_pin_version
- e40eb9b Merge pull request #1559 from nhudson/lock_service_account
- 6a0bf30 Prepare for the 0.14.0 development cycle
- 80547c3 Prepare for the 0.14.0 release.
- 4e8054e Prometheus metrics has to be registered after all services are added
- f153d24 Remove multinode e2e tests from the e2e target
- 23655d9 Remove trace_delete_test
- 6ffd6c6 Rename CLI flag to control GRPC server used for Jaeger and OTEL traces New flag name:
tracing.grpc.server-address
- 62715e6 Rename ingestor.Ingest -> ingestor.IngestMetrics
- ac265a8 Rename ingestor.WriteSeries -> ingestor.PopulateOrCreateSeries
- 6412ef4 Rename insert_ctx.go to write_request_pool.go
- c267920 Rename jaeger query => store
- 645fcb9 Reset inverted labels cache on epoch change
- cf6e399 Run Benchmarks only if
action:benchmarks
label is applied. - 4152f3a Use pg12-ts2.7-latest tag for 0.13.0 to 0.14.0-dev0 upgrade test
- 5a3a365 Use test table in Trace Ingestion tests
- a6c3099 VictoriaMetrics doesn't support remote read
- 9c1653a deploy/helm-chart: add schema for input validation
- 9b27bd4 deploy: move promscale helm chart to timescale/helm-charts repo
- 6e0be57 fix pass []any as any in
logQueryStats
- ca8e187 set automountServiceAccountToken to false for Promscale deployment
- e64dd6e upgrade pgx dependencies
0.13.0
At a high level, this release
- Improves metric ingestion by using COPY to get better performance [#1462]
- Introduces separate connection pools for reader and writer [#1451]
Requirements
- PostgreSQL:
12.x
,13.x
,14.x
. - TimescaleDB:
>= 2.6.1
single-node (multi-node is not supported in this release) - Promscale Database Extension:
0.5.4
.
Upgrade notes
- Before starting the upgrade please make sure that you have deployed version
0.5.4
of the Promscale extension. You will also need TimescaleDB extension version2.6.1
or above available. Then stop all Promscale Connector instances, upgrade the first one and restart it. The migration will happen automatically. Once the migration is completed, upgrade the remaining Promscale instances and restart them if needed.
Improvements
- Support for glob in rule_files [#1443]
Fixes
- Refine check for existence of prom_schema_migrations table [#1452]
- Do not run rules-manager in -db.read-only mode [#1451]
- Fix underlying metric(promscale_sql_database_chunks_count) which leads to false positive firing of PromscaleCompressionLow alert [#1494]
- Fix RE2 regex support for label matching [#1441]
- Remove flaky
PromscaleCacheTooSmall
alert [#1498] db.num-writer-connections
now sets the absolute number of write connections for writing metrics. [#1430]
Helm Chart Improvements
- Add ability to specify Deployment annotations and Pod annotations in helm charts [#1495]
- Allow disabling exposition of promscale port in Service object. [#1495]
- Enable prometheus annotation based scraping only when ServiceMonitor is disabled. [#1495]
Deprecations
- Deprecate openTelemetry and prometheus top-level objects in helm chart in favour of .service.openTelemetry and .service.prometheus [#1495]
Thanks
We'd like to thank @raphaelzoellner for his pull request[#1473].
Changelog
- 2bae61c *: add shellcheck make target and CI job
- 0263a61 *: align helm chart maintainers with kubernetes-timescaledb charts
- 38f185a *: apply shellcheck suggestions to all shellscripts
- 5523f03 .github: do not assign extension update to any group
- 5f7a61c .github: transfer parts of code ownership to @o11y-services
- 227bab4 Add Network latency panel in Promscale dashboard and mention in runbooks.
- 3920f58 Add e2e docker-compose
- 1569509 Add extraEnvFrom value to helm chart
- a5d6085 Add prom-migrator and tobs to key features
- 5527f17 Add quick start to README
- a5c1a10 Add stat metrics for connection pools.
- 87967a4 Add support for RE2 regex matching on the database side
- 1b17edb Adds support for network latency metric.
- 511ccf5 Apply review suggestions
- e780d5c Bring back branch docker image
- 9ca2877 Change
db.num-writer-connections
to set absolute number of writing connections - cd9aea6 Disable Renovate bot for managing Go dependencies
- de42717 Disable test
TestSQLDropMetricChunk
. - 3aa15d1 Do not check for ingestor in ingestAdapter.
- cc0e5ad Do not run rules-manager in
-db.read-only
mode. - a8b0fb8 Fix APM dashboards trace res
- 107ba0f Fix a typo in PromscaleCompressionLow alert runbook
- f4641bb Fix docs.
- a685504 Fix double counting while populating promscale_sql_database_chunks_count metric
- a80b2fe Fix flaky test
TestCompareTraceQueryResponse
- 6da0a42 Fix lint warnings on alerts mixin
- 960052f Fix path to quick start docker compose file
- 498273e Implement support for glob in rule_files.
- 82a573d Ingest metric data with COPY to get better performance
- d1912cb Migrate OTEL libraries breaking changes
- eb5df40 Minor refactoring for clarification
- bca383a Move all helm labels to be more consistent
- 39ff59a Pin extension version to master
- d6b6354 Prepare for the 0.12.1 release
- e7745aa Prepare for the 0.13.0 release
- cb72068 Prepare for the next development cycle
- 27566a9 Quick-fix: Do not use quotes when tag value is bool.
- a8f8c6a Refine check for existence of
prom_schema_migrations
table - 214bf6e Remove JamesGuthrie as codeowner of /deploy
- aa33000 Remove flaky
PromscaleCacheTooSmall
alert - e173fd1 Restart containers in case of failure. This was causing Jaeger to fail and not be restarted on the initial deployment
- e8e572e Separate connection pool into reader and writer.
- bc08632 Thread-safe test result verification
- 58eca02 Update README.md
- 22c715e Update dependency golang to v1.18.3
- bb85bf8 Update dependency golang to v1.18.4
- 205b337 Update docker-compose
- 07b170c Update generated files
- 3723dc7 Update github actions
- c9a4e9a Update github actions
- e434645 Update golang dependencies
- ae33606 Update to docker-compose
- e958f86 Use correct data types in otel span attributes
- d833a01 Use read-only ingestor for -readOnly mode.
- 8c58c39 copier: Skip err log if tx is closed after successful commit
- 5ebde17 deploy/helm-chart: improve Service and annotation handling
- 47cdad5 deploy/static: regenerate
- dc34480 docs/mixin: less strict dashboard linting
- 289e98b fix the tests
- b5ead8a new positioning
- ce82932 refactor
- c50b6c9 update the images
0.12.1
This release is a patch release to fix querying issues.
At a high level, this release
- This is a bug fix release that fixes the tags-based querying issues with boolean types. Instead of converting the values directly to a text representation, a check will be performed first to check if the value is a boolean so that it doesn't get wrapped in quotes.
Requirements
- PostgreSQL: 12.x, 13.x, 14.x.
- TimescaleDB: >= 2.6.1 single-node (multi-node is not supported in this release)
- Promscale Database Extension: >=0.5.x.
Changelog
- a58f5a4 Do not use quotes when the tag value is bool.
0.12.0
At a high level, this release
- Update the PromQL module with Prometheus upstream. [#1295]
- Support hot reload for recording and alerting rules. [#1426]
Requirements
- PostgreSQL:
12.x
,13.x
,14.x
. - TimescaleDB:
>= 2.6.1
single-node (multi-node is not supported in this release) - Promscale Database Extension:
>=0.5.x
.
Upgrade notes
- Before starting the upgrade please make sure that you have deployed version
0.5.x
of the Promscale extension. You will also need TimescaleDB extension version2.6.1
or above available. Then stop all Promscale Connector instances, upgrade the first one and restart it. The migration will happen automatically. Once the migration is completed, upgrade the remaining Promscale instances and restart them if needed.
Improvements
Fixes
- Fix prom-migrator proto-enum registration that's causing panic. [#1375]
- Fix Jaeger trace querying when translating Jaeger traces to OTEL format. [#1384]
- Support slices in trace attributes. [#1381]
- Add HEAD and OPTIONS on health. [#1378]
- Fix trace querying with a numeric value tag and querying tags from the process table in Jaeger UI. [#1385]
- Manage stopping of ingest components. [#1370]
- List label values of allowed tenants only. [#1427]
Helm Chart Improvements
- Add readinessProbe. [#1266]
Changelog
- a5aba33 .github: add extension group to renovate
- ec8eb9b .github: always use latest timescaledb in helm tests
- 53aadeb .github: manage extension version bumps via renovate
- 3fb6f85 Account for toolkit extension in tests
- 29dc268 Add E2E tests for querying traces with tags.
- 5fab1df Add HEAD and OPTIONS on healthz
- d2cb3af Add ability to register dynamic metadata.
- 56bb291 Add documentation of Promscale metric data model
- b2c6b44 Add workflow call in e2e tests
- da0c8b5 Adding notes to clarify how workflow_* events are triggered
- 3d9ebce Adds E2E test for alerting in Promscale.
- 6dc1a15 Adds E2E tests for evaluating recording rules.
- 8739804 Adds support for reloader in Promscale.
- dd8f633 Adds support for telemetry for alerting and recording rules.
- cb9ec6f Automatically update the timescaledb extension in tests
- eaab736 Benchmark metric ingest
- 2253f01 Bump Promscale extension version to 0.5.1
- 84a1d9d Bump extension version to 0.5.2
- 307237e Bump minimum go version in go.mod
- 8ba45d2 Cache label IDs
- d9e87b3 Correctly use pinned extension version in go-e2e.yml
- 819fcae Direct users to our Slack or forum for questions and feedback
- 749cf0d Edits to install instructions
- a5ffe9d Enable
promql-per-step-stats
feature. - 195f63d Extract current extension version to a single location
- f3e6cdf Fine-tune installation documentation
- 5c5dd5a Fix Jaeger trace querying by converted Jaeger tags
- 1fe3bb8 Fix panic in rules-manager on reload.
- d8ed757 Fix prom-migrator proto enum panic.
- 823ab4a Fix trace query with int values and check resource tags during evaluation.
- a183131 Fix two-step aggregate tests
- 2ac2324 Fix upgrade tests around version 0.11.0
- 90289d8 Fix var assignment in E2E tests.
- 17e95bc Fixing workflow, making checkout ref configurable from the workflow call
- 307350b List label values of allowed tenants only
- 2f52466 Manage stopping of ingest components
- 07aa741 Pin promscale_extension version to 0.5.0
- 95d1269 Post release clean up
- 949fa37 Prepare for the 0.12.0 release
- 022ccba Reformat markdown files with mdox
- 8f40c37 Remove docs and tracing in beta mention. Some additional improvements
- a5026cc Remove timescaledb_toolkit extension in test setup
- 21945d0 Removing workflow_dispatch, as most of its uses are supposed to be replaced by embedding workflow_call into other repos
- 73bae80 Rules+Alert config w/ Alertmanager & cleanup
- abb73f5 Run e2e tests against current master of promscale extension
- c443ec7 Set number of copiers based on DB CPU count
- e607a43 Support slices in traces attributes
- e5e02e3 Tweaks for local go bench
- 6b402cb Update E2E tests according to new rules-manager.
- f2233c7 Update PromQL till March 30
- 6eab9e7 Update README.md
- f583fa0 Update README.md
- 3eb024f Update README.md
- 48839a8 Update README.md
- 8cd8f87 Update README.md
- 3603615 Update goreleaser/goreleaser-action action to v3
- 041b5bb Update query APIs & use
grafana/regexp
to align with Prometheus. - ee7f76e Use glob filter for mbox instead of find
- a6d66c8 deploy/helm-chart: (ab)use telemetry to check how many people use promscale helm chart directly
- d6e21b5 deploy/helm-chart: Run TimescaleDB in CI cluster to test helm install
- fc7470d deploy/helm-chart: add readinessProbe
- 0af079e deploy: Regenerate static manifests and add notices
- 02838a6 docker-compose: switch to using newer HA deployment model
- 056e9c4 docs migration
- 45da0ab fix styling
- 5552127 grammar
0.11.0
This release is a major step forward in our evolution of Promscale. It makes distributed tracing generally available and moves a lot of our logic into the Promscale database extension, allowing for further data optimization. Upgrades from previous versions of the system come with more caveats, please see below before upgrading.
Please note this release should only be used with the single-node version of TimescaleDB.
At a high level, this release
- General Availability of OpenTelemetry trace data support. This includes a fully customizable, out-of-the-box, and modern application performance management (APM) experience in Grafana using SQL queries on OpenTelemetry traces, to get new insights immediately after deployment.
- Native support for PromQL-based alerting and recording rules so you centralize management of those instead of doing it individually in each Prometheus instance and also so you can use the Prometheus agent instead of full Prometheus.
- Promscale extension is mandatory starting with this release, as all the SQL codebase has been migrated to the Promscale extension. This has been done to improve performance and the query experience.
- Native support for the Jaeger query API in Promscale. Now you can connect a Jaeger data source in Grafana directly to Promscale without the need for the Jaeger-query component.
- Resource recommendation guide for traces to help you allocate the required compute and storage resources for your needs.
- Out-of-the-box alerts, Dashboards, and Runbooks to monitor Promscale and help you configure your production environment.
Upgrade notes:
- Previous tracing data will be dropped when you upgrade. In prior releases, tracing was only supported in beta. To improve performance we had to make some fundamental structural changes to the way data was stored. Unfortunately, these changes require dropping data.
- Note that this release contains quite a few changes relative to the previous version. Thus, we suggest testing the upgrade and taking a backup if possible.
- Before starting the upgrade please make sure that you have deployed version 0.5.0 of the Promscale extension. You will also need TimescaleDB extension version 2.6.1 or above available. Then stop all Promscale Connector instances, upgrade the first one and restart it. The migration will happen automatically. Once the migration is completed, upgrade the remaining Promscale instances and restart them if needed.
- This upgrade could take up to 5-10 minutes on very large databases. During that time Promscale will not be able to ingest or query data.
- This upgrade modifies many database objects. Thus on large deployments, you may need to increase the
max_locks_per_transaction
parameter on your database before starting the upgrade. - The only HTTP verb
/healthz
endpoint supports isGET
. Some load balancers (e.g. HAProxy) that relied on the old behaviour need to be re-configured to use the verbGET
instead.
Requirements
- PostgreSQL:
12.x
,13.x
,14.x
- TimescaleDB:
>= 2.6.1
single-node (multi-node is not supported in this release) - Promscale Database Extension:
>=0.5.0
Deprecations
- Legacy HA implementation i.e. based on
pg_advisory_lock
has been removed. - Removed deprecated flags.
Additions
- Configuration options to set up global parameters like compression and retention that were previously only configurable via SQL. This is to help better support the deployment of Promscale via GitOps.
- Add database SQL stats to the Prometheus metrics exposed through the /metrics endpoint for improved monitoring of Promscale. These metrics are available under the
promscale_sql
namespace.
Improvements
- Tracing in Promscale is now by default enabled and you shouldn't need
--enable-feature=tracing
andtracing.otlp.server-address=:9202
as the OTLP gRPC server by default listens to port9202
. - Performance improvements for querying traces by altering the indexes.
- Rename tracing enums to user-friendly names on the SQL side, changed them to lowercase, and removed the prefix.
- Metric tables and views are now owned by prom_admin.
Fixes
- Disable the option to run Promscale both in high-availability and read-only mode.
- Register
promscale_ingest_channel_len_bucket
metric and make it a gauge [#1177] - Log warning when failing to write response to remote read requests [#1180]
- Fix Promscale running even when some component may fail to start [#1217]
- Fix
promscale_ingest_max_sent_timestamp_milliseconds
metric for tracing [#1270] - Fix prom_api.reset_metric_retention_period on two-step continuous aggregates [#1294]
Helm Chart Improvements
- Automatic configuration of Promscale alerts.
- Ability to set Promscale dataset configuration before installation.
- Remove option to enable tracing in Promscale connector, as now by default the Promscale connector is enabled with tracing support.
Changelog
- 892cf88 *: add docs formatter and checker
- 9eaf677 *: format documentation and fix broken links
- 7daa364 Fix docs formatting
- f49197a Prepare for the 0.11.0 release
- c3c95d6 Revert "Use ha image in Docker compose file"
- 5b8727e Switch docs to using the ha docker image
- ae56c16 Update deprecated entries in
promscale.conf
- 55c6480 Use ha image in Docker compose file
- 4e42aa7 *: update data types to otel 0.49.0
- df2aee4 .github: add @onprem as code owner for deployment methods and monitoring mixin
- d3d8f94 Fix output of skipped extension prerelease information
- c7acfc8 Fix tests
- 8489d7b Log mandatory requirement of Promscale extension when upgrading
- 0c32fe2 Make a unique temp table for each table type
- 2554e1c Moving temp table creation into the extension to be able to suppress DDL logging.
- ce20e46 Prepare 0.11.0-alpha.3
- 33a7443 Publish packages for ubuntu distros
- 29f82da Replace deprecated type imports with recommended ones.
- e99e03d Reuse temp table for trace ingest
- 3f7aa10 Update -metrics.rules.prometheus-config -> -metrics.rules.config-file
- 542db6d Update dependency otel/opentelemetry-collector to v0.50.0
- efdff99 Update golang dependencies
- 9a3e1ef missed one
- 339c69b pkg/internal/testhelpers: use new format for defining mounts
- e58c9f5 Fix lint issue
- e7f1a6a Optimize span query based on maximum time duration
- 4c333f7 Prepare the 0.11.0-alpha.2 release
- 5c4a2d1 Rework jaegerquery wiring to pass down config
- 3638e21 Update github actions
- b9eae0d Update github actions
- 892f272 Add runbooks in docs.
- d2d8932 Prepare for the 0.11.0-alpha.1 release
- f5d9c89 deploy/helm-chart: properly set dataset configuration and provide a way to set the config file for promscale
- 5e25565 deploy: regenerate
- a287a61 docker-compose: add a flag to allow promscale start and improve test resilience
- cb07f26 *: add testing alert syntax in CI
- 5df37a7 *: reconfigure renovate-bot
- 70161d8 .github: add dashboard linter to CI
- d7abe5d .github: control tooling version used in CI via renovate
- 2836fb1 .github: finer control over used goreleaser version
- 892f57c .github: fix setting labels on PRs by renovate bot
- b12b97c .github: move checking for alerts propagation to helm workflow
- 89e91d0 .github: move renovate config to decluter TLD
- 2d9f392 .github: remove dependabot
- f90d8d2 .github: switch code ownership to a subteam
- 400ae0c Add CLI flags and support for reading Prometheus config.
- c8970a6 Add Gitops dataset configuration options
- b12fa94 Add Jaeger query HTTP server.
- e37886e Add JamesGuthrie as owner of pgmodel/querier
- 36e8907 Add ability to stop routines on partial error.
- 2700b27 Add alerting rules for Promscale.
- 231904a Add alerts for database check metrics.
- 69109d3 Add alerts for database sql metrics.
- 9842067 Add compression job performance hotfix instructions
- e7eae31 Add database metrics into pgxconn package.
- 6a005c4 Add lifecycle docs on ingest-adapter appender.
- ee8a8ec Add metrics for health-check.
- d8583e3 Add missing word to slow ingestion warning
- 91b4e34 Add note saying
prom-migrator
cannot migrate to HA setups. - 9e7afaf Add proper CICD docker image resolution in upgrade_tests.
- a539a20 Add renovate.json
- 43b0e26 Add support for testing database metrics module.
- 526a660 Add support to expose database metrics in Promscale.
- e91daaa Add test case for
reset_metric_retention_period
with two-step agg - bdcc960 Add workflow dispatch for e2e tests
- 2be878e Additional improvements and adding input parameters section to select data sources for Postgres and Jaeger
- a973379 Adds support for
/api/v1/rules
API - f563ae4 Adjust to handle new default search path
- ac605ef Better debug logs on failed tests
- 01fc4c1 Bump github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger
- 5b2c63c Bump go.opentelemetry.io/collector/model from 0.44.0 to 0.45.0
- d2f39ee Bump go.opentelemetry.io/otel/exporters/jaeger from 1.3.0 to 1.4.1
- 3f5c573 Bump minimum TimescaleDB version to 2.6.1
- 53a1898 Bump otel deps
- 02e6a1b Bump securego/gosec from 2.9.6 to 2.10.0
- c963c8e Change end-to-end tests to work on latest db
- 477829e Change extension schema to "public"
- 9e79cb3 Codeowners update
- 301d9f6 Delete .travis.yml
- bfa90a1 Deprecate testing for TimescaleDB 1.x
- 0fa7486 Disable running Promscale in both HA and read-only mode
- a7e71e7 Enable tracing flags by default
- c7fc7e9 Expose build information through Prometheus metrics
- 75c2ac4 Filter on jsonb hash so planner can use index
- 0ff2efa First iteration of APM experience on Grafana
- 0b7437e Fix Docker imag...
0.10.0
At a high level, this release
- Improves the metrics system exposed by Promscale
- Includes many bug fixes
Deprecation Notices for Next Release
Starting with the 0.11.0 release, we will:
- Drop support for
TimescaleDB 1.x
- Drop support for running without the promscale database extension.
Additions
- OTEL collector exporter endpoint support to Promscale tracing telemetry exporter [#1148]
- Prometheus metrics support for Promscale tracing code paths [#1102, #1152]
- Performance metrics in the cache module in Promscale. These can be queried as PromQL under
promscale_cache_
metric prefix [#1113] - Add ingested spans-count to call home telemetry [#1155]
- Add example tracing setup to docker-compose [#1024]
Improvements
Fixes
- Fix spans with
end < start
. Start and end are swapped in this case [#1096] - Disable pushdowns that use offset in PromQL [#1129]
- Aggregate pushdown evaluation [#1098]
- Fix broken extraEnv parameter in helm chart values [#1126]
- Logging success message if extension update failed [#1139]
Changelog
- 941cfd2 *: Do not publish release automatically
- 8cd208b Add Go dependency ownership to myself
- 309b9fd Add a simple tracing setup to docker-compose
- e7eda92 Add doc to show new metrics exposed by /metrics endpoint.
- 0f51d32 Add explanation and minor refactoring around pushdown functions
- 4ed7edc Add logging usage of deprecated flags with recommendations
- f59b23e Add panic on missing flags when applying flag aliases
- 73d7c71 Add support for OTEL collector endpoint in Promscale tracing telemetry exporter
- 556c7bd Bump actions/setup-go from 2.1.5 to 2.2.0
- d152878 Bump github.com/containerd/cgroups from 1.0.2 to 1.0.3
- 8170d48 Bump github.com/jackc/pgconn from 1.10.1 to 1.11.0
- 61a9672 Bump github.com/jackc/pgtype from 1.9.1 to 1.10.0
- 39fdb47 Bump github.com/jackc/pgx/v4 from 4.14.1 to 4.15.0
- f51923b Bump github.com/jaegertracing/jaeger from 1.30.0 to 1.31.0
- 4f23d22 Bump github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger
- 5d67279 Bump github.com/schollz/progressbar/v3 from 3.8.5 to 3.8.6
- 3ccf3d1 Bump go.opentelemetry.io/collector/model from 0.43.2 to 0.44.0
- 5014b73 Bump securego/gosec from 2.9.5 to 2.9.6
- 4856092 Change subsystem to type label.
- 9e90a38 Do not attempt to push down calls with offsets
- b1c5c08 Don't log success message if extension update failed
- 32c9aa1 Ensure that span start <= end
- 9391f8c Fix alter column to be in 0.10.0-dev and not in 0.8.0-dev
- 74f66b0 Fix broken pushdown queries
- 1ec7c26 Fix changelog: Add example tracing setup to unreleased.
- ad20435 Fix docker-compose dependency ordering
- a84f430 Fix web flags which were missed during the flag rename
- d08c138 Implement ingested_spans_count in telemetry data.
- 53cc24e Implement prometheus metrics for tracing path.
- cf44600 Increase visibility into trace ingest
- f83a39d Make telemetry engine to accept multiple metrics.
- 0742e64 Prepare for the 0.10.0 release.
- 0d66b9b Prevent swallowed build errors in e2e tests
- 6a73d8c Refactor metrics for api package.
- 856e477 Refactor out RemoteReadQuerier interface
- 75daab3 Rename and add perf metrics to clockcache.
- ead44af Rename metrics for ingestor module + some refactorings.
- 7101ab1 Rename metrics in querier.
- 767d1eb Replace stale metric that was being used for telemetry.
- 32696d6 Skip failing multinode trace test
- ebbde6f Skip failing telemetry tests related to different timescaledb versions
- 2ba6586 Update removal of deprecated flags to version 0.11.0
- 67c03fa Upload release to packagecloud
- ab8154b Use fully-qualified schema for _prom_catalog.ha_leases
- ca264e4 add Promscale logo
- 1ceecae deploy/helm: fix order of templating
- ab16e62 deploy/helm: sanitize extra environment variables
0.9.0
At a high level, this release contains:
- Significant CPU performance improvements for start up and data ingest
- Improved compression
- Metrics instrumentation for the embedded OpenTelemetry gRPC server
Improvements
- Improve compression of old chunks thus reducing storage requirements [#1081]
- Optimize insert path in the DB by avoiding ON CONFLICT [#1090]
- Optimized series ID creation by caching metric ID [#1062]
- Support to instrument Promscale's Otel GRPC server with Prometheus metrics. Metrics are published to the /metrics endpoint. [#1061]
Bug fixes
- Fix metric info cache loading when using query path [#1095]
- Fix broken promscale_packager telemetry field for docker envs [#1077]
- Fix missed old HA CLI alias to list of flags [#1074]
Changelog
- 27a22fe Add high availability old CLI flag alias
- 7f360d2 Adds prometheus instrumentation for grpc server.
- ef81db4 Bump azure/setup-helm from 1 to 2.0
- cb187d6 Bump github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger
- 563f3a3 Bump github.com/prometheus/client_golang from 1.11.0 to 1.12.0
- 568ec8f Bump github.com/prometheus/client_golang from 1.12.0 to 1.12.1
- a2e972a Bump go.opentelemetry.io/collector/model from 0.43.1 to 0.43.2
- a8a704c Bump google.golang.org/grpc from 1.43.0 to 1.44.0
- fd0bffb Cache metric ID and forward the metric info to series writer
- 9a81191 Cache metric ID and forward the metric info to series writer
- c6d6feb Fix broken
promscale_packager
telemetry field for docker envs. - 40db63b Fix changelog order
- 07961e0 Fix metric info cache loading when using query path
- c8b4335 Fix skipping compression of first to last chunk
- ef0711e Fixup master after revert
- c33438a Initial metric ingest tracing instrumentation
- e05376c Inline ADVISORY_LOCK_PREFIX_* values
- 8de1b04 Make helm publish use relative URLs
- d70c89d Optimize insert path in the DB by avoiding ON CONFLICT
- fe63ed8 Prepare for 0.8.1 release
- 6ea3bf2 Prepare for the next development cycle
- aa71c47 Remove generic schemas
- b9039c7 Remove obsoleted jaeger-query-proxy
- 6d6dc7a Revert "Cache metric ID and forward the metric info to series writer"
- 45d801d Update HA doc to reflect recent CLI change
- b57a759 Update PromQL upto Jan 11, 2022.
- 38ee350 Use explicit schema names
- 404fcd0 deploy/helm-chart: allow templating extraEnv variables