Releases: timescale/promscale
0.3.0
This is a major release that contains important performance improvements, bug fixes, and new features. Users are advised to upgrade to this release to get performance benefits.
At a high level, this release contains
- New high-availability system (experimental)
- Major performance improvements
- Improvement to our helm charts
- Bug fixes
- support for PostgreSQL 13
New high-availability system
This release contains a new system for handling Prometheus running in high-availability mode. The new HA system allows for easier deployments by allowing Prometheus and Promscale to scale independently and communicate through a load-balancer.
The new system works as follows: Prometheus is configured to attach external labels named cluster
and __replica__
to the samples it sends. Each Prometheus replica of an HA Pair would send the same cluster
label but a unique __replica__
label. Promscale would then elect a single Prometheus replica per cluster to write data at any point in time and would automatically failover if that Prometheus replica dies.
When deploying this new HA system, any Prometheus instance can send data to any Promscale instance via a load-balancer or similar mechanism. The correctness of the "replica election" does not depend on any mapping between Prometheus and Promscale nodes and is correct no matter the number of Prometheus or Promscale instances. This new system is enabled on the Promscale side with the CLI flag -enable-ha=true
and relies on the Prometheus instance being configured with cluster
and __replica__
external labels.
For this release, we are marking this new feature as experimental.
Performance improvements
- Consolidate the series caches (saves 33% of memory)
- Improve series creation and fetching performance (Improves series creation speed by >2x)
- Adjust PGX PostgreSQL statement cache to grow proportionally with the number of metrics
- Make the series cache grow automatically up to a memory limit.
- Optimize memory usage by samples
- Fix memory leak
Helm Chart Improvement
- Added helm chart support to configure nodeSelector & tolerations for Promscale & Maintenance cronjob.
- Updated Promscale helm chart to support the latest
0.8.2
TimescaleDB-single helm chart. - Changed Promscale deployment upgradeStartegy from RollingUpgrade to Recreate. As Promscale expects no Promscale to be connected to DB during the upgrade strategy.
Bug Fixes
- Fix handling of UTF-8 NUL chars
- Prevent crash when client does not send Bearer token when expected
Misc
- New SQL API for deleting an entire metric
- Updates to PromQL engine to support @ modifiers and negative offsets
- Support for PGBouncer via the
-simple-protocol=true
flag - Add support for PostgreSQL 13
Better observability of Promscale itself
We've made several improvements to the observability of Promscale. We've added the following metrics (all with the promscale_
prefix):
- PGX statement cache related:
statement_cache_elements_stored
,statement_cache_per_connection_capacity
,statement_cache_enabled
, - Metrics to monitor our caches:
metric_name_cache_evictions_total
,label_cache_evictions_total
,series_cache_evictions_total
,statement_cache_elements_stored
. - Metrics to monitor our data flow:
metric_batcher_channel_cap
,metric_batcher_channel_len
,copier_channel_cap
,copier_channel_len
- Metrics to monitor our batching:
metric_batcher_flush_series
,copier_inserts_per_batch
,copier_rows_per_batch
,copier_rows_per_insert
, - Metrics to monitor DB performance:
copier_insert_duration_seconds
Note the above list includes some metrics that were renamed: inserts_per_batch
->copier_inserts_per_batch
, rows_per_batch
-> copier_rows_per_batch
, and db_batch_insert_duration_seconds
->copier_insert_duration_seconds
Many of these metrics are useful for debugging performance issues as they occur, but some should be monitored and alerted on.
We suggest the following alerts:
- The rate of
metric_name_cache_evictions_total
,label_cache_evictions_total
, andseries_cache_evictions_total
should be low compared tometric_name_cache_capacity
,label_cache_capacity
, andseries_cache_capacity
, respectively. - Channels should not be full. So the ratio of
copier_channel_cap/copier_channel_len
should be less than one and the 99th percentile ofmetric_batcher_channel_len
should be less thanmetric_batcher_channel_cap
New CLI flags:
memory-target
- the amount of memory Promscale is allowed to use (defaults to 80% of auto-detected system memory).series-cache-initial-size
- limit to the size of the series cache at startup (default 250000, should be equal to the number of active series).series-cache-max-bytes
- Maximum size the series cache can grow to (defaults to 50% of the memory target).db-statement-cache
- allows users to disable using the PGX statement cache (needed if using PGBouncer)enable-ha
- enables the new High-Availability system (experimental, see above)
Notes for people upgrading from 0.2.0 and before
Three new CLI Flags were added to control the size of the series cache (memory-target
, series-cache-initial-size
and series-cache-max-bytes
). The default values should automatically adjust the series cache size to the right value. However, we suggest existing users set series-cache-initial-size
to an overapproximation of the number of active series they have.
Notes for people upgrading timescaleDB 1.x -> 2.x
You should run SELECT remove_compression_policy(format('prom_data.%I', table_name), if_exists=>true) FROM _prom_catalog.metric; after the upgrade. This cleans up the old way of running compression jobs, compression will still work (just in the new way).
Prom-Migrator
Prom-Migrator has a bug fix to resolve an issue with writer-auth flag handling
Dependencies
This works with the following dependencies
- Postgres: 12.x, 13.x
- TimescaleDB: >=1.7.3 <2.0.0 (PG 12), 2.x.x (PG12 & PG13)
- Promscale Extension: 0.1.x
Thanks
@SiddiqueAhmad and @0xflotus for PRs improving our docs
@grzesuav for a fix for the writer-auth flag in prom-migrator
Changelog
a114e89 Add "negative-offset" in list of disabled features.
0f7c8f2 Add PG13 e2e CI tests + Fixes
3025697 Add a memory-target CLI option
09a36fa Add benchmarks, DecodeBinary() for pgsafetype and update sql test files.
72ad82f Add ci debug output
e8597d8 Add error handling to env variable parsing
fa8d182 Add flag to control series cache memory size
b937229 Add header in safe pgtype files.
5444a12 Add observability metrics
18cfd52 Add option to select protocol used by db driver.
6baff86 Add pprof profiles
c01ed35 Add series id generation methods to micro benchmarks
d500521 Add size tracking to clockcache
a082c2a Add support function test
50e0f8a Add tests to verify multiple JSON payloads support.
5765cfb Add tolerations
f8bc479 Add utility library to get the total system memory.
731f747 Adds support for handling null chars in Prom label/label-value in runtime.
ec71ca6 Adjust sql update scripts
b7be9fb Apply suggestions from code review
78dc0ee Change default series cache size
7d38401 Create metrics for state of statement cache
55a369d Disable maintenance cronjob by defaultn as we expect all users to use >= TimescaleDB 2.0 and Also added an option to configure podAffinity & podAntiAffinity rules for Promscale deployment & Maintenance cronjob.
df9918f Docs for resource usage
8e86fd1 Document remote-write config params for most use-cases.
1276897 Fix deadlock in label creation
da00822 Fix end-to-end tests on mac
1d2817d Fix error handling and add checks
f3481db Fix memory leak in Protobuf
ed739c5 Fix misleading failed samples metric calculation.
b84d263 Fix potential deadlock in series creation
ac884d6 Fix tests for new series fetching method + cleanup
b091cb8 Fix tests to support PG13
4080467 Fix: enable optional features in PromQL engine were not applied
48fa29a Fixing testhelpers test to correctly close
f86a2ae GSoC 2021 idealist.
11fda67 HA based on external labels and data time
b4fa9e6 Implement pgutf8str.TextArray as underlying type in LabelList.
ae8b2f9 Improve observability of evictions
641c491 Improve series creation and fetching
5de3a5c Improve statement cache state log
31d8717 Improve workflow ci files
740abc1 Introduce method of growing the series cache
a4f1a38 Make Series concurrency safe
ba6ae38 Make the series cache a clockcache
3032915 Make the series endpoint return sorted series
b2d89ac Misc small refactoring
b75fd18 Optimize memory usage: samples
9c58625 Optimize memory: pass pointers to Inserter channel
fff4e87 Optimize memory: unset series labels and names when setting id
0370671 Prepare for the 0.3.0 release
e7f50e2 Prepare for the next development cycle
724c48f Prepare for the next development cycle
8dfea40 Prevent crash with client does not send token when expected.
d590231 Refactor PercentageBytes to use enum
feb8b48 Refactor and rename Labels to Series
d6a7240 Refactor: Cleanup SampleBatch and pending buffer api
6f0ff53 Remove a layer of caching for series
f104830 Remove unsused SeriesCache interface
90d07c1 Rename Labels to Series
1563e0c Rename block -> slab in prom-migrator.
6429143 Rename unset ids to invalid ids
c93499d Respond to PR comments
ac8b6b6 SQL api for deletion of metric.
15ea4a7 Separate out limits CLI config from validation
02dc562 Set statement cache cap and enabled once
dad1c6f Shut down refreshSync cleanly
b442443 Small PR fixes
c4121dd Statement cache depends on metrics cache
4330f6c Switch to using a function for data inserts
0e83020 Sync call TryChangeLeader if follower > lease
3a7183c Sync with db if non-leader is ahead of lease
97f0473 Try to change leader if maxt outside lease
3024287 Update PromQL till Feb 20.
ff50c60...
0.2.1
This is a bug fix release. This fixes a bug with Promscale refusing to work with TimescaleDB 2.1. It also adds some profiling endpoints for memory debugging. We deem this upgrade low priority: you should only update if you are hitting the bug with TimescaleDB 2.1.
Changelog
52506cd Add pprof profiles
bf77f5a Prepare for the 0.2.1 release
a773d38 Prepare for the next development cycle
d04b72b Update accepted TS version
Docker images
docker pull timescale/promscale:0.2.1
docker pull timescale/promscale:0.2
docker pull timescale/promscale:latest
0.2.0
This release adds support for TimescaleDB 2.0 multinode. This means all of TimescaleDB 2.0 features are now fully supported. This also means that Promscale now supports horizontal scalability across the entire stack!
This release also includes performance improvements and bug fixes.
At a high-level, this release:
- Adds support for Multinode TimescaleDB.
- Improved promQL query latency by 4x in some cases.
- Reduced I/O used by the PostgreSQL stats collector substantially by changing autovacuum settings.
- Fixed metrics produced by Promscale itself
- PromQL engine supports @ modifier which is disabled by default. (see promql-evaluation-flags)
- Added configuration for query timeout and default step interval
- Improved UX
Notes for people upgrading from 0.1.4 and before
- The CLI and ENV option
install-timescaledb
was renamed toinstall-extension
- Two new flags are added
upgrade-extensions
by default set totrue
will upgrade extensions if newer versions are available andupgrade-prerelease-extensions
by default set tofalse
enabling it will upgrade extensions to pre-prelease versions if pre-release versions are available. - We have changed the namespace of the metrics Promscale itself exposes from
ts_prom
topromscale
. We have also updated the PromQL engine based metrics to have namespace aspromscale
instead ofprometheus
. So, metrics likeprometheus_engine_query_duration_seconds
will now bepromscale_engine_query_duration_seconds
. - If running into
ERROR: out of shared memory (SQLSTATE 53200)
during upgrade, please increase yourmax_locks_per_transaction
setting.
Notes for people upgrading timescaleDB 1.x -> 2.x
- You should run
SELECT remove_compression_policy(format('prom_data.%I', table_name), if_exists=>true) FROM _prom_catalog.metric;
after the upgrade. This cleans up the old way of running compression jobs, compression will still work (just in the new way).
Prom-Migrator
- Adds support for concurrent pulling and pushing to improve migration throughput. (Please note concurrent push is disabled by default as we've seen some issues migrating data to Thanos concurrently, which we are still working out).
Thanks
@jnadler for PR #456
@jnadler for pointing out that we don't print a warning when an extension is not upgraded due to a schema lock (#431).
@puck for pointing out limitations with password masking for passwords with spaces (#413)
@oleotiger for working with Netdata to make sure Netdata can export data to Promscale
@franck102 for reporting a bug with compression jobs (#419)
@DMOsipov for reporting a bug with reset_metric_retention_period function (#401)
Changelog
557067a Add ARM builds for docker
35cd658 Add alerting, recording rules & data deletion docs
034186f Add compression and uncompression sizes in SCHEMA_INFO.metric.
1a80d18 Add flag to enable optional features in PromQL.
5cbeab3 Add test for PromQL @ modifier
f89da9b Add upgrade extensions flags to upgrade extensions to major releases & pre-releases.
7449bb3 Adds support for concurrent flushing in the writer.
da3f7e6 Adds support for configuring PromQL engine evaluation via CLI flags.
7d0e4ba Adds support for including application_name in db connection string.
231fc4c Adds support to make db-connection timeout configurable via CLI.
6d0838b Adjust autovacuum parameters
becb8fc Change cache size metrics to gauges
8bda75d Consider metric evaluations in query endpoints & update engine namespace.
6bd7f60 Create upgrade test for multinode
7581d04 Fewer logging of non-leaders in debug log-level.
24c7317 Fix docker dependencies for testcontainers
af4f73c Fix error compressing locked metrics
e934247 Fix error handling
3cc5788 Fix logging when extensions need an update but the lock was not obtained.
f56dcc2 Fix optional handling of Promscale extension
d635c63 Fix promQL integration tests
cba66f1 Fix proper handling of install flag
de8f32a Fix the reset_metric_retention_period function
fc8b286 Fix: disable pushing of progress-metric when disabled from cli.
32b3375 Get rid of multinode global & other refactoring
5cf8cfc Improve SQL queries for PromQL
d4d3e19 Improve handling of name clauses
6135b9b Improve logs when connector unable to migrate.
4324e6b Log once per metric table in case of a repetitive duplicate sample.
f529ffb Make upgrade test add second node after upgrade
063d7ae Mask passwords with spaces
53ba48d Prepare for the 0.2.0 release
5f87ccd Prepare for the next development cycle
1e5517b Print promscale version info when provided with version flag.
837065f Refactor dependency management out of migrate code
95135f0 Refactor extension migrations
56cc5fd Refactor runner package.
5a8d25f Small fixes for PR comments
b886512 Support adding nodes in multinode deployments
c9e44b3 Update PromQL upto Jan-20 (@ addition)
2adf969 Update copyright year to 2021
b935926 Update default concurrent-push values in prom-migrator.
4450414 Update docker.md with more details and examples.
a517956 Update findMinMaxTime() from upstream (undo 3eae912).
8c430ca Update prom-migrator docs.
71cf3e4 Update promql dir upto 34656bbf8eb8f45422bf24a9720ea087ab4e6434 which is 7 jan (prom lib update).
2c849e8 Warn about low background workers when less than databases count.
621ec0f add additional checks to parse flags when env variables are set. i.e cfg.InstallExtensions, cfg.HasGroupLockID, cfg.Migrate, & cfg.UseVersionLease.
f20f790 add bare metal promscale stack deployment docs
961b05d add docker-compose file, so that we can refer this compose file in office promscale docs in timescale website.
eaf6576 add tests for docker-compose file
00e266c fix to ignore mock* extension versions
3b546ec increase go tests timeout to 30m
031c020 prom-migrator: adds support for concurrent pulling of data.
44fe18a test CI issue fix
5496570 update new promscale arch image
Docker images
docker pull timescale/promscale:0.2.0
docker pull timescale/promscale:0.2
docker pull timescale/promscale:latest
0.1.4
This release contains official support for TimescaleDB 2.0 (single-node) as well as various bug fixes and code cleanup.
Please note that multinode support is still in alpha and automatic upgrades of multinode deployments to future versions is not yet guaranteed (we hope to support this starting with the next release). Please only use multinode deployments for testing only.
Notes for people upgrading from 0.1.3:
- The dropChunk property in the Promscale Helm chart is renamed to maintenance. The drop-chunks CRON job is now renamed to maintenance, you will need to replace the dropChunk.schedule value with maintenance.schedule.
- If using TimescaleDB 2.0: You should manually execute:
SELECT delete_job(job_id) FROM timescaledb_information.jobs WHERE proc_schema = '_prom_catalog' AND proc_name = 'compression_job'
SELETC config_maintenance_jobs(2, '30 min')
Notes for people upgrading timescaleDB 1.x -> 2.x
- You should run
SELECT remove_compression_policy(format('prom_data.%I', table_name), if_exists=>true) FROM _prom_catalog.metric;
after the upgrade. This cleans up the old way of running compression jobs, compression will still work (just in the new way).
Notes for multinode deployments
- This should only be used for testing, not production deployments
- In particular, we are not guaranteeing upgrades from 0.1.4 to future versions in multinode deployments.
- All nodes have to be added to the cluster before starting Promscale; adding nodes afterwards is not yet supported.
Changelog
c10c39b Add YAML config file support
a4d5535 Add capitalized metric names to end-to-end tests
f6a700b Add license header across the project files.
32ff47e Add retry on 422 HTTP status code from Prometheus in end-to-end tests
8e0a85d Add startingDeadlineSeconds to maintenance CronJob
e7ee55d Add support for HTTP Basic Authentication and TLS for web endpoints
97bccba Add values for maintenance job pod history limits
20a6082 Change end-to-end TS Docker image tags from latest-pg12 to 1.7.4-pg12
c1e7265 Change environment variable prefix from TS_PROM to PROMSCALE
8ded643 Fix E2E tests.
4e2a1ad Fix disabled rpm
662a7b6 Fix locking in maintenance tasks
51efd00 Fix sample throughput report interval
3fa5e63 Fix typo
034b96b Fix: apply conf flag values to planner.
24ea4b7 Improve delete end-to-end test times
8a3336f Improve verbosity of Helm chart maintenance job
8db3a6f Install maintenance UDAs by default
eafd003 Make compression use a single job rather than a job-per-ht
4dff1e8 Organize Github Actions into separate jobs to add parallelization
46b0da7 Prepare for the 0.1.4 release
6ea5afc Prepare for the next development cycle
f944c33 Progress bars decoupled from writer & reader, real-time speeds for fetches.
bea193b Refactor ingest path: Shift files to respective dirs.
8def883 Refactor ingest path: Split sql_ingest.go into mutiple files.
c077c49 Refactor ingest path: fix unit tests due to change of absolute paths.
d811dd7 Refactor move migrations to pks from pgmodel
c597c4a Refactor querier path: shift querier files to querier dir.
289de37 Refactor: shift pgmodel errors and schema under common package.
141591c Refactor: split sql reader and sql writer tests.
b643ec6 Rename drop-chunks to maintenace in helm chart
0c2d5b5 add db-uri option
bbafc08 bump timescaleDB supported range to <2.1.0
cd4bba6 fix trimLeadingZeros()
d9def80 small fix
Docker images
docker pull timescale/promscale:0.1.4
docker pull timescale/promscale:0.1
docker pull timescale/promscale:latest
docker pull timescale/prom-migrator:0.0.1-beta
docker pull timescale/prom-migrator:latest
0.1.3
This release contains some new capabilities and performance improvements. Additionally, we implemented a bunch of code cleanup and refactoring.
We’ve also made major improvements to our docs. Feedback on documentation and ease of use issues is most appreciated.
At a high level, this release:
- Implement prom-migrator to migrate data between various Prometheus long-term stores (in beta)
- Significantly decreases the transaction rate on the database by batching inserts from different metrics together
- Add support for ingesting data in JSON format to make it easier to ingest data using a custom application.
- add support for the series deletion endpoint
- Add an RPM build release
- Improves log messages throughout
Changelog
027c641 Accept progress metric as part of remote write server.
554d74d Add HA docker-compose and tests
29f4691 Add JSON streaming payload support to write endpoint
e76004c Add Makefile
c5d0214 Add command line docs
b8bbc8d Add comments and improve time delta logic.
621e1e6 Add custom compression job and enable on multinode
8346766 Add end-to-end tests for delete complete series.
b0cd06c Add ignore progress metric flag.
c4fa984 Add integration tests to ensure memory footprint within limits.
b5425e7 Add prom-migrator to release
3e73431 Add support for go-sec based vulnerability scanning.
ad06f1c Add support for resuming migration.
c458589 Add unit tests for planner.
4e013bc Add unit-tests.
54b53df Add write endpoint API documentation
eaa3d56 Adds ability to handle edge-cases in the cli.
24eab95 Adds base architecture for prom-migrator tool.
9b64d24 Adds integration tests for migration-tool modules.
835c294 Adds support for auth in promscale.
4100bbb Adds support for complete deletion of series.
25ce0bf Adds user docs for prom-migrator.
f12f80a Adjust compression for multinode RC4
cd20fdc Adjust default connections for HA setup
9e38459 Batch inserts to multiple tables
40e8391 Do not close the connection when releasing lock
bf4cb76 Do not print progress-bars during CI-tests.
a6a6f1c Docs update
d14c8de Externalize labels cache and PgxConn
d99e130 Fix ingestor closing in tests
e02488a Fix issue when ingesting batches that span multiple compressed chunks
21fad0f Fix race in integration tests.
4e1d0da Fix sql tests
858ba9f Implement client.Read() and client.Store() than using ustream.
1ecc7f6 Implement max-block-size.
e226620 Implement time-range delta determination tests.
8a0802c Improve batching
1a912cc Integrate rpm spec file with goreleaser config
69bc36e Integrated progressbar support.
636bb0f Make HealtChecker a fn type
28713e9 Move all build scripts to the build/ directory
bb881de Move tests from pgmodel to pkg
404220b Organize imports
4cec898 Partial Multinode Support
6215166 Prepare for the 0.1.3 release
797a4fe Prepare for the next development cycle
38d3415 Promscale manual deploy docs using pre-built binary.
50b6738 Prototype for prom-migrator along with few arch clean-ups.
bc210ba Reduce noise in upgrade tests by filtering
c004494 Refining the code flow and removing unused code.
9c07db8 Separate client config in new file
6d80061 Separate the code for reading labels from sql_reader
7fedf95 Shift to require from testutil across other dirs.
53feb7b Small cleanup to nsertErrorFallback
e9ac511 Specify the version to test upgrades from explicitly
9aa1fee Support for integration tests with a hault.
9a6a270 Update CLI messages in accordance with docs.
c59d8c6 Update Promscale scorecard for compliance test score.
4ae0889 Update README.md
713d61f Update comments and flag vars.
bea9a1b Update docs/binary.md
47a7cb6 Update promb to recent commits till 19 Nov.
c70a3c8 Update promql dir and shift from testutil to assert/require.
1390631 Update promscale.spec
46330d5 Use plan config instead of passing conf around the planner in order to reduce code length.
439304f improve log msgs
efcf633 review comments update(1)
b83453b review comments(1)
0e6464f small cleanup
b5cb4a0 suggestions from review comments
50b2292 update from review comments
Docker images
docker pull timescale/prom-migrator:0.0.1-beta
docker pull timescale/prom-migrator:latest
docker pull timescale/promscale:0.1.3
docker pull timescale/promscale:0.1
docker pull timescale/promscale:latest
0.1.2
This is a bug fix release. The fixed bugs related to auto-updating of Postgres extensions. It is recommended that people using Kubernetes or Docker deployments upgrade to this version. This release also add experimental support for TimescaleDB 2.0.0-rc2.
In-place upgrades from 0.1.0-beta.1 onwards are supported automatically.
Changelog
29ddf5d Add F.A.Q. section in docs
2b6b831 Add read-only mode to the connector
7a8e6ae Add unit-tests for statistics of prom data
adafa96 Adds support for statistics in prometheus metrics in a global view
e7d564a Deprecate REST API support for leader-election HA method.
53f36f1 Do not auto-upgrade extension across major versions
69a4e65 Do not upgrade past the default extension version
004152c Docs: using Promscale with Prometheus in High Availability.
f33f840 Enable to pass arguments to the promscale container (#317)
067a7f5 Fix update old series view issue with no metrics ingested
434aa7a Prepare for the 0.1.2 release
9abefee Prepare for the next development cycle
500b4f8 REFACTOR clean mockBatch not that there's only one mock
6954184 REFACTOR expunge remaining usage of the old mock
5d3c29d Remove race checking on all but one CI check
fd75f2f Update Promscale to support TimescaleDB 2.0
b1810f2 repoint to actual URLs
Docker images
docker pull timescale/promscale:0.1.2
docker pull timescale/promscale:0.1
docker pull timescale/promscale:latest
0.1.1
This is a bug fix release. The fixed bugs relate to handling of series and labels that could have been deleted during data retention. We suggest upgrading if you have short data retention periods.
In-place upgrades from 0.1.0-beta.1 onwards are supported automatically.
Changelog
18e2e8b Add QueryRow to our connection interface
1d4b05e Add SQL API for managing metric compression setting
c2232b3 Add code documentation for query/read path of the connector
e436d2c Adds support for checking pg version on startup
6e33530 BUGFIX reset pendingBuffer epoch when we're done
88cb717 Epoch-Based cache validation
4645d92 First pass documenting the write path
8ba00b4 Fix bug with deletion of metric name labels.
41c722f Fix erroneous PromQL query in end-to-end tests
523d892 Fix error reporting to prevent panic
31895c8 Fix golden file tests
a286d4d Fix logging output to match rest of the project
7ab27d0 Fix views on Vanilla PG and add tests
1c852ea Make example docker-compose clearer (#305)
31466dd Mask password while printing config
b6f40e6 Prepare for the 0.1.1 release
1de1192 Prepare for the next development cycle
4b953ad REFACTOR rearrange mocks
102eac2 REFACTOR switch TestPGXInserterInsertData to the new mock
42553f9 REFACTOR switch TestPGXInserterInsertSeries to the new mock
6d31d17 Start a pgmodel Readme
Docker images
docker pull timescale/promscale:0.1.1
docker pull timescale/promscale:0.1
docker pull timescale/promscale:latest
0.1.0
With this release, we’re officially removing the “pre-release” tag – marking a major milestone in the evolution of the Promscale project and its graduation out of beta 🎓.
This signifies our belief that your metric data will be stored durably and safely – and that you can start using Promscale for production workloads (if you don’t mind the occasional API change 🛠).
From this release onwards, we're guaranteeing automatic, in-place upgrades. This means all users - from 0.1.0-beta.1 onwards - can automatically update to this version and/or any future ones 🔥.
Given this milestone, we thought that we’d reiterate our vision:
Make it easy for developers to ask any question, create any dashboard, and get more visibility into their systems and the metrics they care about most.
Promscale is an open-source long-term store for Prometheus data, designed for advanced analytics - including native support for PromQL and SQL and a database running TimescaleDB, the open-source relational database for time-series data.
Key capabilities:
- Easily join metrics and auxiliary metadata about the systems you’re monitoring to create a more complete view.
- Efficient long-term storage for historical analysis, such as past incident reporting, capacity planning, auditing, and more.
- Flexible data management with multi-tenancy, automated data retention, downsampling, and backfill.
- Use SQL and/or PromQL to query your data. SQL supports more complex analysis than PromQL, but you can still use PromQL to run your favorite Prometheus queries.
- Operational maturity. TimescaleDB has support for streaming backups, high-availability, read replicas, etc. Promscale supports multiple Prometheus servers running as an HA deployment, either using leader election to write data from only one of the Prometheus servers or writing data from all servers to TimescaleDB.
To help you get up and running quickly, we’ve put together two short demo videos and a blog post that details the origin of the project and its design, how it works, and a few ways to get started.
At a high level, changes since 0.1.0-beta.5:
- Adds a guarantee of automatic in-place upgrades to future versions.
- Adds support for vanilla PostgreSQL
Changelog
76518ed Add simple function to retrieve a labels_array
c012806 Enable running connector without TimescaleDB
9bec5c8 Fix log location reporting
b6f7fe0 Fix max_connections setting in tests
3a5c92e Fix permissions for tests without extension
9ce651e Fix releases link
e6c538e Fix scheduled GH action
cce8ab1 Install timescaledb flag
2816ec1 Prepare for the 0.1.0 release
3b39662 Prepare for the next development cycle
b241874 Prevent potential deadlock
074867c Refactor extension logic to be the same between extensions
53a3955 Small fixups
6a66a36 Special case the first version
3cc8e82 Update architecture diagram
044f8ee Update intro in README
2299d37 Update the docs/sql_schema.md containment operator example
bcc43a6 Use safer containers for tests
🙏 Thank you to everyone who submitted issues and PRs, without YOU we would never have reached this milestone.
@Atomicbeast101, @clambin, @dtoddonx, @emanzx, @franck102, @halfmatthalfcat, @jpigree, @jostmart, @mrMoe, @redhatromero, @saket9550, @timflannagan1, @tr2vil @wenerme and many, many others.
Docker images
docker pull timescale/promscale:0.1.0
docker pull timescale/promscale:0.1
docker pull timescale/promscale:latest
0.1.0-beta.5
This release is our first release using the new Promscale name
In-place upgrades from 0.1.0-beta.1 onwards should be supported automatically. (Please note that we have not yet officially committed to in-place upgrades until the software leaves beta status, but will strive to support in-place upgrades going forward.)
At a high level, this release
- Changes the project name from
timescale-prometheus
toPromscale
- Improves upgrade safety for deployments where multiple connectors write to a single database.
- Improves safety via more dependency version checking.
- Improve testing (adds end-to-end tests and header checking)
- Improves operations by adding randomness to chunk sizes.
- Integrates improvements in upstream prometheus into our code
Notes on updating from previous versions
The names of docker images have changed:
- The connector was renamed from
timescale/timescale-prometheus
totimescale/promscale
- The TimescaleDB image with the extension moved from
timescaledev/timescale_prometheus_extra
totimescaledev/promscale_extension
Changelog
7c978d1 Add HTTP header checking to end-to-end integration tests
7f28610 Add connector building from code and more test cases
ad7d968 Add log format flag and default to logfmt formatting for logs
4acf795 Add randomness to chunks when creating
b379c71 Add tests ensuring we take the migrate lease correctly
36fdeaa Add text about compliance to Readme
3701477 Adds support for checking Timescaledb version on startup and error/warn on mismatch.
e29c341 Change telemtry prefix
a87148c Create end-to-end tests
169805c Create new facade main
8c89046 Ensure fate-sharing for the migration lock
4be50d3 Fix headers in upgrade test
2135e55 Fix leader election
7cb24bf Make all config options public
573df81 Move extension into promscale_extension repo
bc3c5e7 Move router and metrics to api package
3cdb8e8 Prepare for the 0.1.0-beta.5 release
78b1d57 Prepare for the next development cycle
bb0c60d Prepare to rename Timescale-Prometheus to Promscale
e1d48d9 REFACTOR: Move most of main.go into its own library
d59780d REFACTOR: Separate leader election from generic locks
40d466f Rename timescale_prometheus_extra extension to promscale
0f5d0c1 Update extension compilation instructions
2c76f30 Update lock handling for migrate
855edac Update pgmodel, api, query modules in pkg
4adc895 Update promb from upstream.
a2b3cb3 Update promql module from upstream
🙏 Thanks to the following community members for submitting issues
@emanzx for pointing out problems with our extension compilation instructions
Docker images
docker pull timescale/promscale:0.1.0-beta.5
docker pull timescale/promscale:0.1
docker pull timescale/promscale:latest
0.1.0-beta.4
This is a bug fix release.
In-place upgrades from 0.1.0-beta.1 onwards should be supported automatically. (Please note that we have not yet officially committed to in-place upgrades until the software leaves beta status, but will strive to support in-place upgrades going forward.)
Notes on updating from previous versions
- The
migration
CLI flag was changed from a boolean to a string with possible value of [true, false, only]. True and false enable or disable migration while running the connector. Only means that the connector will perform a migration and then exit.
Changelog
97afec9 Add real dataset end-to-end samples and tests
462708e Check dependcies separate from migrations
f48e47e Do not require SSL DB connections in tests
a4cf0a5 Factor extension code into extension.go
3b30877 Fix codeclimate
f0452e4 Fix docker-compose
0464e9f Fix extension makefile
8c25065 Fix golangci-lint issues.
16b634e Fix pgextwlist setup
0490b5b Fix scheduled GH action run
f3b30a3 Fix telemetry logic
21686a8 Fix versioning in timescale_prometheus_extra
5082fd2 Handle race condition in concurrent write tests
9839127 Improve documentation
f1bf695 Make migrate into an enum
74a92db Make the connector update the extension to the correct version
13163f3 Make upgrade tests include testing extra extension update
6ae86fc Prepare for the 0.1.0-beta.4 release
fe8e641 Prepare for the next development cycle
4653cab Undo previous hack to deal with pgextwlist
ec4bd13 Update Docker image to latests timescale
4ad81ac Validate Request Headers
e4456c6 add ssl mode config option
Docker images
docker pull timescale/timescale-prometheus:0.1.0-beta.4
docker pull timescale/timescale-prometheus:0.1
docker pull timescale/timescale-prometheus:latest