Releases: pganalyze/collector
Releases · pganalyze/collector
v0.64.1
v0.64.0
- Support for pganalyze Query Tuning Workbooks
- The collector now optionally executes on-demand EXPLAIN ANALYZE queries for
the new Query Tuning feature via the new pganalyze.explain_analyze() helper - This helper is owned by a separate user which gets assigned table read
permissions, and avoids granting the collector user unnecessary permissions
directly - By creating the helper function you opt into automated query runs through
the collector. For high security environments, Query Tuning Workbooks can
still be used without this feature by running queries manually - For easily creating the helper in all databases on a server the
new "--generate-explain-analyze-helper-sql" command is added - The enable_query_runner setting introduced in 0.63.0 is removed,
since the helper function is now mandatory to use this feature
- The collector now optionally executes on-demand EXPLAIN ANALYZE queries for
- Update pg_query to v6 / Postgres 17 parser
- Install script: Add AlmaLinux and Rocky Linux support
- PII filtering bug fixes
- Correctly handle secondary lines that were not analyzed
- Detect bind parameters in CONTEXT as statement_parameter
- Other bug fixes
- Azure: Improve system metrics error handling, and correctly return most recent value
- Add missing MAX_BUFFER_CACHE_MONITORING_GB configuration variable
- Track parent partition size when child partitions are untracked
- Store zero-value table stats when diff doesn't exist
- DB connections: Don't limit to 30 seconds lifetime to avoid timeout bugs
- Routine security updates
- Bump golang.org/x/crypto from 0.25.0 to 0.31.0
- Update golang.org/x/net to v0.33.0
v0.63.0
- Fix WebSocket error handling
- If the WebSocket mechanism hit an error at the wrong time, this could cause a stuck collector state, where the collector would keep running but stop processing and sending snapshots
- Track Postgres buffer cache usage
- This reports statistics from pg_buffercache if available
- Since this can be slow, and grows slower with larger buffer size, this can be configured with the new setting max_buffer_cache_monitoring_gb (default 200 GB)
- Fix partitioned table stats handling
- Partitioned table stats are now reported as aggregations over child partition stats
- Add collector query runner
- This provides a mechanism for the collector to help pganalyze users run EXPLAIN queries in future versions of pganalyze
- This is disabled by default
- Update packaging scripts to use the groupadd command instead of addgroup when installing
- addgroup is not available on some newer distributions, e.g., Amazon Linux 2023
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