Class: Pgbus::MCP::Tools::StatsTool

Inherits:
BaseTool
  • Object
show all
Defined in:
lib/pgbus/mcp/tools/stats_tool.rb

Overview

Recent job status counts + summary (success / failed / dead-lettered, durations). Maps to DataSource#job_status_counts + #job_stats_summary.

Constant Summary collapse

MAX_MINUTES =
1440

Class Method Summary collapse

Methods inherited from BaseTool

annotations_value, data_source_from, error_response, json_response, payloads_allowed?

Class Method Details

.call(minutes: 60, server_context: nil) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
# File 'lib/pgbus/mcp/tools/stats_tool.rb', line 26

def self.call(minutes: 60, server_context: nil)
  data_source = data_source_from(server_context)
  window = minutes.to_i.clamp(1, MAX_MINUTES)
  json_response(
    {
      minutes: window,
      status_counts: data_source.job_status_counts(minutes: window),
      summary: data_source.job_stats_summary(minutes: window)
    }
  )
end