postgres_exporter/CHANGELOG.md

12 KiB

Next

BREAKING CHANGES:

The logging system has been replaced with log/slog from the stdlib. This change is being made across the prometheus ecosystem. The logging output has changed, but the messages and levels remain the same. The ts label for the timestamp has bewen replaced with time, the accuracy is less, and the timezone is not forced to UTC. The caller field has been replaced by the source field, which now includes the full path to the source file. The level field now exposes the log level in capital letters.

  • [CHANGE] Replace logging system #1073
  • [ENHANCEMENT] Add save_wal_size and wal_status to replication_slot collector #1027
  • [ENHANCEMENT] Add roles collector and connection limit metrics to database collector #997
  • [ENHANCEMENT] Excluded databases log messgae is now info level #1003
  • [ENHANCEMENT] Add active_time to stat_database collector #961
  • [ENHANCEMENT] Add slot_type label to replication_slot collector #960
  • [BUGFIX] Fix walreceiver collectore when no repmgr #1086
  • [BUGFIX] Remove logging errors on replicas #1048
  • [BUGFIX] Fix active_time query on postgres>=14 #1045

0.15.0 / 2023-10-27

  • [ENHANCEMENT] Add 1kB and 2kB units #915
  • [BUGFIX] Add error log when probe collector creation fails #918
  • [BUGFIX] Fix test build failures on 32-bit arch #919
  • [BUGFIX] Adjust collector to use separate connection per scrape #936

0.14.0 / 2023-09-11

  • [CHANGE] Add state label to pg_process_idle_seconds #862
  • [CHANGE] Change database connections to one per scrape #882 #902
  • [ENHANCEMENT] Add wal collector #858
  • [ENHANCEMENT] Add database_wraparound collector #834
  • [ENHANCEMENT] Add stat_activity_autovacuum collector #840
  • [ENHANCEMENT] Add stat_wal_receiver collector #844
  • [ENHANCEMENT] Add xlog_location collector #849
  • [ENHANCEMENT] Add statio_user_indexes collector #845
  • [ENHANCEMENT] Add long_running_transactions collector #836
  • [ENHANCEMENT] Add pg_stat_user_tables_size_bytes metric #904
  • [BUGFIX] Fix tests on 32-bit systems #857
  • [BUGFIX] Fix pg_stat_statements metrics on Postgres 13+ #874 #876
  • [BUGFIX] Fix pg_stat_database metrics for NULL stats_reset #877
  • [BUGFIX] Fix pg_replication_lag_seconds on Postgres 10+ when master is idle #895

0.13.2 / 2023-07-21

  • [BUGFIX] Fix type issues on pg_postmaster metrics #828
  • [BUGFIX] Fix pg_replication collector instantiation #854
  • [BUGFIX] Fix pg_process_idle metrics #855

0.13.1 / 2023-06-27

  • [BUGFIX] Make collectors not fail on null values #823

0.13.0 / 2023-06-21

BREAKING CHANGES:

Please note, the following features are deprecated and may be removed in a future release:

  • auto-discover-databases
  • extend.query-path
  • constantLabels
  • exclude-databases
  • include-databases

This exporter is meant to monitor PostgresSQL servers, not the user data/databases. If you need a generic SQL report exporter https://github.com/burningalchemist/sql_exporter is recommended.

  • [CHANGE] Adjust log level for collector startup #784
  • [CHANGE] Move queries from queries.yaml to collectors #801
  • [CHANGE] Deprecate extend queries feature #811
  • [CHANGE] Deprecate additional database features #815
  • [CHANGE] Convert pg_stat_database to new collector #685
  • [ENHANCEMENT] Supports alternate postgres:// prefix in URLs #787
  • [BUGFIX] Fix pg_setting different help values #771
  • [BUGFIX] Fix column type for pg_replication_slots #777
  • [BUGFIX] Fix pg_stat_database collector #809

0.12.1 / 2023-06-12

  • [BUGFIX] Fix column type for pg_replication_slots #777

0.12.0 / 2023-03-21

BREAKING CHANGES:

This release changes support for multiple postgres servers to use the multi-target exporter pattern. This makes it much easier to monitor multiple PostgreSQL servers from a single exporter by passing the target via URL params. See the Multi-Target Support section of the README.

  • [CHANGE] Add multi-target support #618
  • [CHANGE] Add usename and application_name to pg_stat_activity metrics #673
  • [FEATURE] Add replication metrics from pg_replication_slots #747
  • [BUGFIX] Add dsn type for handling datasources #678
  • [BUGFIX] Add 64kB unit for postgres 15 #740
  • [BUGFIX] Add 4kB unit for postgres compiled with small blocks #699

0.11.1 / 2022-08-01

  • [BUGFIX] Fix checkpoint_write_time value type #666
  • [BUGFIX] Fix checkpoint_sync_time value type #667

0.11.0 / 2022-07-28

NOTE: pg_stat_bgwriter counter metrics had the _total suffix added #556

  • [CHANGE] refactor pg_stat_bgwriter metrics into standalone collector #556
  • [FEATURE] Add pg_database collector #613
  • [ENHANCEMENT] Add pg_database_size_bytes metric #613
  • [BUGFIX] Avoid parsing error from bogus Azure Flexible Server custom GUC #587
  • [BUGFIX] Fix pg_stat_archiver error in 9.4 and earlier. #599
  • [BUGFIX] Sanitize setting values because of Aurora irregularity #620

0.10.1 / 2022-01-14

  • [BUGFIX] Fix broken log-level for values other than debug. #560

0.10.0 / 2021-07-08

  • [ENHANCEMENT] Add ability to set included databases when autoDiscoverDatabases is enabled #499
  • [BUGFIX] fix pg_replication_slots on postgresql versions 9.4 <> 10.0 #537

0.9.0 / 2021-03-01

First release under the Prometheus Community organisation.

  • [CHANGE] Update build to use standard Prometheus promu/Dockerfile
  • [ENHANCEMENT] Remove duplicate column in queries.yml #433
  • [ENHANCEMENT] Add query for 'pg_replication_slots' #465
  • [ENHANCEMENT] Allow a custom prefix for metric namespace #387
  • [ENHANCEMENT] Improve PostgreSQL replication lag detection #395
  • [ENHANCEMENT] Support connstring syntax when discovering databases #473
  • [ENHANCEMENT] Detect SIReadLock locks in the pg_locks metric #421
  • [BUGFIX] Fix pg_database_size_bytes metric in queries.yaml #357
  • [BUGFIX] Don't ignore errors in parseUserQueries #362
  • [BUGFIX] Fix queries.yaml for AWS RDS #370
  • [BUGFIX] Recover when connection cannot be established at startup #415
  • [BUGFIX] Don't retry if an error occurs #426
  • [BUGFIX] Do not panic on incorrect env #457

0.8.0 / 2019-11-25

  • Add a build info metric (#323)
  • Re-add pg_stat_bgwriter metrics which were accidentally removed in the previous version. (resolves #336)
  • Export pg_stat_archiver metrics (#324)
  • Add support for 'DATA_SOURCE_URI_FILE' envvar.
  • Resolve #329
  • Added new field "master" to queries.yaml. (credit to @sfalkon)
    • If "master" is true, query will be call only on once database in instance
  • Change queries.yaml for work with autoDiscoveryDatabases options (credit to @sfalkon)
    • added current database name to metrics because any database in cluster maybe have the same table names
    • added "master" field for query instance metrics.

0.7.0 / 2019-11-01

Introduces some more significant changes, hence the minor version bump in such a short time frame.

  • Rename pg_database_size to pg_database_size_bytes in queries.yml.
  • Add pg_stat_statements to sample queries.yml file.
  • Add support for optional namespace caching. (#319)
  • Fix some autodiscovery problems (#314) (resolves #308)
  • Yaml parsing refactor (#299)
  • Don't stop generating fingerprint while encountering value with "=" sign (#318) (may resolve problems with passwords and special characters).

0.6.0 / 2019-10-30

  • Add SQL for grant connect (#303)
  • Expose pg_current_wal_lsn_bytes (#307)
  • [minor] fix landing page content-type (#305)
  • Updated lib/pg driver to 1.2.0 in order to support stronger SCRAM-SHA-256 authentication. This drops support for Go < 1.11 and PostgreSQL < 9.4. (#304)
  • Provide more helpful default values for tables that have never been vacuumed (#310)
  • Add retries to getServer() (#316)
  • Fix pg_up metric returns last calculated value without explicit resetting (#291)
  • Discover only databases that are not templates and allow connections (#297)
  • Add --exclude-databases option (#298)

0.5.1 / 2019-07-09

  • Add application_name as a label for pg_stat_replication metrics (#285).

0.5.0 / 2019-07-03

It's been far too long since I've done a release and we have a lot of accumulated changes.

  • Docker image now runs as a non-root user named "postgres_exporter"
  • Add --auto-discover-databases option, which automatically discovers and scrapes all databases.
  • Add support for boolean data types as metrics
  • Replication lag is now expressed as a float and not truncated to an integer.
  • When default metrics are disabled, no version metrics are collected anymore either.
  • BUGFIX: Fix exporter panic when postgres server goes down.
  • Add support for collecting metrics from multiple servers.
  • PostgreSQL 11 is now supported in the integration tests.

0.4.7 / 2018-10-02

  • Added a query for v9.1 pg_stat_activity.
  • Add --constantLabels flag to allow applying fixed constant labels to metrics.
  • queries.yml: dd pg_statio_user_tables.
  • Support 'B' suffix in units.

0.4.6 / 2018-04-15

  • Fix issue #173 - 32 and 64mb unit sizes were not supported in pg_settings.

0.4.5 / 2018-02-27

  • Add commandline flag to disable default metrics (thanks @hsun-cnnxty)

0.4.4 / 2018-03-21

  • Bugfix for 0.4.3 which broke pg_up (it would always be 0).
  • pg_up is now refreshed based on database Ping() every scrape.
  • Re-release of 0.4.4 to fix version numbering.

0.4.2 / 2018-02-19

  • Adds the following environment variables for overriding defaults:

    • PG_EXPORTER_WEB_LISTEN_ADDRESS
    • PG_EXPORTER_WEB_TELEMETRY_PATH
    • PG_EXPORTER_EXTEND_QUERY_PATH
  • Add Content-Type to HTTP landing page.

  • Fix Makefile to produce .exe binaries for Windows.

0.4.1 / 2017-11-30

  • No code changes to v0.4.0 for the exporter.
  • First release switching to tar-file based distribution.
  • First release with Windows and Darwin cross-builds.\

0.4.0 / 2017-11-29

  • Fix panic due to inconsistent label cardinality when using queries.yaml with queries which return extra columns.
  • Add metric for whether the user queries YAML file parsed correctly. This also includes the filename and SHA256 sum allowing tracking of updates.
  • Add pg_up metric to indicate whether the exporter was able to connect and Ping() the PG instance before a scrape.
  • Fix broken link in landing page for /metrics

0.3.0 / 2017-10-23

  • Add support for PostgreSQL 10.

0.2.3 / 2017-09-07

  • Add support for the 16kB unit when decoding pg_settings. (#101)

0.2.2 / 2017-08-04

  • Fix DSN logging. The exporter previously never actually logged the DSN when database connections failed. This was also masking a logic error which could potentially lead to a crash when DSN was unparseable, though no actual crash could be produced in testing.

0.2.1 / 2017-06-07

  • Ignore functions that cannot be executed during replication recovery (#52)
  • Add a -version flag finally.
  • Add confirmed_flush_lsn to pg_stat_replication.

0.2.0 / 2017-04-18

  • Major change - use pg_settings to retrieve runtime variables. Adds >180 new metrics and descriptions (big thanks to Matt Bostock for this work).

    Removes the following metrics:

    pg_runtime_variable_max_connections
    pg_runtime_variable_max_files_per_process
    pg_runtime_variable_max_function_args
    pg_runtime_variable_max_identifier_length
    pg_runtime_variable_max_index_keys
    pg_runtime_variable_max_locks_per_transaction
    pg_runtime_variable_max_pred_locks_per_transaction
    pg_runtime_variable_max_prepared_transactions
    pg_runtime_variable_max_standby_archive_delay_milliseconds
    pg_runtime_variable_max_standby_streaming_delay_milliseconds
    pg_runtime_variable_max_wal_senders
    

    They are replaced by equivalent names under pg_settings with the exception of

    pg_runtime_variable_max_standby_archive_delay_milliseconds
    pg_runtime_variable_max_standby_streaming_delay_milliseconds
    

    which are replaced with

    pg_settings_max_standby_archive_delay_seconds
    pg_settings_max_standby_streaming_delay_seconds
    

0.1.3 / 2017-02-21

  • Update the Go build to 1.7.5 to include a fix for NAT handling.
  • Fix passwords leaking in DB url error message on connection failure.

0.1.2 / 2017-02-07

  • Use a connection pool of size 1 to reduce memory churn on target database.

0.1.1 / 2016-11-29

  • Fix pg_stat_replication metrics not being collected due to semantic version filter problem.

0.1.0 / 2016-11-21

  • Change default port to 9187.
  • Fix regressions with pg_stat_replication on older versions of Postgres.
  • Add pg_static metric to store version strings as labels.
  • Much more thorough testing structure.
  • Move to semantic versioning for releases and docker image publications.

0.0.1 / 2016-06-03

Initial release for publication.