lib/postgres/vacuum/jobs/monitor_job.rb in postgres-vacuum-monitor-0.7.0 vs lib/postgres/vacuum/jobs/monitor_job.rb in postgres-vacuum-monitor-0.8.0

- old
+ new

@@ -3,10 +3,11 @@ module Jobs class MonitorJob AUTOVACUUM_LAGGING_EVENT = 'AutoVacuumLagging'.freeze LONG_TRANSACTIONS = 'LongTransactions'.freeze + BLOCKED_QUERIES = 'BlockedQueries'.freeze def perform(*) with_each_db_name_and_connection do |name, connection| connection.execute(Postgres::Vacuum::Monitor::Query.long_running_transactions).each do |row| reporter_class.report_event( @@ -29,9 +30,20 @@ database_name: name, table: row['relation'], table_size: row['table_size'], dead_tuples: row['dead_tuples'].to_i, tuples_over_limit: row['dead_tuples'].to_i - row['autovacuum_vacuum_tuples'].to_i + ) + end + + connection.execute(Postgres::Vacuum::Monitor::Query.blocked_queries).each do |row| + reporter_class.report_event( + BLOCKED_QUERIES, + database_name: name, + blocked_pid: row['blocked_pid'], + blocked_statement: row['blocked_statement'], + blocking_pid: row['blocking_pid'], + current_statement_in_blocking_process: row['current_statement_in_blocking_process'] ) end end true