github pganalyze/collector v0.70.0

7 hours ago
  • Track nested query statistics separately based on toplevel field
    • This matters when pg_stat_statements.track is set to "all", and allows pganalyze
      to consider query activity from inside functions, or other nested cases (e.g. EXPLAIN)
      separately from top level activity (direct query execution)
  • Allow resetting pg_stat_statements when nearly full
    • Due to pg_stat_statements deallocating 5% of the least used queries when full
      (i.e. number of entries hits the pg_stat_statements.max), certain workloads can
      experience a high rate of "" in pganalyze, due to very old
      queries with high call counts taking priority over more recent query activity.
    • In such situations, a recurring pg_stat_statements_reset() call can avoid the
      situation by clearing 100% of entries, so that there is more space for fresh entries
    • This reworks the existing reset mechanism to reset pg_stat_statements when
      (1) it has utilized most of its entries, and a dealloc is likely occurring soon
      (2) the returned query text exceeds 250MB
    • Resets are optional and turned off by default. When the helper function exists,
      and the reset interval is configured through pganalyze, it is now taken as the
      highest permitted reset frequency, i.e. with this change resets will likely occur
      less often than before (previously it was a fixed interval that would always reset)
  • Keep per-query information on whether a query / query sample was normalized
    • This lets the pganalyze application be informed whether PII filtering was
      applied to a particular snapshot being submitted.
  • Allow multiplexed use of OpenTelemetry logs server
    • Multiple servers can now share the same db_log_otel_server configuration
    • This is safe to do in certain circumstances, specifically when a
      Kubernetes pod or label filter is in place, and the log message has sufficient
      details (i.e. is annotated with Kubernetes metadata)
    • If configured without a pod/label filter the collector will emit a warning,
      and send received logs to each server sharing the same db_log_otel_server
  • Kubernetes label matching: Ensure selected labels are present for equality
    • Previously a label specified in the selector, but not actually present
      in the data would lead to that part of the selector being skipped, not
      counting it as a mismatch. Instead count it as a mismatch for equality,
      but a match for inequality.
  • Diff pg_stat_statements_info dealloc counter correctly on initial collector start
  • Rework OpenTelemetry logs handler to be OTLP spec compliant
  • Crunchy Bridge: Don't crash when metrics retrieval fails
  • AlloyDB/Cloud SQL:
    • Allow IAM authentication to use private service connect endpoint
      • This is enabled by setting the new gcp_use_psc / GCP_USE_PSC to true
    • Avoid accidental use of prepared statements when IAM authentication is in use
  • AlloyDB: Add back support for follower statistics
    • This revises the change added in 0.69.0 to more specifically skip
      the problematic function on a replica

Don't miss a new collector release

NewReleases is sending notifications on new releases.