InsightResolve · Agentic L1 support & incident resolution

The page fires. The runbook runs. The incident closes — with the root cause written down

Webhooks from PagerDuty, Alertmanager and Grafana become one incident. An AI agent follows your runbook, gathers the evidence, classifies the cause, and resolves or escalates with context.

For on-call engineers who arrive at 3 a.m. to an incident that has already been triaged — and for SRE teams that want runbooks to be steps, rules and variables they edit, version and dry-run, not a wiki page that goes stale.

Runs in your cloud · AWS · Azure · GCP · OCI · on-prem
AWS Google Cloud Azure
insightairesolve.com/console · Incident · HighErrorRate
The InsightResolve console — a critical api-gateway 5xx incident that arrived from PagerDuty, matched to the API Gateway High Error Rate Triage runbook, with the nine-step execution queued and the alert's labels and context alongside

Built for the tools your on-call already lives in

PagerDuty Prometheus & Alertmanager Grafana Kubernetes Airflow & dbt PostgreSQL Jira & Slack
The problem

Every incident is ten tabs and one person’s memory

During an incident the on-call engineer context-switches across PagerDuty, Grafana, Prometheus, Alertmanager, Airflow, dbt, the database, Jira, Slack and a runbook wiki. The runbook is stale, the tribal knowledge is in someone’s head, and MTTR is whatever it takes to find them.

Tool sprawl

Ten tools, one incident

Alert details in one place, the metric in another, the deploy history in a third. The first fifteen minutes of every page are spent gathering, not deciding.

Stale runbooks

The wiki says one thing, production does another

Runbooks written after the last incident describe last year’s system. Nobody knows which steps still apply, so nobody follows them.

Tribal knowledge

The one person who knows is asleep

New on-call engineers drown; the senior ones get woken up anyway. The fix and the reason for it never get written down where the next person will look.

How it works

Receive → Match → Execute → Resolve → Learn

One loop, every alert. The agent does the L1 work; your engineers arrive with the evidence gathered and the first diagnosis done.

1

Receive

Webhooks from PagerDuty, Alertmanager, Grafana or any custom source are normalized into one incident model and deduplicated by fingerprint.

2

Match

Match rules on alert name, service, severity, labels and source pick the runbook. No rule? The agent enters AI triage and proposes one.

3

Execute

InsightWorker runs the steps: PromQL, dashboards, SQL, DAG status, pod logs — each output saved as evidence, each step streamed live.

4

Resolve

The agent classifies the root cause with a confidence, writes the RCA, and resolves the page or escalates with everything it found attached.

5

Learn

Every execution scores the runbook’s effectiveness, surfaces recurring patterns, and suggests silences, threshold tuning or a new runbook.

A real incident, end to end

Thirty seconds from page to diagnosis

  • T+0sPagerDuty fires HighErrorRate on api-gateway, production, critical.
  • T+2sIncident created, fingerprinted. Matcher scores 14 active rules; API Gateway High Error Rate Triage wins, v3 pinned to the execution.
  • T+5sStep 2: prometheus.instant — 5xx rate 12.4 req/s against a 5.0 threshold.
  • T+11sStep 4: postgres.query — v2.4.1 deployed 15 minutes ago by alice.
  • T+18sStep 6: k8s.logs (ran because error_rate > threshold) — 142 lines of connection refused to redis:6379.
  • T+25sStep 7: ai.classifybad_deploy, confidence 0.91, reasoning attached.
  • T+30sJira OPS-2847 opened with the RCA; PagerDuty note added; escalated to L2 with the evidence. L2 rolls back. MTTR 5m30s instead of 45.
The runbook behind it

Steps, variables and conditions — not prose

Every step is an action with typed parameters. Outputs become variables the next step can use. Conditions decide what runs.

# variables
service_name = {{incident.labels.service}}
threshold    = {{incident.labels.threshold}}   # default 5.0

# steps
2. prometheus.instant  query: rate(http_requests_total{service='{{service_name}}',code=~'5..'}[5m])
                       save_as: error_rate
4. postgres.query      sql: SELECT version, deployed_at FROM deployments WHERE service='{{service_name}}' ...
                       save_as: recent_deploys
6. k8s.logs            run_if: {{error_rate}} > {{threshold}}
                       save_as: error_logs
7. ai.classify         categories: [bad_deploy, upstream_dependency_failure, capacity, false_positive]
                       context_vars: [error_rate, pod_status, recent_deploys, error_logs]
9. gate                {{classification.confidence}} > 0.85 AND category == 'false_positive'
                       true:  pagerduty.resolve   false: pagerduty.add_note + escalate
Runbooks

Runbooks you edit, version and dry-run — in the UI

Not a JSON blob and not a wiki page. Steps, conditions, variables and match rules are first-class rows, so two people can edit different steps at once, every save is a version, and every past execution shows exactly what it followed.

Steps

30+ step types

Prometheus instant and range queries, Grafana panels, Alertmanager silences, Kubernetes pods, logs and events, Airflow DAGs, dbt tests, SQL, Jira, Slack, HTTP, shell.

  • AI steps: classify, summarize, decide
  • Logic: gate, assign, wait, loop, parallel
  • Human approval gates for anything that changes state
  • Timeouts, retries, continue-on-fail per step
Rules & variables

Matching that explains itself

Glob on alert name and service, severity sets, label containment, source, expressions. Higher score wins; ties go to priority, then effectiveness. Test any rule against a past incident before you activate it.

  • {{incident.labels.namespace}} resolved at run time
  • Step outputs become variables for the next step
  • run_if / skip_if / branch on any variable
Versions & templates

Every save is a version

Snapshots with an auto-generated diff (“added step 5, changed threshold in step 3”), side-by-side comparison, one-click restore. Start from a library template, clone, import from your markdown, or describe the alert and let the agent draft it.

  • High CPU, disk space, DAG failure, API latency, connection pool templates
  • Effectiveness and average resolution time per runbook
The console

One pane of glass for the incident, the evidence and the RCA

Every incident with its source, severity, labels, the runbook that matched, each step as it runs, and the root-cause artifact when it’s done. Ask the agent a follow-up question from the same page.

Live execution

Current step highlighted, outputs streaming in, skip / pause / escalate-now overrides.

Incident timeline

Alert fired, webhook received, runbook matched, each step, classification, resolution.

Agent chat

“What’s the CPU on the api-gateway pods right now?” — answered with the same tools.

RCA artifact

Classification, confidence, evidence, recommendations, markdown — to Jira or a GitHub PR.

Integrations

Connectors for the incident stack you already run

Inbound webhooks and outbound actions through typed connectors. Credentials stay sealed in the connection registry and are handed to the agent only at execution time — secret names, never values, appear in logs.

PagerDuty

Webhooks inAck / resolve / notesOn-call schedules

Prometheus & Alertmanager

Instant & range PromQLAlert rules, targetsSilences

Grafana

Alert webhooksPanel queriesAnnotations

Kubernetes

Pods, logs, eventsRestart countsApproved restarts

Airflow & dbt

DAG status & task logsTrigger runsTests & freshness

PostgreSQL

Verification queriesSchema inspection

Jira & Slack

Tickets with the RCAChannel & thread updates

Next

Datadog, OpsGenieCloudWatch, ElasticsearchServiceNow, Splunk
Impact

What changes when L1 is automated

Outcomes depend on how much of your alert volume has a runbook. We’ll measure your coverage gap on the discovery call and size the MTTR gain from it.

30s

From page to first diagnosis, versus 15–30 minutes by hand

0

Pages for confirmed false positives — resolved with a note

100%

Incidents with an RCA artifact and the evidence behind it

1

Place runbooks live, versioned, scored and kept current

Platform

InsightWorker underneath, your perimeter around it

InsightResolve does not invent a new agent. It uses InsightWorker — the same engine behind InsightTestBench and InsightStudio — with operations skills added. Same identity, same connection registry, same audit trail as the rest of the Insight suite.

Engine

Agentic execution with tools

Each runbook step is a skill the agent runs with your credentials for that connection. Reasoning is captured per step; nothing happens that isn’t in the log.

Governance

Identity, roles, API keys, audit

Okta, Entra or any OIDC provider; roles for who edits runbooks and who acts on incidents; API keys for automation; every change and decision in the audit trail.

Deployment

Your cloud, your VPC

AWS, Azure, GCP, OCI or on-prem with Docker Compose or Kubernetes. Postgres for state, SSE for live updates, your model provider — Bedrock, Azure OpenAI, Vertex or an OpenAI-compatible endpoint.

FAQ

What SRE and platform teams ask first

More on the discovery call, or in the docs.

Does it change production on its own?

Not by default. Phase one is classification, not remediation: the agent gathers, decides and writes. Remediation steps (restart a pod, scale a deployment) exist behind explicit human approval gates you add to a runbook.

What happens when no runbook matches?

The agent enters AI triage: it inspects the alert context, runs general diagnostics, classifies what it can, and suggests a runbook from what it learned — which you review and activate.

Where do the credentials live?

In the connection registry, encrypted, or in your cloud’s secret store by reference. They are passed to the worker at dispatch time and never persisted by it; logs and events show secret names, not values.

Will the same alert open ten incidents?

No. Alerts are fingerprinted on source, name, service and key labels; repeats inside the window fold into the open incident, and a resolved event from the source closes it and records MTTR.

We have a wiki full of runbooks. Do we start over?

Paste or upload them. The agent parses markdown into structured steps with action types for you to correct and activate. Templates cover the common alerts on day one.

Does incident data leave our network?

Self-hosted in your environment, with your model provider. Incidents, evidence, RCAs and runbooks stay inside your perimeter.

See InsightResolve on your alert stream

Point a PagerDuty, Alertmanager or Grafana webhook at a demo instance, bring two of your runbooks, and watch the agent work them in a 30-minute walkthrough.

Request a demo