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