Releases: pganalyze/collector
Releases · pganalyze/collector
v0.62.0
- Fix PII filtering for detail log lines
- Due to a bug in 0.60.0, all detail log lines (lines that add additional
context to the primary log message) were unnecessarily redacted
- Due to a bug in 0.60.0, all detail log lines (lines that add additional
- Add DB_URL_FILE and DB_PASSWORD_FILE (@Munksgaard)
- This allows passing sensitive DB passwords through files instead of environment
variables. This makes collector work better with systemd
credentials and NixOS flakes.
- This allows passing sensitive DB passwords through files instead of environment
- Collect query plan information on Amazon Aurora
- This collects query plans and statistics in full snapshots using the aurora_stat_plans function.
- Update systemd file to use MemoryMax instead of MemoryLimit
- The latter is deprecated
v0.61.0
- Store query texts in temporary file before fingerprinting them
- This fixes an increase in reported runtime of collector queries,
due to a slow loading of the result set introduced in release 0.60.0
- This fixes an increase in reported runtime of collector queries,
- Log Insights: Use more specific log parsing regexp
- This avoids incorrectly sending application/database/role identifiers longer
than 63 characters (Postgres' built-in limit) when there are parsing issues
- This avoids incorrectly sending application/database/role identifiers longer
- Show test error when pg_stat_statements version is below 1.9 with Postgres 14+
- Old pg_stat_statements extension schemas don't correctly include the
"toplevel" attribute, and can cause bogus query statistics when there
is a mismatch between the extension schema and the shared library code
- Old pg_stat_statements extension schemas don't correctly include the
- Track cluster identifier (cluster ID) as part of system information
- Keep fetching column stats with outdated helper function on Postgres < 17
v0.60.0
WARNING: For Enterprise Server releases older than 2024.10 using a separate collector installation, this release is partially incompatible. Log Insights will not receive any data if using this collector version. Enterprise Server installations using an integrated collector are not affected, nor are Scale and Production plans.
- Update
get_column_stats
for Postgres 17- The function signature has changed, so must be dropped and recreated
https://pganalyze.com/docs/install/troubleshooting/column_stats_helper
- The function signature has changed, so must be dropped and recreated
- Handle ambiguous log lines more reliably
- This fixes parsing of some log lines for Google CloudSQL
- Change log upload to include log text directly in snapshots, instead of uploading it separately to S3
- This simplifies the Enterprise Server setup by making object storage optional
- Reduce memory usage when processing
pg_stat_statements
- Remove temp file usage from collector
v0.59.0
- Use new WebSocket-based API for snapshot submissions
- Long-lived WebSocket connections have lower overhead for individual snapshots
that send statistics data to pganalyze, and avoid repeated HTTP connections - In case of errors when connecting the collector will fall back to regular
HTTP-based snapshots and emit a warning (e.g. due to a misconfigured proxy, or when
connecting to a pganalyze Enterprise Server install without WebSocket support)
- Long-lived WebSocket connections have lower overhead for individual snapshots
- Automated EXPLAIN (auto_explain) improvements
- Unless filtered, keep query parameters included with auto_explain as part of query samples
- Improve handling of newlines with auto_explain "text" format
- Azure Database / Cosmos DB for PostgreSQL: Collect system info and metrics
- To start using this, you need to supply a new config variable AZURE_SUBSCRIPTION_ID to the collector, as well as setting up managed identity (like is done for Log Insights support)
- The managed identity now additionally needs access to the Monitoring Reader role on the Azure Database instance
- Improve support for EDB Postgres Advanced Server
- Postgres 17: Update pg_stat_progress_vacuum field names
- Log Insights: Complete transition to new log parser (introduced in 0.58.0)
- Drop supported log_line_prefix check in test
- Drop legacy log line parsing mechanism
- Fix --analyze-logfile flag
v0.58.0
- Log Insights: Revamp log parsing mechanism
- The new mechanism is more performant and allows for arbitrary
log_line_prefix settings. The new parsing mechanism is the default, but you
can setdb_log_line_prefix = legacy
in the config file or
LOG_LINE_PREFIX=legacy
in the environment to revert to the old mechanism.
- The new mechanism is more performant and allows for arbitrary
- Log Insights: Redact parameters from utility statements by default
- Statements like
CREATE USER u WITH PASSWORD 'passw0rd'
can leak sensitive
data into Log Insights, so they are now redacted by default. Note that these
statements are usually very fast, and are normally only logged in edge cases,
like a lock wait problem relating to the statement.
- Statements like
- RDS: Update AWS SDK to v1.55.3
- This allows using EKS pod identity; documentation coming soon
- Azure:
- Ensure correct log handling for all Flexible Server events (don't accidentally treat them as Single Server events)
- Support log parsing for Azure Database for Cosmos DB Postgres
- Crunchy Bridge:
- Fix error handling for error responses from Crunchy Bridge API
- Fix hang on exit with the
--discover-log-location
flag
v0.57.1
- Log Insights:
- Fix handling of syntax error events when STATEMENT is missing
- Support multi-line logs with AlloyDB
- Test run: Improve handling of interrupts via CTRL+C (SIGINT)
- Avoid collector hanging, and don't print summary
- Allow HTTP clients to be cancelled to avoid shutdown delays
- Add option to avoid collecting distributed index stats for Citus
- This allows setting the
DISABLE_CITUS_SCHEMA_STATS
/disable_citus_schema_stats
setting to the "index" value, which will cause the collector to
skip collecting index statistics for Citus distributed tables
(which can time out when there is a significant count of indexes)
- This allows setting the
- Install script: Avoid deprecated usage of apt-key command
v0.57.0
- Log Insights: Add support for receiving logs via OpenTelemetry
- The collector can now start a built-in OTLP HTTP server that receives logs
at a specified local address viadb_log_otel_server
/LOG_OTEL_SERVER
- This can be used with self-managed servers running in a Kubernetes cluster,
combined with a telemetry agent like Fluent Bit
- The collector can now start a built-in OTLP HTTP server that receives logs
- Exclude internal Postgres tables from stats helper functions
- With Amazon RDS/Aurora, stats collection could fail with "permission denied
for attribute pg_subscription.subconninfo" - Update stats helper functions to explicitly exclude references causing this
issue
- With Amazon RDS/Aurora, stats collection could fail with "permission denied
- Log Insights: Improve parsing with Heroku auto_explain logs
- With auto_explain logs of Heroku Postgres, new lines in the middle of the
EXPLAIN query are observed, which has been preventing the log parser from
correctly handling these EXPLAIN queries - Add a workaround to mitigate this issue when such unexpected new lines are
detected
- With auto_explain logs of Heroku Postgres, new lines in the middle of the
- Enable log filtering by default to avoid storing database secrets
filter_log_secret
now defaults tocredential,parsing_error,unidentified
- Improve log filtering for syntax errors
- Previously when
filter_log_secret: syntax_error
is set, the full statement
would still be included in the logs. It's now properly redacted.
- Previously when
- AWS: Allow setting both assume role and web identity/role ARN
- Previously when both of them are set, web identity/role ARN were ignored
- With the change, we now first retrieve credentials via web identity, and
then assume the role specified asaws_assume_role
/AWS_ASSUME_ROLE
- This helps with cross-account configurations on AWS in combination with the
collector running in EKS
- Add packages for Ubuntu 24.04
- Remove "report" functionality
- This has long been deprecated. Removing the code as a cleanup
- Stop building packages for CentOS 7 / RHEL 7
- CentOS 7 / RHEL 7 is end of life. The minimum required glibc version for RPM packages is
now 2.26 (e.g. Amazon Linux 2)
- CentOS 7 / RHEL 7 is end of life. The minimum required glibc version for RPM packages is
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