signoz-investigating-alerts
Diagnose why a SigNoz alert fired by correlating the alert's own signal with neighbor signals (error rate, latency, throughput, CPU/memory), traces, and logs…
Skill by therapys
Chalk Labs
Need help deploying signoz-investigating-alerts?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/therapys-signoz-investigating-alerts
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/signoz-investigating-alerts
What's inside
- Skill name
signoz-investigating-alerts- Description
- Diagnose why a SigNoz alert fired by correlating the alert's own signal with neighbor signals (error rate, latency, throughput, CPU/memory), traces, and logs around the fire window, and rank likely causes. Use whenever the user asks "why did this alert fire", "what caused alert X", "investigate this alert", "RCA for the alert that paged me", "what's wrong with [service]" in the context of a recent fire, or otherwise asks for a root-cause analysis of a firing or recently-fired alert. Read-only; does not modify any alert or notification.
- License
- MIT
- Instructions
- 328 lines in SKILL.md · view on GitHub
Files (3)
- SKILL.md
- baseline-comparison.md · references/
- neighbor-signals.md · references/
SKILL.md (first lines)
# Alert Investigate
Diagnose why a SigNoz alert fired: correlate the alert's own signal with
neighbor signals around the fire window and surface a ranked list of likely
causes with evidence. Companion to `signoz-explaining-alerts` (explain
decodes the rule statically; investigate diagnoses a specific incident).
## Prerequisites
Needs SigNoz MCP tools (`signoz_get_alert`, `signoz_get_alert_history`,
`signoz_execute_builder_query`, `signoz_query_metrics`,
`signoz_search_traces`, `signoz_search_logs`, `signoz_get_trace_details`,
etc.). Confirm `signoz_*` tools are available before starting; if not, run
`signoz-mcp-setup` to initialize/repair the MCP connection. Without the
server there is no way to ground the analysis.
## When to use
Use when the user wants to:
- Understand why a specific alert fired.
- Find the root cause of a recent incident triggered by an alert.
- Correlate the alert's signal with related metrics, traces, and logs.
- Distinguish "real signal" fires from flapping or threshold-mistuning.
Do NOT use when the user wants to:
- Understand what an alert monitors → `signoz-explaining-alerts`.
- Create a new alert → `signoz-creating-alerts`.
- Modify an alert (raise threshold, add hysteresis) → call
`signoz_update_alert` directly.
- Run a free-form investigation with no alert anchor →
`signoz-generating-queries`.
## Required inputs
| Input | Required | Source if missing |
|---|---|---|
| Alert identifier (rule ID or name) | yes | `$ARGUMENTS[0]` or recent context |
| Time window | no | default to most recent fire from `signoz_get_alert_history` |
Fuzzy alert name (best-effort, read-only):
1. Call `signoz_list_alert_rules`, paginate, fuzzy-match the name.
2. State the interpretation ("Investigating fire of 'High Error Rate -
Checkout' (id 42) at 14:32 UTC. If you meant a different alert or fire,
tell me.") and proceed.
If no firing transition exists in the queried lookback, **stop** — there is
nothing to investigate. Respond:
> "Alert '[name]' has not fired in the last 7d, so there is no fire window
> to investigate. Use `signoz-explaining-alerts` to walk through the rule,
> or check whether the alert is enabled."
## Workflow
Three tiers with strict early-stop gates. Tier 1 always runs; Tier 2 runs
only if Tier 1 confirms a real fire; Tier 3 runs only if Tier 2 surfaces
correlated anomalies. Skipping the gates fires hundreds of unnecessary
trace/log queries on quiet alerts.
### Step 1: Resolve alert + fire window (Tier 0)
1. Resolve the alert id via `signoz_list_alert_rules` (paginated) if not
given.
2. Call `signoz_get_alert` for the full rule config (query, threshold,
resource scope the alert evaluated).
3. Call `signoz_get_alert_history` with `timeRange: "7d"`, `order: "desc"`,
and `state` omitted so the timeline includes firing and inactive
transitions. Paginate only when `data.nextCursor` exists (completeness
note reports `hasMore: true`): pass it as `cursor`, replace `timeRange`
with the note's resolved absolute `start`/`end`, and preserve the same
state/filter (including omission) and order. Stop when `nextCursor` is
absent / `hasMore: false`; never use `offset` or page fullness. If a
later intentional filter means "resolved"/"recovered", use `inactive`.
Enum: `inactive|pending|recovering|firing|nodata|disabled`; `recovering`
is a transient keep-firing state, not resolution. Pattern analysis needs
the complete transition set. Rows are emitted per label-group
`fingerprint`; do not interleave them. From the response:
- **Build rule-wide incident windows** from distinct rows where
`overallStateChanged: true`: `overallState: "firing"` opens an incident;
the next `overallState: "inactive"` closes it. Deduplicate matching
timestamps and sort by `unixMilli` ascending before pairing. Default to
the most recent incident unless `$ARGUMENTS[1]` selects another.
- **Partition affected series by `fingerprint`** and retain each row's
labels. Use only `stateChanged: true` rows to decide when that group
fired/resolved and which group scopes Tier 1–3 queries.
- **Note the fire pattern** from rule-wide transitions or one named
fingerprint:
- `one-off` → single fire with a long quiet period before/after.
- `sustained` → fires that stayed firing for ≥ 1 evaluation cycle.
- `flapping` → ≥ 3 fires within a 1h window, alternating fire/resolve.
- `recurring` → fires at regular intervals (cron-like, e.g. hourly).
- Never infer flapping from different fingerprints. The pattern guides
tiers 2/3.
### Step 2: Tier 1 — what fired and how hard (always runs)
Establishes the fire is real (vs. transient threshold tickle or flap) and
quantifies magnitude.
1. Re-run the alert's primary query over `[fire_start - 30m, fire_start +
30m]` via `signoz_execute_builder_query` for the alert's stored builder,
formula, PromQL, or ClickHouse envelope. Preserve positive bounds/order
so Tier 1 reproduces the stored alert. If a formula input is below 10000,
record truncation risk and compare at 10000 before ruling groups out. For
omissions, use 10000 on formula-input `builder_query` leaves and 100 on
standalone/formula results. Find leaves from every formula expression
(including `disabled: true` formulas), following references through the
dependency graph. This walk sets comparison bounds only; it does not prove
deterministic formula-to-formula order. Use v5 `order`: `__result desc`
for metrics/formulas or primary aggregation desc for logs/traces, never
dashboard `orderBy`. Time-series top-N ranks over the whole window and may
omit a short-lived local spike.
2. Compute:
- **Peak value** during the fire window.
- **Threshold breach magnitude**: `(peak - threshold) / threshold * 100`
for "above" alerts, inverted for "below".
- **Fire duration**: the rule's overall firing→inactive interval, or the
selected fingerprint's interval for a group-scoped investigation. Say
which.
- **Pre-fire baseline**: average in the 30m before fire start.From therapys/dotagents, MIT.
More from therapys/dotagents
- 0.631score
frontend
therapys
Build and polish production-ready frontend interfaces using Emil Kowalski's design-engineering approach.
SkillAFreshness: A★ 8Claude Code +9 - 0.626score
hairline-create
therapys
Use when someone asks for a new Hairline figure, or runs /hairline-create with an idea.
SkillAFreshness: A★ 8Claude Code +9 - 0.626score
image-generation
therapys
Generate and download images through ChatGPT in the user's signed-in browser, using their ChatGPT subscription rather than API keys or API billing.
SkillAFreshness: A★ 8Claude Code +9 - 0.592score
flesch-kincaid-proofreader
therapys
Measure and improve the readability of English copy with the Flesch–Kincaid grade-level test.
SkillBFreshness: B★ 8Claude Code +9 - 0.592score
posthog
therapys
Drive PostHog through the claude.ai `exec` connector — query analytics and entities (HogQL, insights, funnels, retention, web analytics), investigate LLM…
SkillBFreshness: B★ 8Claude Code +9 - 0.587score
autonomous-maintainer
therapys
Run the agent as an autonomous maintainer of a product — set it up once, then loop on small, verified, logged improvements while keeping the product…
SkillBFreshness: B★ 8Claude Code +9 - 0.587score
compress-skills
therapys
Compress one or more SKILL.md files so they consume less context on load while preserving 100% of their value — same triggers, capabilities, guardrails…
SkillBFreshness: B★ 8Claude Code +9 - 0.587score
extract-design-system
therapys
Reverse-engineer a project's real, shipped design language into a reusable design skill, so any agent can build or restyle pages that match it.
SkillBFreshness: B★ 8Claude Code +9 - 0.587score
ship
therapys
Take the current changes from a dirty tree to an open pull request — branch, commit, push, and open the PR.
SkillBFreshness: B★ 8Claude Code +9 - 0.587score
update-agents-md
therapys
Generate or refresh a repo's AGENTS.md (the source-of-truth agent context file) and its one-line CLAUDE.md pointer.
SkillBFreshness: B★ 8Claude Code +9 - 0.584score
gog
therapys
Use the gog CLI for safe Google Workspace automation: Gmail and email, Calendar and events, Drive files, Docs, Sheets, Contacts, Tasks, Chat, and other Google…
SkillBFreshness: B★ 8Claude Code +9 - 0.584score
teach
therapys
Teach the user anything so it actually locks in and is understood, not just memorized.
SkillBFreshness: B★ 8Claude Code +9
Signals
- Stars
- 8
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Aug 28, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/therapys/dotagents
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from therapys
- 0.631score
frontend
therapys
Build and polish production-ready frontend interfaces using Emil Kowalski's design-engineering approach.
SkillAFreshness: A★ 8Claude Code +9 - 0.626score
hairline-create
therapys
Use when someone asks for a new Hairline figure, or runs /hairline-create with an idea.
SkillAFreshness: A★ 8Claude Code +9 - 0.626score
image-generation
therapys
Generate and download images through ChatGPT in the user's signed-in browser, using their ChatGPT subscription rather than API keys or API billing.
SkillAFreshness: A★ 8Claude Code +9 - 0.592score
flesch-kincaid-proofreader
therapys
Measure and improve the readability of English copy with the Flesch–Kincaid grade-level test.
SkillBFreshness: B★ 8Claude Code +9 - 0.592score
posthog
therapys
Drive PostHog through the claude.ai `exec` connector — query analytics and entities (HogQL, insights, funnels, retention, web analytics), investigate LLM…
SkillBFreshness: B★ 8Claude Code +9 - 0.587score
autonomous-maintainer
therapys
Run the agent as an autonomous maintainer of a product — set it up once, then loop on small, verified, logged improvements while keeping the product…
SkillBFreshness: B★ 8Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get signoz-investigating-alerts running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
signoz-investigating-alerts skill. Agent Mart. https://agentmart.dev/skills/therapys-signoz-investigating-alerts (last updated 2026-10-24)