Releases: timescale/promscale
0.1.0-beta.3
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
- If you set up a custom cron job for your installation, please change the name of the procedure cron calls to
execute_maintenance()
(previously it was calleddrop_chunks()
but this name collided with a TimescaleDB function, causing confusion). This should only be necessary for people who used an installation procedure other than Helm. See 547064f for details. - The default ssl connection mode for connecting from the Timescale-Prometheus connector to TimescaleDB (PostgreSQL) was changed from
disable
torequire
. You will have to change this default using command-line flags if your TimescaleDB instance does not accept SSL connections.
Changelog
4cd2e6c Add concurrent endpoint tests (#188)
5cc9bb7 Add public schema to upgrade tests
e77ede9 Add series endpoint to router
04d00cc Add upgrade tests
4a3f35b Cap max number of connections used by default
547064f Change name of drop_chunks procedure to execute_maintenance
4fa4249 Change packaging to publish binary instead of archive
76d9876 Fix app version number
62e04aa Improve error handling for metric initialization
482f20c Prepare for the 0.1.0-beta.3 release
f7d7b41 Prepare for the 0.1.0-beta.3.dev.0 Development cycle
b28b20c Remove overly-verbose log line
6a1fde6 Set cascade_to_materialization=>false when dropping data
1836174 Skip back to the previous released version when choosing a docker
e62d9f1 Switch to requiring SSL by default when connecting to the DB
e28233d Test idempotent scripts as well
326066a Update timescale-observability->tobs in README
🙏 Thanks to the following community members for submitting issues
@wenerme for reporting an issue with high connection counts
Docker images
docker pull timescale/timescale-prometheus:0.1.0-beta.3
docker pull timescale/timescale-prometheus:0.1
docker pull timescale/timescale-prometheus:latest
0.1.0-beta.2
This is a bug fix release.
In-place upgrades from 0.1.0-beta.1 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.)
Changelog
24b1569 Add -dev inside directory name
c8777f8 Add concurrent write test
71403f8 Add logging
98b9f0d Add proper CORS handling by the HTTP API
b13cf55 Add tests for migrations
4cb1b34 Apply version upgrades in correct order
cd76d85 Batch Multi-Metric Queries
f1bb971 Change idempotent behavior for dev releases.
299f2be Change migration to use new version tracking
1e1f231 Close pgx.Rows as soon as possible
f3c4a7f Fix Idempotency of base.sql and tests thereof
1f8cf32 Fix extension installed check for already migrated DB schema
a9c6b1b Fix for min/max start/end timestamp values for remote read
0a60ca8 Fixup error handling of sql_reader
3ee22cc Ignore .gitignore inside sql version updates
d36ca32 Improve errors and naming
cc9671d Make tests more readable + nits
847d3e4 Prepare for the 0.1.0-beta.2 release
a96d677 Probe database for connection limit, and make it configurable
a0f03c9 Refactor TestPGXQuerierQuery
3ecc461 SHOW returns a string not an int
f096af6 Start splitting pgx into separate ingest and reader files
6693256 Update tests to detect labels issue
17925ee add tests for versions with pre-release tags
🙏 Thanks to the following community members for submitting issues
@mrMoe for reporting a problem with our upgrade scripts
@saket9550 for reporting a problem with out of range timestamps on remote read
@wenerme for reporting an error with too many connections being used.
@dtoddonx for reporting an issue with labels in queries
Docker images
docker pull timescale/timescale-prometheus:0.1.0-beta.2
docker pull timescale/timescale-prometheus:0.1
docker pull timescale/timescale-prometheus:latest
0.1.0-beta.1
This release is our first beta release.
“Beta” signifies that we believe our API is now feature-complete (although still not recommended for production workloads). The most significant update is support for PromQL query endpoints through the connector, which results in improved performance and overall usability.
Note: In-place upgrades are not yet supported, but will be addressed in our next release.
At a high level, this release:
- Adds the PromQL query endpoints to the connector. This means that users can now query the connector directly, instead of through a Prometheus server, which improves performance and ease of use.
- Adds a unique index on (time, series_id) and prevents duplicate entries from being inserted. This now matches Prometheus semantics.
- Adds
value
to compression order_by properties to improve the performance of queries that filter by value. - Creates a framework for pushing down aggregates into the database and implements pushdown for the
delta
aggregate, which yields significant query performance improvements on queries usingdelta
. We plan to incrementally add support for pushdowns of all PromQL aggregates. - Includes caching and performance improvements on the query path, including the addition of new LRU cache that better handles time-correlated data.
- Creates a system for data migration, in preparation for in-place upgrade support.
🙏 Thanks to the following community members for submitting issues
- @clambin for reporting an issue on ARM
- @saket9550 for reporting the issue with duplicate data
Changelog
211e540 Add --devel flag to readme instruction (#121)
471af44 Add /metrics to our custom mux
c078a42 Add CLOCK based approximate LRU
c8fa2a4 Add Slack and Google Groups info to Readme
a6f0ba8 Add a http router to handle path params
cdf73af Add architecture diagram
e44ce74 Add binary parsing directly into storage.SeriesSet
462489e Add counters for the various cache sizes
56b2368 Add end-2-end tests for label endpoints
293676a Add info to logging during decompression
4b0605e Add integration tests for PromQL query and query_range endpoints
016a0a4 Add label cache, and only fetch missing labels at query time
4dba4ed Add metrics for inserters
43115a4 Add postgres rate functions using a rust extension
c49e293 Add postgres version requirement to Readme
78af682 Add read only version to get key position, clarify comments
7f8d3ca Add rudimentary PromQL query and query_range support
7804c5e Add sql schema versioning and migration system
e598aba Add unit tests for the query and query_range endpoints
8a23f4f Add value to compression order by
d8af7d6 Alignment fix for atomically accessed field on 32-bit systems
79577bf Better log message when encountering duplicate
c22b8f6 Cleanup HTTP API code by removing redundancies
00495a3 Create CODE_OF_CONDUCT.md
c772cdc Create Docker images in CI
91ff419 Create query package and move queryable there
80a4f14 Delete stray debug print
ba2c9ef Disable pushdown if no extension
4d4df5c Document the PromQL HTTP API
ed7a6ad Excise old series cache
0804d28 Exclude prompb files from codeclimate report
291e86d Fix bugs with concurrent decompression
5799080 Fix duplicate metrics & logging
ad6f175 Fix image in README
07a3b4e Fix import path
d2d9724 Fix inserting new data before window
3dbc77f Fix labels stored in the cache
bb390c6 Fix nits
d841d68 Fix pprof now that we're not using the default mux
10cccee Fix pushdown array construction
b9f878c Fix race condition on labels
ffd42bb Fix sanitizing the table name during ON CONFLICT DO NOTHING
d92751e Fix tests in promql package
f650f98 Fork promql package at 2.18.1
71bcffd Hand-write a JSON marshaller for our responses
3f9e07f Hook up Queryable interface to reuse existing pgxQuerier interface
7451bd1 Hook up code to use promQL fork
287dbe7 Hook up queries to use new promql pushdown interfaces
79aee2c Ignore duplicate data points
09550e6 Implement LabelNames method in querier
675d018 Implement LabelValues method for pgx querier
ee7ce9d Implement Series endpoint of Prom HTTP API
cf5b734 Implement the labelNames endpoint
5812db6 Improve err logging and handling and add tests
3eae912 Make findMinTime more exact for MatrixSelector
6e5ba14 Make values non-nullable
09a0bfe Modify location and name of several no-longer-user-facing functions
959b4eb Modify promql engine to support pushdowns
ecf092a Modify respond method to return proper label values
b82424d Move op function definition logic to idempotent
26a0c52 Prepare for the 0.1.0-beta.1 release
0525ec6 Prevent concurrent migrations
a750d30 Pushdown delta
into the database
6d4b868 Re-organize README
815b962 Remove CopyFrom code
10ea400 Rename .codeclimate.yaml to .codeclimate.yml
71616d4 Rename label_array to get_or_create_label_array
b19b03d Reorganize SQL to have idempotent and other bits
60402c7 Reorganize preinstall into multiple files
4f37671 Replace remaining uses of bigcache with clockcache
92f7c5c Series_id should be a bigint in both the series and data table
1aa42ea Switch to back to upstream pgconn
6afb228 Truncate long pod/service names (timescale/tobs#11) (#156)
9da6ef9 Update HTTP API docs with /series endpoint
7d72fff Update README to clarify extension requires PG12+
3b5791b Update rust libraries
30a17ab Use array inserts rather than batches
3eaf7ac actually use the WriteRequest pool we have
d0fa4bf add .git to the .gitignore
Docker images
docker pull timescale/timescale-prometheus:0.1.0-beta.1
docker pull timescale/timescale-prometheus:0.1
docker pull timescale/timescale-prometheus:latest
0.1.0-alpha.4.1
This is a bug fix release.
Changelog
481e7cd Fix goreleaser config
32f6c40 Prepare for the 0.1.0-alpha.4.1 release
4843f8c Prevent concurrent table creation errors for long metric name
Docker images
docker pull timescale/timescale-prometheus:0.1.0-alpha.4.1
docker pull timescale/timescale-prometheus:0.1
docker pull timescale/timescale-prometheus:latest
This is an alpha release, so there are NO upgrade guarantees.
0.1.0-alpha.4
On a high-level this release:
- Improves ingest performance considerably, by at least 2x
- Improves memory usage
- Decreases CPU usage
- Handles ingest of many metrics better
- Fixes a bug with tables that are compressed and then backfilled
Changelog
b6498d0 Add a share lock for the series parent table
0e8577c Add basic telemetry
bb7617b Add option to output postgres log, and clean docker image when done
2286518 Create an insert ctx to reuse memory across requests
093802c Decompress automatically if trying to insert to a compressed chunk
9650f91 Fix bug in extension selector
232756e Fix log.go always being the caller in the logs
44f1597 Fix race conditions in elector and advisory lock
3bd7ebd Fork prometheus prompb inside our repo
09e08a4 Get rid of time-only index
a53c5a3 Increase number of database connections in the pool.
066695e Log a version and latest commit hash on startup
a565b92 Modify the protobufs to reuse allocated memory
e76a319 Optimize series inserts
6e75176 Prepare for the 0.1.0-alpha.4 release
461d52f Put in replacement rule for pgconn
e70f584 Reduce memory usage on ingest
f7b5fc0 Refactor Labels creation
4a7b4e4 Set version to last tag in Docker build
9a63194 Split metric creation into sync and async parts
eeb3e23 Switch to dedicated CopyFrom workers
d34591f Switch to per-metric inserter
a0cf084 Use the InsertCtx for Labels creation
Docker images
docker pull timescale/timescale-prometheus:0.1.0-alpha.4
docker pull timescale/timescale-prometheus:0.1
docker pull timescale/timescale-prometheus:latest
This is an alpha release, so there are NO upgrade guarantees.
0.1.0-alpha.3.1
Changelog
d8f7182 Change views to use the series partition
f353cbb Fix deadlock when getting series
795b052 Fix the cronjob "drop-chunk" by using the correct schema
26988fd Make migrations idempotent
e60f185 Refactor docker tests into their own subpackage
21da196 Release 0.1.0-alpha.3.1
1b0ade6 Take stronger lock before creating a series partition
This is an alpha release, so there are NO upgrade guarantees.
0.1.0-alpha.3
On a high-level this release:
- Adds the ability to install this software without database superuser privileges
- Adds an optional postgres extension called timescale-prometheus-extra to improve performance.
- Adds prom_reader and prom_writer roles for easy granting of read and write permission
- Simplifies the naming and usage of public functions (see docs)
- Adds informational views (see docs)
- Exposes connector metrics to Prometheus
- Improve performance by partitioning the series table
- Misc Improvements to docs and tests
Moving from alpha.2 notes
- It is suggested that you now use a database installation with the timescale-prometheus-extra extension
- Helm will do this automatically, if using the standard database image
- For docker we suggest using the
timescaledev/timescaledb-ha:pg12
image - All other installation need to install from source (see readme)
- Some public function names have changed, see commit 91bd00f
- Check our new informational views (see docs)
- The service name for the connector in the helm chart has changed (a '-connector' suffix was added)
Changelog
454d6f6 Add Go benchmarking for certain SQL functions
9a737ae Add Prerequisite check for timescale-prometheus-extra
43ecfd8 Add Prometheus namespace and register missing metrics (#67)
0931834 Add a postgres extension with some optimizations
5aaa4c9 Add comments to public functions
d7ff7ce Add custom logger to caching layer
ebbf824 Add informational views
39b76b5 Add infrastructure for psql-based golden tests
cb3e73a Add links to Go builds, reviewdog-golangci badges and add Code Climate badge
988bf3c Add main package unit tests
a72f7f4 Added Prometheus annotations to Helm chart (#66)
d9e4f17 Allow timescale_prometheus_extra installation without superuser
b38603a Be more conservative with args accepted for optimization
b73aa42 Change function naming
edd1162 Change service name in helm and describe expected secret (#74)
02eb5aa Create read and write access level roles and give grants (#69)
968ce2c Document data retention configuration
b23f65c Document the functional API
9a78cbd Fail connector startup on migration failure
a2dd1e4 Fix env vars
c28ebeb Fix example in sql_schema.md
98b559b Fix support function to work with operators
3e5e64e Improve docs for installing with extension
049ae1c Improve docs on sql schema
67b2fbd Improve function naming for getting jsonb and label value
f511883 Make some functions private
52a9bd8 Make sure db is accepting connections in container for tests (#71)
6305969 Make the get_series functions use partitioniing
3db9232 Mask password data before outputting to log
9ea792f Optimize create_series for partitioned series
a26ca18 Partition series by metric_id
91bd00f Rename some public functions to be consistent
668aa31 Reuse variables if they are already set
d25c3d3 Small fix for merge error
4a276dd Test query integration tests using a read-only session
6838522 fix benchmarks
88f19a0 typo in the link to prom-design-doc
This is an alpha release, so there are NO upgrade guarantees.
0.1.0-alpha.2
On a high level, this release:
- Adds better SQL views and functions to work with data in SQL (docs)
- Improves SQL UX by providing public functions and views in the default search_path.
- Switches to using TimescaleDB 1.7 on PostgreSQL 12
- Improved performance
- Cleans up code.
Moving from alpha.1 notes
- The data tables were moved from the
prom
schema toprom_data
- Easy to use view were added to the
prom_metric
andprom_series
schemas. prom
andprom_metric
schema are now added to the search path.- Environment variable prefixes were changed from
TS_PROM_PG
toTS_PROM_DB
. Similar changes were made to argument names.
Changelog
a6394e0 Add SQL views
4c666a6 Add functions for selecting labels based on filters
8bc0164 Add leader status Prometheus metric
f47a7cc Add query integration tests to check against Prometheus
0d6ffa1 Add schemas to search path
a97da39 Add test for elector code
4746881 Add unit tests to increase code quality
16c227b Adjust helm chart version
27b6b6f Check that elements exist before casting.
fe45064 Fix docker test on OSX
7122d16 Fix query result mismatches versus Prometheus
87be28e Improve performance by reducing goroutines
4b94c02 Make SQL changes that are not backward-compatible
8cd796f Make key column names consistent across metrics
20bf94f Place the data tables in prom_data
5223b98 REFACTOR: move query builder to its own file
257bdb4 REFACTOR: only pass SampleInfoIterator when needed
3db8552 Rename lkp.metric to lkp.metric_name
b505854 Reset modtime to zero in migration scripts
de1e767 SQL Function Audit
dc5da12 Switch to Array based interchange instead of JSONB
ec56369 Test handling of staleness marker
a4df54c Update the flag names and default value of the dbname flag (#32)
235d56e Use Timescale docker image based on PG12 for testing
70faa3f Use the Release.Namespace in the default template for the service host
0.1.0-alpha.1
Initial alpha release of the new connector. Includes a redesigned
schema and automatic compression. Works on TimescaleDB.
Originally based on https://github.com/timescale/prometheus-postgresql-adapter