Module: Ask::Monitoring

Defined in:
lib/ask/monitoring.rb,
lib/ask/monitoring/cost.rb,
lib/ask/monitoring/engine.rb,
lib/ask/monitoring/version.rb,
lib/ask/monitoring/metrics/base.rb,
lib/ask/monitoring/metrics/cost.rb,
lib/ask/monitoring/channels/base.rb,
lib/ask/monitoring/channels/email.rb,
lib/ask/monitoring/channels/slack.rb,
lib/ask/monitoring/event_subscriber.rb,
lib/ask/monitoring/metrics/throughput.rb,
lib/ask/monitoring/metrics/error_count.rb,
lib/ask/monitoring/metrics/response_time.rb,
app/helpers/ask/monitoring/dashboard_helper.rb,
lib/generators/ask/monitoring/install_generator.rb,
app/controllers/ask/monitoring/dashboard_controller.rb

Overview

LLM Monitoring Dashboard for Rails.

A Rails engine that subscribes to Ask::Instrumentation events, persists them, and provides a real-time dashboard for monitoring LLM cost, throughput, error rates, and response times.

Usage

# In your Rails app:
# gem "ask-monitoring"
# rails generate ask:monitoring:install
# rails db:migrate

# Then visit /ask/monitoring

Defined Under Namespace

Modules: Channels, DashboardHelper, Metrics Classes: Cost, DashboardController, Engine, EventSubscriber, InstallGenerator

Constant Summary collapse

VERSION =
"0.1.0"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.alert_cooldownActiveSupport::Duration

Minimum time between repeated alerts from the same rule.

Returns:

  • (ActiveSupport::Duration)

    (default: 5.minutes)



42
43
44
# File 'lib/ask/monitoring.rb', line 42

def alert_cooldown
  @alert_cooldown
end

.alert_rulesArray<Hash>

Array of alert rule hashes. Each rule must have:

* +:name+ — String label
* +:condition+ — Proc receiving a metrics hash
* +:channels+ — Array of channel symbols (+:slack+, +:email+)
* +:cooldown+ — (optional) Duration override per rule

Returns:

  • (Array<Hash>)


51
52
53
# File 'lib/ask/monitoring.rb', line 51

def alert_rules
  @alert_rules
end

Class Method Details

.configure {|_self| ... } ⇒ Object

Yields self for configuration.

Yields:

  • (_self)

Yield Parameters:



54
55
56
# File 'lib/ask/monitoring.rb', line 54

def configure
  yield self
end