Timescale Prometheus Versions Save

[DEPRECATED] Promscale is a unified metric and trace observability backend for Prometheus, Jaeger and OpenTelemetry built on PostgreSQL and TimescaleDB.

0.8.0

2 years ago

At a high level, this release contains:

  • Headline feature: Tracing data management
  • Renamed CLI flags
  • Add ability to configure chunk interval on startup
  • Promscale PostgreSQL extension packages for various distributions
  • Additional instrumentation and usage data

Headline feature: Trace data management

We've added some features to make the management of tracing data much simpler.

Promscale now supports configurable data retention for trace data. There are two new SQL functions: set_trace_retention_period(INTERVAL) and get_trace_retention_interval(). The default retention is set to 30 days.

We’ve also added a function to easily delete all trace data stored in the database: delete_all_traces().

Read more about how to use these new capabilities in the tracing documentation.

Improvements

Renamed CLI flags

We've worked on reorganizing and regrouping the CLI flags to make them easier to use. Almost all of the existing CLI flags have been changed. The old CLI flags can still be used, but will be removed in a future Promscale release. An overview of the current CLI flags is available in the Promscale repo at docs/cli.md. To get a hint for how to translate old flags to new flags, refer to flags.go which contains a translation map.

Add ability to configure default chunk interval on startup

Promscale stores all metric data points with the same metric name in a TimescaleDB hypertable. Hypertables are broken down into individual chunks for performance. Previously, configuring the chunk interval was only possible via an SQL interface, e.g. SELECT prom_api.set_default_chunk_interval(INTERVAL '1 hour');. This release allows configuring default_chunk_interval using the new Promscale dataset configuration. This is useful to ensure that even if Promscale starts receiving data immediately after it has been started (common in scenarios where the deployment is automated) that the chunk interval is also applied to the first chunk in each hypertable.

Promscale extension packages for various distributions

Promscale provides a PostgreSQL extension that improves the performance of PromQL and SQL queries. For that reason, we strongly recommend that you install the extension even though it is not strictly required.

Installation of the extension on non-Docker systems used to require downloading and installing the Promscale PostgreSQL extension manually. We now have packages available for the most popular Linux distributions making it easier to deploy the Promscale extension directly on hosts.
You can find the installation instructions in the promscale extension repository's README.

Additional instrumentation

We have added new metrics to the /metrics endpoint that provide counters and performance histograms for PromQL queries and queries from the Jaeger and Grafana distributed tracing UIs to retrieve traces:

  • promscale_executed_queries_total
  • promscale_queries_timed_out_total
  • promscale_trace_query_requests_executed_total
  • promscale_trace_fetch_traces_api_execution_duration_seconds
  • promscale_trace_dependency_requests_executed_total

Other

Additional usage data

We have added additional telemetry to the anonymous usage data we collect. We use this data to better understand how the community uses the product and as a result make our products better for our users. You can read more details in our documentation.

Bug fixes

  • helm-charts: use fixed target port on svc-promscale [#1009]
  • Fix passing of async flag [#1008]
  • Remove the event_name_check constraint [#979]
  • Fix _prom_catalog.metric_view() function on non-tsdb installs [#958]

Deprecations

The -migrate cli flag was deprecated, use -startup.only instead.

Breaking Changes

We changed the names of existing metrics which Promscale emits about itself:

  • promscale_sent_samples_total was renamed to promscale_ingested_samples_total
  • promscale_failed_queries_total was renamed to promscale_metrics_queries_failed_total
  • promscale_query_query_duration_seconds was renamed to promscale_metrics_query_duration_seconds
  • promscale_query_batch_duration_seconds was renamed to promscale_metrics_query_remote_read_batch_duration_seconds

Data retention for tracing is added and enabled by default in this release. The retention period is set to 30 days. Trace data older than 30 days will be automatically dropped. If you wish to change this retention period, use the ps_trace.set_span_retention_period(interval) function.

The -promql-enable-feature flag, which was deprecated in 0.7.0 has been removed. Please use -enable-feature instead (see docs/cli.md).

The long-deprecated advisory-lock based leader election feature has been removed. Please use label-based leader election instead.

Thanks

We'd like to thank @aveuiller, @ptou, and @nmaludy for their pull requests, and tilpner for their bug report.

0.7.1

2 years ago

This is a bug fix release which fixes issues for users upgrading from 0.6.1 or 0.6.2. If you are on those versions, please skip 0.7.0 and upgrade directly to 0.7.1.

Changelog

  • 578a9ac Fix upgrade scripts
  • e91ad78 Prepare for release 0.7.1
  • f6060a4 Skip running goreleaser tests when releasing a tag

Docker images

  • docker pull timescale/promscale:0.7.1
  • docker pull timescale/promscale:0.7

0.7.0

2 years ago

Note: Users of Promscale 0.6.1 and 0.6.2 should not upgrade to this version. There is an issue with the underlying schema migration which affects those versions. We are working on a fix and will release version 0.7.1 as soon as possible.

At a high level, this release contains:

  • Headline feature: Support for OpenTelemetry tracing data (beta)
  • Support for Postgres 14
  • Helm chart improvements
  • New --enable-feature flag to make exposition of beta features explicit

Headline feature: Support for OpenTelemetry tracing data (beta)

We previously announced the beta release of tracing support, which we made available in the 0.7.0-beta.1 release. While 0.7.0 introduces a number of performance and stability improvements to our tracing support, the feature is still in beta. Therefore we may introduce non-backwards compatible changes in future versions that may require dropping existing trace data in order to upgrade to a new Promscale version. Note that you may also experience stability and performance issues with tracing data.

In this release we make tracing support opt-in: it must be activated with -enable-feature=tracing (more details on -enable-feature below). We are still actively working on improving the feature and its documentation. If you have any suggestions or encounter any issues you can share your feedback in this Github discussion.

Minor changes

-enable-feature

In order to make it clear to our users when they’re using beta functionality, we’ve added the -enable-feature option. When we release new beta functionality, our users will have to explicitly opt-in by enabling the feature. These features are subject to change, and do not have any API stability guarantees. Most importantly, we do not guarantee that there will be no data loss when using these features, or that we will be able to provide a painless pathway from beta to generally-available functionality.

Promscale's beta tracing support is one of the first major promscale features which can be enabled using -enable-feature=tracing. Additionally, Promscale exposes two pieces of beta PromQL functionality, promql-at-modifier, and promql-negative-offset, for more details on those, please consult the Prometheus docs on feature flags.

Note: To retain backwards compatibility, this change does not affect two existing pieces of beta functionality: Continuous Aggregates, and Exemplar Storage. Those features are both still beta, but do not require an explicit opt-in.

Helm chart improvements

We’ve improved the ergonomics of our helm charts, making it easier to get started with Promscale!

  • The helm chart now automatically configures itself, adding the required ServiceAccount, and optionally a ServiceMonitor object to monitor your Promscale instance (which is great if you’re using tobs).
  • We’ve made the deployment simpler by moving all connection configuration parameters into one Secret object.
  • The Promscale pod is now automatically recreated when the connection configuration is updated in values.yaml.
  • It’s now no longer necessary to create a Secret object with database connection details. Instead these parameters can be set directly in values.yaml. We do still provide the option of configuring connection details via a secret, see connectionSecretName.
  • All of these improvements required a break in backwards compatibility. We have restructured the connection parameter in values.yaml, and in doing so we have removed compatibility of the helm charts with TimescaleDB 1.x. If you are updating from a previous version of the helm chart please consult the upgrade notes below.

Support for Postgres 14

Promscale 0.7.0 adds support for Postgres 14.

Note: installations using the promscale extension must have version 0.3.0 of the extension installed for PG14 support. Promscale will automatically run the necessary UPDATE EXTENSION commands when it connects to the database.

Bug Fixes

We fixed a memory leak which arises when using the series endpoint (GET/POST /api/v1/series).

Deprecations

The -promql-enable-feature CLI flag has been deprecated. Its functionality has been merged with -enable-feature. The option is still supported, but will be removed in a future release.

Breaking Changes

Support for environment variables beginning with TS_PROM has been removed. This was previously deprecated in the 0.1.4 release.

The -db-connect-retries cli flag has been removed. Configuring it had no effect, so it can be removed without replacement. If this flag is set, Promscale will abort with the following error: Fatal error: cannot parse flags: configuration error: error parsing commandline args: flag provided but not defined: -db-connect-retries.

In the Promscale helm chart we replaced the service configuration in values.yaml with separate configuration sections for openTelemetry and prometheus. This is to accommodate that Promscale now has both a Prometheus API, and a OTLP gRPC API.

Upgrade Notes

Upgrading helm chart

If you are using TimescaleDB 1.x, we do not recommend upgrading your helm charts to the latest release. In the most recent release we removed the configuration of cron jobs which are necessary for users of TimescaleDB 1.x. TimescaleDB 2.x onwards does not require these maintenance cron jobs. If you are using TimescaleDB 1.x, this is a great opportunity to upgrade to TimescaleDB 2.x :)

When you upgrade to the most recent helm chart be sure to:

  • Rename service.port to prometheus.port in your values.yaml.
  • Rename args to extraArgs in your values.yaml.
  • If you were using the 0.7.0-beta.1 helm charts with tracing.enabled: true, you now need to enable tracing through openTelemetry.enabled: true.
  • If you were either connection.dbURI.secretTemplate, or connection.password.secretTemplate in your values.yaml, you will need to use connectionSecretName and put all connection details into the secret object.
  • Templating the hostname via connection.host.nameTemplate was removed. The host can still be set via connection.host.
  • If your connection.password or connection.uri was a numeric value, be sure to convert it to a string.

Upgrading the Promscale connector binary

Replace the cli flag -promql-enable-feature with -enable-feature.

Replace any environment variables of the form TS_PROM_<CONFIG_ITEM> with PROMSCALE_<CONFIG_ITEM>.

Remove the cli flag -db-connect-retries. It didn’t do anything anyway.

Thanks

We’d like to thank @knrafto for their excellent bug report, allowing us to quickly identify a memory leak in the series endpoints.

Changelog

d856e5d6 Add insert batching when ingesting trace data da6f7364 Add PromQL view functions 5b6205f7 Add README for e2e tests 4c8fbe53 Add Trace comparators for HTTP JSON responses. 8db9a38e Add -enable-feature cli flag a749eb2f Add a bigger trace dataset and some util functions 9586c1d0 Add benefits 881bd51d Add binary builds to .gitignore 542e2553 Add caching to trace ingest path db7dc756 Add comment to helm chart about -enable-feature=tracing b4d544d0 Add downsampling documentation e03ea5b4 Add info about docker 21babe1f Add label sorting to JSON metric ingest parser 5754dfb0 Add link to GH discussion df009487 Add logging of errors to GRPC server b305a9c7 Add note for TimescaleDB 1.x usage to helm chart README 0320441e Add requirements for the continuous aggregate view d36c12b7 Add support for PG14 77d0ec1c Add tests for tracing put/get db functions 57f1d72f Add tests to validate the tag operators 524fa0d2 Add troubleshooting instructions for OTel Collector 6da5f240 Address review feedback d8b45e93 Avoid ID lookups for operations and tags b729e0e2 Batch by the entire trace structure 1d378fb9 Centralize management of CI env variables 637bd5f1 Change PromQL metric view to metric view f7b8c43b Change to cover only alerting 616948ed Correctly emit warning log on use of deprecated flag 7ed4d265 Cosmetics b712e791 Couple of small improvements 183ea564 Create CODEOWNERS 78693786 Enable compression on tracing hypertables 450ccaf2 Encapsulate Jaeger-container output. 0b01f643 Ensure consistent sequencing of remote commands 453d2656 First commit of updates to Downsampling doc b1bf6c4f Fix 0.5.1 to 0.6.x SQL migration script 22fbd6db Fix GOMAXPROCS for K8s 90ff4549 Fix application_name set to be too long f16b8626 Fix broken link 1e77e06d Fix broken link in helm chart README dde2b562 Fix cache population when initializing metric batcher 555784e1 Fix clashing function names 95708d1a Fix code nits with trace ingest batching 8f191148 Fix issue when ingesting instrumentation libs with empty schema URLs c29495c3 Fix memory leak with SamplesQuerier 0ae88e66 Fix partial upgrades to 0.6.0 b3ec90c9 Fix setting retention for 2-step aggregation 22c3b6a4 Fix silly bug in tracegen.py fa9a5298 Fix the import of vfsgen be1c3805 Fix verbose output bug 8ce54b28 Format code according to golang 1.16+ requirements ec654451 Get rid of deprecated advisory log flags in helm. adb83345 Handle insert conflicts for schema URL and instrumentation libs 6d3ae69f Handle zero value span IDs as null value in DB 2f5e8e75 Implement closers for Jaeger container. b90120d1 Implement storing & reading of Jaeger query response. 2bf33cea Implement the GetDependencies Jaeger API db9354ba Improve periodic CI jobs runtime 87535139 Improve testing of trace ingest 1f26d135 Init Trace comparsion test. 8df691e5 JSON comparison layer. 0e73634f Jaeger container support and grpc conn test. c89216a0 Link otel container with jaeger. 9b74c04b Make prom-migrator unit test independent of current time aaa3f83c Migrate code to new version of jaeger package 745eefcf Move CODEOWNERS to .github fef04b23 Move operator creation to idempotent b0b782f1 Order operation and link insertion to avoid deadlocks a66afa94 Order trace query params sql. f9539ae0 Otel-collector container support. eb00b721 Prepare for the 0.7.0 release 1c67a760 Prepare for the next development cycle b2f41d5d Prom-migrator: Fix infinite slab loop when setting -max-read-size too low. 8ea35d0e Refactor docker image selection for tests 1b81970b Refactor internal/testhelpers to respective files. 3b6605a8 Refactor trace writer code structure a39b237e Reflect deprecated status of cli flags in cli docs 6a563fa8 Remove CI log filter for e2e tests 2b51e69c Remove deprecated TS_PROM_ prefixed env-var support 7507e0c0 Remove deprecated go-kit packages and use current ones e93ce563 Remove fetch cache for "Build and Lint" job ac74a248 Remove unused db-connect-retries cli flag c164b9d3 Rename alerting doc 4d48300d Replace deprecated InitFromMap with NewAttributeMapFromMap 5806cd05 Replace reviewdog with plain golangci-lint c75f9bcf Resolve dependencies with go mod tidy 398c0748 Rework docs around connectionSecretName f11dfb96 Separate lines for spans throughput. a8c6cd22 Simplifing CI config by removing superfluous step and updating actions 1dfb1d55 Simplifing golangci-lint configuration efb94d79 Simplify CI jobs configuration by unifying repository checkout 7d18f197 Support higher extension versions than auto-upgrade 450d9ea3 Support logging telemetry stats for Traces ingestion. 8d154e83 Test/Modify trace tree database functions 3178dbbc URL encode postgres connection string 153b0bf2 Unify buildchain execution for CI and local environments d2a9880c Update PromQL upto Sept 23. 043a7fb8 Update README.md e982992c Update README.md dbf80a9a Update code owners f4af944c Update docker image tags 1dc983fe Update pkg/pgclient/config.go e710bd7b Update table of contents 90f3ef75 Update tracing docs to account for -enable-feature 4714a475 Update tracing.md de162138 Update tracing.md 4709267b Updated diagram to include tracing support f397cfe1 Updated grafana instructions e2446593 Upgrade Prometheus dependency 482adf42 Use 'beta' instead of 'experimental' d8a5cd52 Use pgtype.Int8 instead of int64 when fetching IDs from DB ff6d5c65 Use the same golang version in CI as in go.mod fbc72b42 add tracing documentation ecb95745 helm-chart: Align README with actual default values b4ee553f helm-chart: Remove maintenance configuration d5de2512 helm-chart: add ServiceMonitor definition a8c6b2aa helm-chart: address review comments 4233b2ec helm-chart: allow numbers to be passed as connection parameters fc92d6f8 helm-chart: fix incorrect annotation setting when prometheus scrape is disabled 2bff5128 helm-chart: improve UX of service configuration e195a58b helm-chart: include ServiceAccount definition b30347d8 helm-chart: move connection details into a secret 9f9573c0 helm-chart: prefer db uri over specifying connection data manually f92c3ba5 helm-chart: refactor enablement of otel tracing bb8785fb helm-chart: reorganize readme for improved UX 988308ee helm-chart: update README with new fields c2cd0408 helm-chart: use stringData to store Secret values

Docker images

  • docker pull timescale/promscale:0.7.0
  • docker pull timescale/promscale:0.7

0.6.2

2 years ago

This is a bug fix release. This fixes a bug with caching and upgrades from 0.6.0 and with json streaming ingest. It is recommended that users upgrade to avoid problems with caching.

Changelog

072ec1f Fix 0.5.1 to 0.6.x SQL migration script f26bbfe Fix cache population when initializing metric batcher ce939ac Fix partial upgrades to 0.6.0 b648bcd Prepare for the 0.6.2 release

Docker images

  • docker pull timescale/promscale:0.6.2
  • docker pull timescale/promscale:0.6

0.7.0-beta.1

2 years ago

Changelog

5e9f407 Add OTLP GRPC server with trace ingest support ede8fc5 Add dependabot to sync dependencies daily 42d9f39 Add initial database support for OpenTelemetry Tracing model f657c5f Add jaeger-proxy in goreleaser 6780d66 Add tests that versioned update scripts are applied transactionally 4c167a5 Adjust queries to match new schema 23ed199 Bump actions/setup-go from 1 to 2.1.4 9ac8a3b Bump reviewdog/action-golangci-lint from 1 to 2.0.1 e415a12 Change test to downgrade image before install b69122c Configure goreleaser to not publish latest for prerelease d20db8a Enhance helm-chart to support Promscale trace support 5dc3135 Fix default schema in retention functions 4cb82b3 Fix missing function bodies for date-ish operators bb24d1e Fix upgrade scripts for 0.6.0 e42aa10 Fix: json-streaming push: do not reuse previous label pairs 8c02658 Ignore distributed chunk ordering in test snapshot comparison 656f38b Ignore duplicate span conflicts on ingest 43dca3e Implement jaeger plugin interface with a proxy b21eade Implement jaeger query interfaces 335c056 Just a small docs correction about number of slack users e14c9ec Mark Exemplar API as experimental in docs. c219ea4 Prepare for the 0.7.0-beta.1 release 9807563 Prepare for the next development cycle bfc2d9e Refine tracing schema c0d9809 Temporarily disable problematic tests 07e5dbf Undo jaeger encoding codec 31894ed Unify tag/label matching operators for tracing and metrics d9dd5aa Update dependencies to fix build and allow dependabot upgrades 8fffd56 Update faq.md ef79cfe Use TLS cred files for GRPC servers run by Promscale 9d156c0 cmd/jaeger-proxy: Sanitize filepath input 33bf612 fix HA docs with bare metal config details 63a3f39 pkg/jaeger/proxy: Error out on failed connection closure

Docker images

  • docker pull timescale/promscale:0.7.0-beta.1
  • docker pull timescale/promscale:0.7.0-beta.latest

0.6.1

2 years ago

This is a bug fix release. This fixes a bug with upgrade scripts between 0.5.1 and 0.6.0 and with json streaming ingest. It is recommended that anyone who had trouble upgrading to 0.6.0 or anyone using the json ingest endpoint upgrade to this version.

Changelog

a80bd5b Enhance helm-chart to support Promscale trace support b19a495 Fix default schema in retention functions e0d749c Fix upgrade scripts for 0.6.0 5e8e56c Fix: json-streaming push: do not reuse previous label pairs c1dca01 Prepare for the 0.6.1 release d694fd0 Prepare for the next development cycle 584e95c Temporarily disable problematic tests

Docker images

  • docker pull timescale/promscale:0.6.1
  • docker pull timescale/promscale:0.6

0.6.0

2 years ago

At a high level, this release contains:

  • (beta) Support for downsampling using continuous aggregate
  • (Experimental) Support for storage of exemplars
  • Performance improvements
  • Support of Thanos Store API (thanks @2nick)

(beta) Support for downsampling using continous aggregates

This is the headline feature for this release.

Downsampling is the ability to reduce time resolution of old data by summarizing and aggregating individual samples into larger groupings, often by bucketing data by time (i.e. hours, days, weeks etc.). Summarizing data in this way reduces the amount of data that needs to be processed and stored and therefore improves the performance of queries for aggregate statistics over longer time spans and allows users to keep information about key features of their data for longer at a reasonable cost even if they choose to drop the individual samples to free up space.

In the Prometheus ecosystem, downsampling is usually done through recording rules. These rules operate on a fairly simple mechanism: on a regular, scheduled, basis the rules engine will run a set of user-configured queries on the data that came in since the rule was last run and will write the query results to another configured metric. Most of the Prometheus ecosystem, including Promscale, supports downsampling using recording rules.

With this release, Promscale is announcing the release of an additional downsampling method called continuous aggregation that is more timely and accurate than recording rules in many circumstances. Combined, we believe that these two methods will serve the use-cases of most users.

Continuous aggregates address the following limitations of recording rules:

  • Timeliness. With recording rules, users only see the results of the query once the rules engine has run the materialization but not as soon as data comes in. This might not be such a big deal for 5-minute aggregates (although it could be) but for hourly or daily aggregates it could be a significant limitation. Continuous aggregates have a feature called real-time aggregates where the database automatically combines the materialized results with a query over the newest not-yet-materialized data to give you an accurate up-to-the-second view of your data.
  • Rollups. Downsampling is defined for particular time-bucket granularities (e.g. 5 minutes). But, when performing analysis, you may want to look at longer aggregates (e.g. 1 hour). With recording rules this is sometimes possible (a minimum of many minimums is the same as the minimum of the samples) but often it isn’t (the average of many averages is not the same as the average of the underlying samples). Continuous aggregates solve this by storing the intermediate state of an aggregate in the materialization, making further rollups possible. Read more about the way we define aggregates in our previous blog post.
  • Query flexibility for retrospective analysis. Once a query for a recording rule is defined, the resulting metric is sufficient to answer only that one query. However, when using continuous aggregates, you can use multi-purpose aggregates. For instance, Timescale’s toolkit extension has aggregates that support percentile queries on any percentile, and statistical aggregates supporting multiple summary aggregates. The aggregates that you define when you configure the materialization are much more flexible in what data you can derive at query time.

(Experimental) Support for storing examplars

Prometheus has added experimental support for trace examplars in version 2.26. Now, Promscale has added support for long-term storage of exemplar data. This allows powerful analysis jumping between traces and metrics. Note that the query api for exemplars is still marked as experimental by Prometheus, thus our storage implementation is experimental as well.

Performance improvements

  • Significant improvements to performance of information views.
  • Better batching of requests to improve ingest performance.
  • Improved memory pooling

Support for Thanos Store API

Promscale now supports the Thanos Store API grpc service. This allows connecting Promscale with the Thanos querier allowing complex, mixed deployments that work together.

Prom-Migrator

Prom-migrator is released as a stable version 0.0.2. This release contains the following improvements:

  • Add support of metrics selector (thanks @2nick)
  • Misc stability improvements

Thanks

  • @wileyj for a bug-fix PR to our helm charts

Changelog

a503447 Add @> operator for prom_api.label_value_array fa1940c Add data retention support for metric views based on continuous aggregates 6ec6b95 Add description of prom-migrator's -reader-metrics-matcher param to README.md 5937c41 Add docker login option 93277f0 Add multi-column support for metric views 4cf94ad Add support for metric views based on 2-step aggregates f514bdb Add support for metric views to enable downsampling features 12ae31b Add support of Thanos Store grpc-service protocol to make able connect Promscale to Thanos Query 46085ed Add support of metrics selector for prom-migrator 09bf925 Add timescale cloud section in README 1e15c80 Adds unit tests for exemplar related functions. afed7c0 Adjust number of copiers b93cd85 Cleanup batch and batchVisitor ec2b942 Document ThroughputInterval is some boolean 23912cf E2E tests for exemplar endpoint. d43f803 Extend get_new_pos_for_key for exemplars. c7b1758 Fix a few misc bugs with Exemplar code 4228a47 Fix copier error handling 8ab6f07 Fix docker hub login in actions 95c5fe1 Fix error handling + cleanup cdd7d3a Fix images used for tests d5e72ec Fix permissions issues for linux in tests cdbf679 Fix upgrade test 09494e8 Fix: ingest real-dataset in Prometheus WAL. 3b3bfa6 Fixes to SQL logic for exemplars b406dd3 Get rid of metric_view_cagg table c193f66 Implement base for Exemplars support in Promscale. 64854c8 Implement batch visitor for better abstraction. ca6a96d Implement exemplar label-values re-ordering using exemplar_label_key_position table. 286ea23 Implementing go code to support exemplars ingestion. 2695f20 Improve batching b99f491 Make metric batcher batch more whenn copier blocked 634cae9 Misc interface cleanup 6b84681 Move (un)register_metric_view from _prom_catalog to prom_api 556acd2 Move series creation to copier 3e7f871 Move warning log to debug log, as it confuses the users. On Promscale start-up users see the warning log 3ea2c76 Moving parsing and validation of prom-migrator's -reader-metrics-matcher param to convertMetricsMatcherStrToLabelMatchers() and calling it from validateConf() ce226ee Optimize snappy decode mem usage 8117648 Prepare for the 0.6.0 release c14382e Querying mutiple exemplar data 1a7b551 Refactor exemplar index 37a0ca8 Refactor pgmodel.Querier into digestable files. bb9592c Refactor samples.go and code cleaning. 5bf8216 Remove pool, improve code and fix some bugs. 8e3bba6 Schema qualify calls to label_unnest and labels_info 80237ec Small refactoring on SQL for 2-step aggregation c8c8c44 Split funcs in Insertable() to InsertableExemplar(). 0426502 Support exemplars ingestion in Promscale, using custom type. 2bee426 Support for marshalling Exemplar data. 97b1991 Support for querying exemplar for single metric. fb64aca Support for querying in exemplars. 4bdcec2 Tune SCHEMA_CATALOG.metric_view() for performance. Replace LEFT JOIN LATERALS with TEMPORARY TABLES 026a470 Update CLI unit tests for prom-migrator. 1371750 Update metric cache to respect exemplar table entries. d42b71b fix - typo in cronjob template 66e5944 memory pool for generate key

Docker images

  • docker pull timescale/promscale:0.6.0
  • docker pull timescale/promscale:0.6

0.5.1

2 years ago

This is a bug fix release. This fixes a bug with Promscale maintenance tasks and when working with the Apache 2 version of TimescaleDB. It is recommended that anyone experiencing long maintenance task runs upgrade to this version.

Changelog

dfc95b9 Add goreleaser config 110beb8 Add text format to writing to Promscale docs 04ddd3f Fix Promscale on TimescaleDB-OSS. 1eb0e68 Fix bug in execute_data_retention_policy 08261e9 Fix poor performance in maintenance tasks bc0dd96 Prepare for the 0.5.1 release ec9a7b5 Prepare for the next development cycle 2a38fa5 Remove promscale extension building from CI process ee1cde6 Update cli.md e298ffd Update install locations for binary and systemd service files 06bd9d3 add option to configure namespace in values.yaml f8deccb fix the wrong metric table name in metric deletion 32f3e6b typo error

Docker images

  • docker pull timescale/promscale:0.5.1
  • docker pull timescale/promscale:0.5
  • docker pull timescale/promscale:latest

0.5.0

2 years ago

At a high level, this release contains:

  • Performance improvements during ingest and queries
  • Add support for saving and retrieving metric metadata information coming from Prometheus
  • Improve system observability
  • Bug fixes

Performance improvements

This release contains significant improvements for both ingest and queries. During ingest, we improve memory management to reduce pressure on the garbage collector as well as reduce the amount of work that happens when a key is added to a labelset. For queries, we add more efficient fetching of labels, especially in high latency environments, add pushdowns of vector selectors and the rate and increase functions, reduce some pushdown limitations so that more queries can use pushdowns, and improve memory usage.

Observability improvements

  • We added better logging of the achieved throughput of Promscale.
  • New warnings when the system can't keep up with the ingest load
  • Debug level logging of the SQL queries produced by PromQL evaluation.
  • Better visibility into maintenance tasks, including a new verbose_logging mode and updates to the application name as the jobs move along.

Bug fixes

  • Password masking during logging
  • Deadlocks during maintenance tasks

Prom-migrator

This is a beta release for Prom-migrator. It contains a bunch of features that were requested by users, highlights of which includes:

  1. The ability to retry migrating a slab in case of a timeout or an error. The behavior of reader and/or writer component on a timeout or error can be controlled by [retry, skip, abort].
  2. The ability to set custom timeouts.
  3. The ability to increase the time-range of successive slabs being fetched. This can help speed up the migration.
  4. Increase the maximum duration of a slab. Non-Prometheus-based storages, which do not have 2 hours limit on blocks, can benefit from this in case of pushing of slabs.
  5. Better memory control by adding the option to run the garbage collector after each slab is pushed.
  6. Human readable time (RFC3339) for start or end of migration.

Other than these, the release also contains performance improvements related to memory usage.

Breaking CLI changes in prom-migrator

  • -mint is now renamed to -start
  • -maxt is now renamed to -end
  • -concurrent-pulls is now renamed to -concurrent-pull
  • -read-url is now renamed to -reader-url
  • -write-url is now renamed to -writer-url

For more usage/CLI flags details, please see the README.md.

Changelog

e5791cd Add debian packaging to goreleaser 91d90b8 Add debugging data in metrics and logs, refactor throughput watcher. c39ea1d Add ewma package for rate calculation. 6a10e63 Add integration-tests to verify retrying behaviour on error. 4d26951 Add optional logging for maintenance jobs 07c815d Add support for promscale ext 0.2.x 7bcb492 Add tests for metadata ingestion/querying. 8838af6 Add warning if jobs take too long 1a78024 Adds support for TimescaleDB nighty smoke tests. ccdc0b1 Adds support for metric-metadata in Promscale. 0aa7f12 Allow auto_explain to be turned on in maintenance jobs 2fe9ab3 Allow pushdown of multiple clauses in a single query af9cddd Buffer allocation pool for parsing protobuf 1219879 Bunch up view creation e3e5084 Docs for multi-tenancy. 29a04f8 Finishing refinements for metric-metadata. ebe7ad8 Fix DB URI issues for URIs with missing ? parameter settings separator 89df3c2 Fix bad check for error in MetricTableName 9f8a5eb Fix label fetching during querying 461312a Fix possible deadlock in delete_expired_series(). c52aa84 Fix typo of README.md c3d10f5 Implement APIs for metadata support. 66adb11 Improve delete_expired_series b52954f Log time consumed by SQL queries in debug level & drop HA debug logs noise 1dd2b93 Make prom-migrator runtime more customizable. aca638f Optimize SQL for pushdowns 189f275 Prepare for 0.5.0 release 6dc3fb1 Prepare for the next development cycle e2e0d6c Pushdown rate and increase optimizations 081ecb7 Recovery actions and refactoring in prom-migrator. 23360f4 Refactor pushdowns dd8b1ed Set application_name in maintenance jobs 4bbb867 Stop fetching timestamps for regular series from the DB 1fc1a8e Support for warning user on slow data ingestion. 13e6825 Support vector selector pushhdown 9e4f128 Test fixes dd46a90 Test fixes 4bab710 Update PromQL with upstream upto May 11. 4483827 Update Prompb with upstream upto May 7. bc4846c Update docs in prom-migrator. 3217a93 Upgrade to pre-release versions in tests e59a363 Use more reliable methods of password masking 87b7f2b Use pools for pgx scan objects cc49108 add fgprof support 41c4ad7 add static deploy.yaml that includes Kubernetes manifests for Promscale f50c9be filter out indent characters from SQL query log 5c5eb73 move querier methods to NewQuerierPgxConn(), so that these methods will be only invoked for querying calls. 135f3e2 nits + comments + test fixes 9d18464 review iteration 2 ad00081 typo error in spelling

Docker images

  • docker pull timescale/promscale:0.5.0
  • docker pull timescale/promscale:0.5
  • docker pull timescale/promscale:latest

0.4.1

3 years ago

This is a bug fix release. This fixes a bug with Promscale on TimescaleDB 2.3. It also adds some bug and security fixes. We deem this upgrade low priority: you should only update if you are switching to TimescaleDB 2.3.

Changelog

e8f20f5 Add link to tutorial ca5c597 Add support to reject samples if they fall on compressed chunks. 636cf4e Fixes to support timescale 2.3.0 2d008fa Improve password masking function 0f7b95b Prepare for the 0.4.1 release 8be47a0 dont panic/segv on no memory cgroup

Docker images

  • docker pull timescale/promscale:0.4.1
  • docker pull timescale/promscale:0.4
  • docker pull timescale/promscale:latest