Skip to content

Releases: pganalyze/collector

v0.64.1

08 Jan 10:34
1e3f6b6
Compare
Choose a tag to compare
  • Fix database connection leak in buffercache logic
    • This was previously not an issue since connections auto-closed after 30 seconds,
      but due to a connection handling change in 0.64.0, this broke and caused
      pganalyze user connection limits to be hit

v0.64.0

07 Jan 23:59
77df9be
Compare
Choose a tag to compare
  • 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
  • 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

22 Nov 01:45
c737b95
Compare
Choose a tag to compare
  • 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

13 Nov 22:13
120b7e4
Compare
Choose a tag to compare
  • 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
  • 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.
  • 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

v0.61.0

23 Oct 22:17
636bc09
Compare
Choose a tag to compare
  • 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
  • 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
  • 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
  • Track cluster identifier (cluster ID) as part of system information
  • Keep fetching column stats with outdated helper function on Postgres < 17

v0.60.0

16 Oct 02:09
177debc
Compare
Choose a tag to compare

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
  • 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

03 Oct 04:04
9b1a707
Compare
Choose a tag to compare
  • 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)
  • 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

30 Aug 17:54
6f67cf4
Compare
Choose a tag to compare
  • 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 set db_log_line_prefix = legacy in the config file or
      LOG_LINE_PREFIX=legacy in the environment to revert to the old mechanism.
  • 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.
  • 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

23 Jul 18:16
ff43b11
Compare
Choose a tag to compare
  • 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)
  • Install script: Avoid deprecated usage of apt-key command

v0.57.0

03 Jul 02:36
3fbea4e
Compare
Choose a tag to compare
  • 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 via db_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
  • 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
  • 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
  • Enable log filtering by default to avoid storing database secrets
    • filter_log_secret now defaults to credential,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.
  • 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 as aws_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)