Releases: pganalyze/collector
Releases · pganalyze/collector
v0.56.0
- Improve the collector test output
- In addition to the existing test output, the new summary is added to provide
a consolidated result showing the state of the collector setup - Add more verbose output for the
--test-explain
flag
- In addition to the existing test output, the new summary is added to provide
- Amazon RDS/Aurora: Use 5432 as a default DB port
- Previously IAM authentication would fail with "PAM authentication failed"
when the port was not explicitly set in the collector configuration
- Previously IAM authentication would fail with "PAM authentication failed"
- Update pg_stat_statements logic
- Support updated fields in Postgres 17
- Autovacuum:
- Add support for updated log format (frozen:) in Postgres 16+
- Publish Helm Chart package
- The Helm Chart repository can be accessed via https://charts.pganalyze.com/
- The collector chart is available at
pganalyze/pganalyze-collector
- The oldest available package version is 0.55.0
- Docker image: Support taking additional arguments for
test
,test-explain
,collector
- Previously, adding the verbose flag like
test -v
wasn't working. With this
update, the additional arguments are now correctly passed to the process and
test -v
will run the test with verbose mode
- Previously, adding the verbose flag like
- Docker image: Update the internal collector config file location
- When the Docker container is passed the
CONFIG_CONTENTS
environment variable,
the file used to be written to/home/pganalyze/.pganalyze_collector.conf
location, and then read by the collector - Instead, this file is now written to the
/config/pganalyze-collector.conf
location - this fixes problems when having a read-only root filesystem
- When the Docker container is passed the
- Add
--generate-stats-helper-sql
helper command- This command generates a SQL script that can be passed to
psql
to install
stats helpers (e.g. for collecting column stats) on all configured databases
for the specified server
- This command generates a SQL script that can be passed to
v0.55.0
- Add integration with Tembo
- Supports Log Insights (via log streaming) and system metrics download
- This integration is mainly intended for direct use by the Tembo Postgres
provider (the collector is deployed by Tembo, if enabled)
- Heroku integration
- Avoid unnecessary error messages related to state file and reload mechanism
- Accept PGA_API_BASE_URL env var in addition to PGA_API_BASEURL
- Going forward we recommend using
PGA_API_BASE_URL
when configuring the
collector for sending to pganalyze Enterprise Server installations
- Going forward we recommend using
- Syslog handler: Allow leading spaces before parts regexp
- When configuring rsyslogd for RFC5424 output with the
RSYSLOG_SyslogProtocol23Format template, it adds a leading space that we
didn't anticipate correctly.
- When configuring rsyslogd for RFC5424 output with the
- Relation stats: Call pg_stat_get_* directly instead of using system views
- The collecror now calls the underlying pg_stat_get* functions directly,
which has the same effect as querying the pg_stat_all_tables and
pg_statio_all_tables views (as they are simple views without any security
barrier), but results in better performance when a table filter
(ignore_schema_regexp
/IGNORE_SCHEMA_REGEXP
) is active
- The collecror now calls the underlying pg_stat_get* functions directly,
v0.54.0
- Update pg_query_go to v5 / Postgres 16 parser
- Bugfix: Skip collecting extended statistics for Postgres 11 and below
- Since the system view
pg_stats_ext
was introduced starting with Postgres
12, this was causing the issue of collecting any schema data on Postgres 11
and below
- Since the system view
v0.53.0
- Track extended statistics created with
CREATE STATISTICS
- This is utilized by pganalyze Index Advisor to better detect functional dependencies, and improve multi-column index recommendations
- To allow the collector to access external statistics data you need to create the new "get_relation_stats_ext" helper function (see https://github.com/pganalyze/collector?tab=readme-ov-file#setting-up-a-restricted-monitoring-user)
- Docker image: Don't reload when calling "test" command
v0.52.4
- Log Insights: Add support for receiving syslog over TLS
- You can configure a TLS certificate for the collector syslog server using
the following config settings:db_log_syslog_server_cert_file
/LOG_SYSLOG_SERVER_CERT_FILE
or
db_log_syslog_server_cert_contents
/LOG_SYSLOG_SERVER_CERT_CONTENTS
db_log_syslog_server_key_file
/LOG_SYSLOG_SERVER_KEY_FILE
or
db_log_syslog_server_key_contents
/LOG_SYSLOG_SERVER_KEY_CONTENTS
- The Certificate Authority both on the server side and the client side also
can be specified via config settings
- You can configure a TLS certificate for the collector syslog server using
- Azure: Fix managed identity credential creation in Log Insights
- This fixes a failure of obtaining logs from Azure when the managed identity
credential was used. This was with the "failed to set up workload identity
Azure credentials" error message
- This fixes a failure of obtaining logs from Azure when the managed identity
- Citus: Avoid error collecting schema stats on tables with no indexes
v0.52.3
- Collector log output: Reduce frequency of some snapshot log events
- Previously, near real-time "compact" snapshots would generate log lines
every 10 seconds, which made errors hard to find - Now, a single log line is printed once a minute with a summary of snapshots
submitted - Note that
--verbose
will still log every snapshot as it's submitted
- Previously, near real-time "compact" snapshots would generate log lines
- Collector log output: Add "full" prefix for full snapshots sent every 10 minutes
- This changes the "Submitted snapshot successfully" message to read
"Submitted full snapshot successfully" instead
- This changes the "Submitted snapshot successfully" message to read
- OpenTelemetry integration:
- Support
pganalyze
tracestate to set start time of the span - Start time can be specified with
t
member key as Unix time in seconds,
with decimals to specify precision down to nano seconds - This allows specifying a better span start and end time in case precise
timestamps are not present in the Postgres logs, like with Amazon RDS
- Support
- Allow pg_stat_statements failures and continue snapshot processing
- Previously, when pg_stat_statements data collection failed (e.g. a timeout
when the query text file got too large), the whole snapshot was treated as
failed and only reported an error snapshot to pganalyze, without any
statistics - Instead, treat pg_stat_statements errors as a collector error in the
snapshot, but continue afterwards and report other statistics that were
collected successfully
- Previously, when pg_stat_statements data collection failed (e.g. a timeout
v0.52.2
- OpenTelemetry integration:
- Support sqlcommenter format query tag (
key='value'
) fortraceparent
- Add a new config setting
otel_service_name
/OTEL_SERVICE_NAME
for
customizing the OpenTelemetry service name
- Support sqlcommenter format query tag (
v0.52.1
- Postgres 14+: Include toplevel attribute in statement statistics key
- This could have caused statistics to be incorrect in Postgres 14+ when
the same query was called both from within a function (toplevel=false)
and directly (toplevel=true), with pg_stat_statements.track set to "all" - If affected, the issue may have shown by bogus statistics being recorded,
for example very high call counts, since the statement stats diff would
not have used the correct reference
- This could have caused statistics to be incorrect in Postgres 14+ when
v0.52.0
- OpenTelemetry integration: Allow exporting EXPLAIN plans as trace spans
- This is an experimental feature that allows configuring the collector
to send an OpenTelemetry tracing span for each processed EXPLAIN plan
with an associatedtraceparent
query tag (e.g. set by sqlcommenter)
to the configured OpenTelemetry endpoint - To configure the OTLP protocol endpoint, set the new config setting
otel_exporter_otlp_endpoint
/OTEL_EXPORTER_OTLP_ENDPOINT
, with a
endpoint string like "http://localhost:4318". You can also optionally
set theotel_exporter_otlp_headers
/OTEL_EXPORTER_OTLP_HEADERS
variable to add authentication details used by hosted tracing providers
like Honeycomb and New Relic
- This is an experimental feature that allows configuring the collector
- Relax locking requirements for collecting table stats
- This avoids skipped statistics due to page or tuple level locks,
which do not conflict withpg_relation_size
as run by the collector.
- This avoids skipped statistics due to page or tuple level locks,
- Activity snapshots: Normalize queries for
filter_query_sample = normalize
- This matches the existing behavior when
filter_query_sample
is set
toall
, which is to run the normalization function on pg_stat_activity
query texts, making sure all parameter values are replaced with$n
parameter references
- This matches the existing behavior when
- Self-managed servers: Add test run notice when system stats are skipped
- Docker log tail: Re-order args to also support podman aliased as docker
v0.51.1
- Fix handling of tables that only have an entry in pg_class, but not pg_stat_user_tables
- Due to a bug introduced in the last release (0.51.0), databases with such tables would error out and be ignored due to n_mod_since_analyze and n_ins_since_vacuum being NULL