alert-rule-troubleshoot

Diagnoses why Nightingale alert rules fail to fire or notify using engine evaluation logs.

13.3k|1.8k|Updated Mar 3, 2020
One-click install
npx skills add https://github.com/ccfos/nightingale --skill alert-rule-troubleshoot
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: alert-rule-troubleshoot
Source: https://github.com/ccfos/nightingale/tree/main/aiagent/skill/embedded/builtin/alert-rule-troubleshoot
Command: npx skills add https://github.com/ccfos/nightingale --skill alert-rule-troubleshoot

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

When a Nightingale (n9e) alert rule does not fire, produces no event, or sends no notification, finding the stuck step manually across rule config, datasources, engine logs, mute rules, and notify rules is slow and error-prone. This Skill traces the full alert data flow with evidence from built-in MCP tools and pinpoints the exact failing step.

Core Features & Use Cases

  • No-event diagnosis (Flow A): Verifies rule configuration, datasource-to-engine binding, actual query results, engine evaluation logs, mute rules, and self-monitoring metrics to find why no alert event was produced.
  • Missing-notification diagnosis (Flow B): Traces event processing logs, notify rule enablement, severity/time-window/label matching, rate limits, and pipeline executions to explain why an event produced no notification.
  • False-positive analysis (Flow C): Distinguishes downsampling artifacts, log-ingestion delay, flapping, threshold-edge oscillation, and missing-data false recovery using history alerts and eval logs.
  • Use Case: A user says "my ES log alert rule should have fired last night but I got nothing." The Skill pulls the rule detail, replays the query, reads the engine eval logs, discovers a lowercase and in the query_string changed the match semantics, and reports the fix.

Quick Start

Ask the assistant to troubleshoot why a specific Nightingale alert rule did not fire, providing the rule name or ID and roughly when it should have triggered.

Frequently Asked Questions about alert-rule-troubleshoot

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I troubleshoot a Nightingale alert rule that is not firing?

Follow the data flow in order: verify the rule is enabled and correctly configured, confirm the datasource is bound to an alert engine cluster, run the rule's query manually, then read the engine evaluation logs with get_alert_eval_logs. The logs directly show whether data was found, conditions were met, or the event was muted.

Why did my Nightingale alert event produce no notification?

Pull the event's processing logs with get_event_processing_logs using the event hash, then verify each bound notify rule with get_notify_rule_detail. Common causes are a disabled notify rule, severities not including the event level, time windows not covering the trigger moment, or rate limiting via notify_repeat_step and notify_max_number.

Which Nightingale versions support this alert troubleshooting workflow?

This workflow requires Nightingale Release 22 or above, because it depends on the R22+ engine evaluation logs and event processing logs exposed through the built-in MCP endpoint. Releases R21 and earlier are out of scope.

Why does my Elasticsearch log alert match far more records than expected?

In ES query_string syntax, AND, OR, and NOT must be uppercase to act as boolean operators; lowercase and/or/not are treated as ordinary terms, changing the query semantics. Rewrite the operators in uppercase or use structured bool.must/bool.should clauses.

Why does a multi-query alert rule not trigger even though each query returns data?

Multiple queries are grouped by fully identical label sets before cross-reference expressions are evaluated, so queries A and B must produce series with matching labels. Also, a ref used only in the recovery expression never fires alerts and can make recovery unsatisfiable; it must appear in the trigger expression.

When should I use ops-troubleshooting instead of alert rule troubleshooting?

Use alert rule troubleshooting when an expected alert did not fire or no notification arrived. Use ops-troubleshooting for the opposite direction: you already have an alert event and want to find the underlying root cause of the incident.