Runbook: HighTransactionRollback Alert

Alert Details

  • Alert Name: HighTransactionRollback
  • Expression: rate(pg_stat_database_xact_rollback{datname!~"template.*", job="integrations/postgres"}[5m]) / (rate(pg_stat_database_xact_commit{datname!~"template.*", job="integrations/postgres"}[5m]) + rate(pg_stat_database_xact_rollback{datname!~"template.*"}[5m])) * 100 > 5

Description

The rollback-to-commit ratio for PostgreSQL the database is >5%. This indicates a high rate of failed transactions, which can degrade performance and suggest application or database issues.

Possible Causes

  • Application Bugs: Logic errors causing transactions to fail (e.g., constraint violations)
  • Deadlocks or race conditions
  • Database Issues:Long-running queries blocking transactions.Resource contention (CPU, I/O, or locks).
  • Connectivity Problems: Network timeouts or connection resets.

Troubleshooting Steps

1. Investigate Recent Changes:

Check application logs for errors around {{ $labels.datname }}.

Review recent deployments or schema modifications.

2. Database Checks:

Query pg_stat_activity for blocked transactions.

Monitor for deadlocks (pg_stat_database_deadlocks).

3. Optimize Workloads:

Break large transactions into smaller batches.

Adjust idle_in_transaction_session_timeout if needed.