[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-grafana-oncall-triage":3,"mdc-f5l25o-key":34,"related-org-grafana-oncall-triage":2100,"related-repo-grafana-oncall-triage":2285},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":27,"topics":28,"repo":29,"sourceUrl":32,"mdContent":33},"oncall-triage","triage Grafana OnCall alert groups","Triages active Grafana OnCall alert groups via gcx - list, inspect, acknowledge, silence, resolve. Use when the user is triaging what is actively paging in Grafana OnCall, or asks about active alert groups, acknowledging or silencing or resolving fires, on-call queue, or \"what's paging right now\". Trigger on phrases like \"what's paging\", \"on-call alerts\", \"ack this\", \"silence the page\", \"what's firing in OnCall\", \"show me active pages\", or any reference to OnCall alert groups. For root cause of why a Grafana alert rule is evaluating (rule-side, pre-routing) use investigate-alert. For schedules, integrations, or escalation chains use the gcx skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"grafana","Grafana","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fgrafana.jpg",[12,16,19,22],{"name":13,"slug":14,"type":15},"Alerting","alerting","tag",{"name":17,"slug":18,"type":15},"Monitoring","monitoring",{"name":20,"slug":21,"type":15},"Incident Response","incident-response",{"name":9,"slug":8,"type":15},430,"https:\u002F\u002Fgithub.com\u002Fgrafana\u002Fgcx","2026-07-15T05:34:09.423253",null,29,[],{"repoUrl":24,"stars":23,"forks":27,"topics":30,"description":31},[],"A CLI for managing Grafana Cloud resources. Optimized for agentic usage.","https:\u002F\u002Fgithub.com\u002Fgrafana\u002Fgcx\u002Ftree\u002FHEAD\u002Fclaude-plugin\u002Fskills\u002Foncall-triage","---\nname: oncall-triage\ndescription: Triages active Grafana OnCall alert groups via gcx - list, inspect, acknowledge, silence, resolve. Use when the user is triaging what is actively paging in Grafana OnCall, or asks about active alert groups, acknowledging or silencing or resolving fires, on-call queue, or \"what's paging right now\". Trigger on phrases like \"what's paging\", \"on-call alerts\", \"ack this\", \"silence the page\", \"what's firing in OnCall\", \"show me active pages\", or any reference to OnCall alert groups. For root cause of why a Grafana alert rule is evaluating (rule-side, pre-routing) use investigate-alert. For schedules, integrations, or escalation chains use the gcx skill.\nallowed-tools: Bash\n---\n\n# OnCall Alert-Group Triage\n\nOnCall **alert groups** are post-routing aggregations of alert deliveries — they answer \"what is paging right now?\". Grafana **alert rules** (under `gcx alert rules`) answer \"why is rule X evaluating to firing?\". This skill covers the OnCall side and pivots out when needed.\n\n## Core Principles\n\n1. Use gcx — do not call OnCall APIs directly (no curl, no HTTP libraries).\n2. The CLI emits structured diagnostics on stderr (`hint:`, `note:`, `warn:`; JSONL with `class` in agent mode). Pass them through.\n3. The default `alert-groups list` filter excludes resolved + child groups. Surface `--all` only when the user asks about history.\n4. Action verbs in agent mode require `--force` when matched count > 1. Never pre-fill `--force` without user confirmation.\n\n## Prerequisites\n\ngcx configured with an active context that targets a Grafana stack with OnCall enabled. If not, use the setup-gcx skill first.\n\n## Triage Workflow\n\n### Step 1: List Active Alert Groups\n\n```bash\ngcx irm oncall alert-groups list\n```\n\nDefault filter: `state in {firing, acknowledged, silenced}` and `is_root=true` (matches the OnCall UI). See `--help` for the full flag set; common narrowers are `--state`, `--team \u003CPK>`, `--integration \u003CPK>`, `--mine`, `--max-age 24h`. Team \u002F integration filters take PKs, not names — resolve first:\n\n```bash\ngcx irm oncall teams list -o json | jq -r '.[] | \"\\(.metadata.name): \\(.spec.name)\"' | grep -i \"my team\"\n```\n\nEscape hatches: `--all` (drops both defaults — returns resolved + child groups), `--include-child-groups`, `--state resolved`.\n\nDefault table: `ID TITLE SEVERITY STATE TEAM SUBJECT AGE`. `-o wide` adds `RULE` (Grafana rule URL) and `ALERTS` (group-wide count). Use `-o wide` when the user needs the rule pivot.\n\nThere is no `--title` \u002F substring filter. To act on \"all the kafka ones\", fetch JSON, filter with jq, then loop the IDs through the action verb (or — if the kafka alerts all share an integration or team — bulk-by-filter with `--integration \u003CPK>` \u002F `--team \u003CPK>` instead):\n\n```bash\ngcx irm oncall alert-groups list -o json | \\\n  jq -r '.items[] | select(.status.title | test(\"kafka\"; \"i\")) | .metadata.name'\n```\n\n### Step 2: Drill Into a Group\n\n```bash\ngcx irm oncall alert-groups get \u003Cid>\n```\n\nOne round trip already populates the rich `status.links.*` block — typical triage does NOT need `list-alerts` first.\n\nKey paths under `status`:\n- `title`, `severity`, `state` (`firing|acknowledged|resolved|silenced`), `summary`, `runbookURL`\n- `subject.labels` — canonical commonLabels (whatever the rule grouped by; canonical only on `get`, best-effort on `list`)\n- `timestamps.{started,acknowledged,resolved,silenced}`\n- `links.alert.rule.{uid,url}` — Grafana alert rule pivot (most important)\n- `links.alert.instance.{id,silenceURL}` — Alertmanager fingerprint\n- `links.dashboard.{uid,url,panel.id,panel.url}`\n- `links.slo.{uid,name}`\n- `alertsCount`\n\nAlso: `spec.permalinks.web` (OnCall UI), `spec.team.{id,name}`, `spec.integration.{id,name,type}`.\n\n`--include-raw` adds the unprocessed Alertmanager payload at `status.raw` — only when the user needs an unpromoted label or annotation.\n\n### Step 3: Per-Alert Detail (when needed)\n\nOnly when the group has multiple firing instances and the user needs per-fire detail:\n\n```bash\ngcx irm oncall alert-groups list-alerts \u003Cid>\n```\n\nDefault collapses by label set (Alertmanager fingerprint) — repeated fires of the same labeled instance fold into one row, `status.occurrences` reports the re-fire count. `--history` opts out (every delivery becomes a row, `occurrences: 1`). `--slim` skips the per-alert fetch for counting\u002Fsorting. `--include-raw` exposes the full payload. `--limit` default 100; the CLI warns when capped.\n\nPer-alert key fields: `status.dimensions.labels` (per-fire discriminators — labels that differ from the group's `subject.labels`), `status.occurrences`, `status.links.*` (usually constant across siblings).\n\n### Step 4: Pivot to Alert Rule \u002F Dashboard \u002F SLO\n\nThe `status.links.*` identifiers are cross-provider pivots:\n\n| Source field | Next command |\n|---|---|\n| `status.links.alert.rule.uid` | `gcx alert instances list --rule \u003Cuid>` — all currently firing instances across clusters; hand off to **investigate-alert** for rule-side root cause |\n| `status.links.dashboard.uid` | `gcx dashboards get \u003Cuid>` (metadata\u002Fpanels); `gcx dashboards search \u003Ckeywords>` (find related); `gcx dashboards snapshot \u003Cuid> --since 6h` (visual inspection) |\n| `status.links.slo.uid` | `gcx slo definitions status \u003Cuid>` (current SLI + budget — note: budget figure may show 100% if recording rules are absent or budget went deeply negative; use `gcx dashboards snapshot grafana_slo_app-\u003Cuid> --since 28d` for the authoritative historical view); then `gcx slo definitions get \u003Cuid>` to extract datasource UID and recording-rule queries for `gcx metrics query`; or **slo-investigate** |\n\n### Step 5: Act\n\nThe same verb runs single-target (pass `\u003Cid>`) or bulk-by-filter (omit `\u003Cid>`, pass filter flags). Verbs: `acknowledge`, `unacknowledge`, `silence` (+ `--duration` seconds), `unsilence`, `resolve`, `unresolve`, `delete`. All are idempotent except `delete`.\n\n```bash\n# Single-target\ngcx irm oncall alert-groups acknowledge \u003Cid>\ngcx irm oncall alert-groups silence \u003Cid> --duration 3600\n\n# Bulk-by-filter (filter flags mirror `list`)\ngcx irm oncall alert-groups acknowledge --team \u003CPK> --state firing --force\n```\n\nResult envelopes:\n\n```json\n\u002F\u002F Single-target\n{\"action\":\"acknowledge\",\"target\":{\"alertGroupId\":\"\u003Cid>\"},\"changed\":true}\n\n\u002F\u002F Bulk\n{\"action\":\"acknowledge\",\"summary\":{\"matched\":23,\"succeeded\":18,\"skipped\":5,\"failed\":0},\"failures\":[]}\n```\n\n`changed:false` \u002F `skipped++` on idempotent re-runs (not an error). `matched == succeeded + skipped + failed`. `failures[]` carries only errored targets.\n\nBulk in agent mode REQUIRES `--force` when matched count > 1. Show the user the filter set and confirm before running — do not pre-fill `--force`. A bulk call with no `\u003Cid>` AND no filter flags is blocked with a structured error containing `suggestions[]`.\n\n## Error Handling\n\n- `\u003Cid> argument or filter flag required` — surface the error's `suggestions[]` to the user.\n- Agent mode + matched > 1 + no `--force` — confirm scope with the user, then re-run with `--force`.\n- 404 on `get \u003Cid>` — group may have been purged; retry the prior `list` with `--all --state resolved`.\n- `webhook` \u002F `formatted_webhook` integrations — partial `status.links.*` and empty `subject.labels` are expected, not errors.\n\n## Tips\n\n- `get` inlines `last_alert.raw_request_data` — prefer it over `list-alerts` for typical triage.\n- `subject.labels` is canonical on `get`; on `list` it is HTML-scraped (good enough for the table, not for exact-label work).\n- The team cell renders `\u003Cname> (\u003Cid>)`; the ID is the copy-paste target for `--team`.\n- `gcx irm oncall alerts` and `alerts get` were removed — use `alert-groups list-alerts \u003Cgroup-id>`.\n\n## Related Skills\n\n- **investigate-alert** — rule-side root cause once you have `status.links.alert.rule.uid`.\n- **slo-investigate** — when `status.links.slo.uid` is populated.\n- **debug-with-grafana** — broader investigation when the alert is a symptom of a service-level issue.\n",{"data":35,"body":37},{"name":4,"description":6,"allowed-tools":36},"Bash",{"type":38,"children":39},"root",[40,49,79,86,173,179,184,190,197,241,306,408,435,479,506,581,587,638,659,672,807,834,853,859,864,911,963,995,1001,1013,1162,1168,1253,1443,1448,1771,1804,1837,1843,1941,1947,2044,2050,2094],{"type":41,"tag":42,"props":43,"children":45},"element","h1",{"id":44},"oncall-alert-group-triage",[46],{"type":47,"value":48},"text","OnCall Alert-Group Triage",{"type":41,"tag":50,"props":51,"children":52},"p",{},[53,55,61,63,68,70,77],{"type":47,"value":54},"OnCall ",{"type":41,"tag":56,"props":57,"children":58},"strong",{},[59],{"type":47,"value":60},"alert groups",{"type":47,"value":62}," are post-routing aggregations of alert deliveries — they answer \"what is paging right now?\". Grafana ",{"type":41,"tag":56,"props":64,"children":65},{},[66],{"type":47,"value":67},"alert rules",{"type":47,"value":69}," (under ",{"type":41,"tag":71,"props":72,"children":74},"code",{"className":73},[],[75],{"type":47,"value":76},"gcx alert rules",{"type":47,"value":78},") answer \"why is rule X evaluating to firing?\". This skill covers the OnCall side and pivots out when needed.",{"type":41,"tag":80,"props":81,"children":83},"h2",{"id":82},"core-principles",[84],{"type":47,"value":85},"Core Principles",{"type":41,"tag":87,"props":88,"children":89},"ol",{},[90,96,132,153],{"type":41,"tag":91,"props":92,"children":93},"li",{},[94],{"type":47,"value":95},"Use gcx — do not call OnCall APIs directly (no curl, no HTTP libraries).",{"type":41,"tag":91,"props":97,"children":98},{},[99,101,107,109,115,116,122,124,130],{"type":47,"value":100},"The CLI emits structured diagnostics on stderr (",{"type":41,"tag":71,"props":102,"children":104},{"className":103},[],[105],{"type":47,"value":106},"hint:",{"type":47,"value":108},", ",{"type":41,"tag":71,"props":110,"children":112},{"className":111},[],[113],{"type":47,"value":114},"note:",{"type":47,"value":108},{"type":41,"tag":71,"props":117,"children":119},{"className":118},[],[120],{"type":47,"value":121},"warn:",{"type":47,"value":123},"; JSONL with ",{"type":41,"tag":71,"props":125,"children":127},{"className":126},[],[128],{"type":47,"value":129},"class",{"type":47,"value":131}," in agent mode). Pass them through.",{"type":41,"tag":91,"props":133,"children":134},{},[135,137,143,145,151],{"type":47,"value":136},"The default ",{"type":41,"tag":71,"props":138,"children":140},{"className":139},[],[141],{"type":47,"value":142},"alert-groups list",{"type":47,"value":144}," filter excludes resolved + child groups. Surface ",{"type":41,"tag":71,"props":146,"children":148},{"className":147},[],[149],{"type":47,"value":150},"--all",{"type":47,"value":152}," only when the user asks about history.",{"type":41,"tag":91,"props":154,"children":155},{},[156,158,164,166,171],{"type":47,"value":157},"Action verbs in agent mode require ",{"type":41,"tag":71,"props":159,"children":161},{"className":160},[],[162],{"type":47,"value":163},"--force",{"type":47,"value":165}," when matched count > 1. Never pre-fill ",{"type":41,"tag":71,"props":167,"children":169},{"className":168},[],[170],{"type":47,"value":163},{"type":47,"value":172}," without user confirmation.",{"type":41,"tag":80,"props":174,"children":176},{"id":175},"prerequisites",[177],{"type":47,"value":178},"Prerequisites",{"type":41,"tag":50,"props":180,"children":181},{},[182],{"type":47,"value":183},"gcx configured with an active context that targets a Grafana stack with OnCall enabled. If not, use the setup-gcx skill first.",{"type":41,"tag":80,"props":185,"children":187},{"id":186},"triage-workflow",[188],{"type":47,"value":189},"Triage Workflow",{"type":41,"tag":191,"props":192,"children":194},"h3",{"id":193},"step-1-list-active-alert-groups",[195],{"type":47,"value":196},"Step 1: List Active Alert Groups",{"type":41,"tag":198,"props":199,"children":204},"pre",{"className":200,"code":201,"language":202,"meta":203,"style":203},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","gcx irm oncall alert-groups list\n","bash","",[205],{"type":41,"tag":71,"props":206,"children":207},{"__ignoreMap":203},[208],{"type":41,"tag":209,"props":210,"children":213},"span",{"class":211,"line":212},"line",1,[214,220,226,231,236],{"type":41,"tag":209,"props":215,"children":217},{"style":216},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[218],{"type":47,"value":219},"gcx",{"type":41,"tag":209,"props":221,"children":223},{"style":222},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[224],{"type":47,"value":225}," irm",{"type":41,"tag":209,"props":227,"children":228},{"style":222},[229],{"type":47,"value":230}," oncall",{"type":41,"tag":209,"props":232,"children":233},{"style":222},[234],{"type":47,"value":235}," alert-groups",{"type":41,"tag":209,"props":237,"children":238},{"style":222},[239],{"type":47,"value":240}," list\n",{"type":41,"tag":50,"props":242,"children":243},{},[244,246,252,254,260,262,268,270,276,277,283,284,290,291,297,298,304],{"type":47,"value":245},"Default filter: ",{"type":41,"tag":71,"props":247,"children":249},{"className":248},[],[250],{"type":47,"value":251},"state in {firing, acknowledged, silenced}",{"type":47,"value":253}," and ",{"type":41,"tag":71,"props":255,"children":257},{"className":256},[],[258],{"type":47,"value":259},"is_root=true",{"type":47,"value":261}," (matches the OnCall UI). See ",{"type":41,"tag":71,"props":263,"children":265},{"className":264},[],[266],{"type":47,"value":267},"--help",{"type":47,"value":269}," for the full flag set; common narrowers are ",{"type":41,"tag":71,"props":271,"children":273},{"className":272},[],[274],{"type":47,"value":275},"--state",{"type":47,"value":108},{"type":41,"tag":71,"props":278,"children":280},{"className":279},[],[281],{"type":47,"value":282},"--team \u003CPK>",{"type":47,"value":108},{"type":41,"tag":71,"props":285,"children":287},{"className":286},[],[288],{"type":47,"value":289},"--integration \u003CPK>",{"type":47,"value":108},{"type":41,"tag":71,"props":292,"children":294},{"className":293},[],[295],{"type":47,"value":296},"--mine",{"type":47,"value":108},{"type":41,"tag":71,"props":299,"children":301},{"className":300},[],[302],{"type":47,"value":303},"--max-age 24h",{"type":47,"value":305},". Team \u002F integration filters take PKs, not names — resolve first:",{"type":41,"tag":198,"props":307,"children":309},{"className":200,"code":308,"language":202,"meta":203,"style":203},"gcx irm oncall teams list -o json | jq -r '.[] | \"\\(.metadata.name): \\(.spec.name)\"' | grep -i \"my team\"\n",[310],{"type":41,"tag":71,"props":311,"children":312},{"__ignoreMap":203},[313],{"type":41,"tag":209,"props":314,"children":315},{"class":211,"line":212},[316,320,324,328,333,338,343,348,354,359,364,369,374,379,383,388,393,398,403],{"type":41,"tag":209,"props":317,"children":318},{"style":216},[319],{"type":47,"value":219},{"type":41,"tag":209,"props":321,"children":322},{"style":222},[323],{"type":47,"value":225},{"type":41,"tag":209,"props":325,"children":326},{"style":222},[327],{"type":47,"value":230},{"type":41,"tag":209,"props":329,"children":330},{"style":222},[331],{"type":47,"value":332}," teams",{"type":41,"tag":209,"props":334,"children":335},{"style":222},[336],{"type":47,"value":337}," list",{"type":41,"tag":209,"props":339,"children":340},{"style":222},[341],{"type":47,"value":342}," -o",{"type":41,"tag":209,"props":344,"children":345},{"style":222},[346],{"type":47,"value":347}," json",{"type":41,"tag":209,"props":349,"children":351},{"style":350},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[352],{"type":47,"value":353}," |",{"type":41,"tag":209,"props":355,"children":356},{"style":216},[357],{"type":47,"value":358}," jq",{"type":41,"tag":209,"props":360,"children":361},{"style":222},[362],{"type":47,"value":363}," -r",{"type":41,"tag":209,"props":365,"children":366},{"style":350},[367],{"type":47,"value":368}," '",{"type":41,"tag":209,"props":370,"children":371},{"style":222},[372],{"type":47,"value":373},".[] | \"\\(.metadata.name): \\(.spec.name)\"",{"type":41,"tag":209,"props":375,"children":376},{"style":350},[377],{"type":47,"value":378},"'",{"type":41,"tag":209,"props":380,"children":381},{"style":350},[382],{"type":47,"value":353},{"type":41,"tag":209,"props":384,"children":385},{"style":216},[386],{"type":47,"value":387}," grep",{"type":41,"tag":209,"props":389,"children":390},{"style":222},[391],{"type":47,"value":392}," -i",{"type":41,"tag":209,"props":394,"children":395},{"style":350},[396],{"type":47,"value":397}," \"",{"type":41,"tag":209,"props":399,"children":400},{"style":222},[401],{"type":47,"value":402},"my team",{"type":41,"tag":209,"props":404,"children":405},{"style":350},[406],{"type":47,"value":407},"\"\n",{"type":41,"tag":50,"props":409,"children":410},{},[411,413,418,420,426,427,433],{"type":47,"value":412},"Escape hatches: ",{"type":41,"tag":71,"props":414,"children":416},{"className":415},[],[417],{"type":47,"value":150},{"type":47,"value":419}," (drops both defaults — returns resolved + child groups), ",{"type":41,"tag":71,"props":421,"children":423},{"className":422},[],[424],{"type":47,"value":425},"--include-child-groups",{"type":47,"value":108},{"type":41,"tag":71,"props":428,"children":430},{"className":429},[],[431],{"type":47,"value":432},"--state resolved",{"type":47,"value":434},".",{"type":41,"tag":50,"props":436,"children":437},{},[438,440,446,448,454,456,462,464,470,472,477],{"type":47,"value":439},"Default table: ",{"type":41,"tag":71,"props":441,"children":443},{"className":442},[],[444],{"type":47,"value":445},"ID TITLE SEVERITY STATE TEAM SUBJECT AGE",{"type":47,"value":447},". ",{"type":41,"tag":71,"props":449,"children":451},{"className":450},[],[452],{"type":47,"value":453},"-o wide",{"type":47,"value":455}," adds ",{"type":41,"tag":71,"props":457,"children":459},{"className":458},[],[460],{"type":47,"value":461},"RULE",{"type":47,"value":463}," (Grafana rule URL) and ",{"type":41,"tag":71,"props":465,"children":467},{"className":466},[],[468],{"type":47,"value":469},"ALERTS",{"type":47,"value":471}," (group-wide count). Use ",{"type":41,"tag":71,"props":473,"children":475},{"className":474},[],[476],{"type":47,"value":453},{"type":47,"value":478}," when the user needs the rule pivot.",{"type":41,"tag":50,"props":480,"children":481},{},[482,484,490,492,497,499,504],{"type":47,"value":483},"There is no ",{"type":41,"tag":71,"props":485,"children":487},{"className":486},[],[488],{"type":47,"value":489},"--title",{"type":47,"value":491}," \u002F substring filter. To act on \"all the kafka ones\", fetch JSON, filter with jq, then loop the IDs through the action verb (or — if the kafka alerts all share an integration or team — bulk-by-filter with ",{"type":41,"tag":71,"props":493,"children":495},{"className":494},[],[496],{"type":47,"value":289},{"type":47,"value":498}," \u002F ",{"type":41,"tag":71,"props":500,"children":502},{"className":501},[],[503],{"type":47,"value":282},{"type":47,"value":505}," instead):",{"type":41,"tag":198,"props":507,"children":509},{"className":200,"code":508,"language":202,"meta":203,"style":203},"gcx irm oncall alert-groups list -o json | \\\n  jq -r '.items[] | select(.status.title | test(\"kafka\"; \"i\")) | .metadata.name'\n",[510],{"type":41,"tag":71,"props":511,"children":512},{"__ignoreMap":203},[513,554],{"type":41,"tag":209,"props":514,"children":515},{"class":211,"line":212},[516,520,524,528,532,536,540,544,548],{"type":41,"tag":209,"props":517,"children":518},{"style":216},[519],{"type":47,"value":219},{"type":41,"tag":209,"props":521,"children":522},{"style":222},[523],{"type":47,"value":225},{"type":41,"tag":209,"props":525,"children":526},{"style":222},[527],{"type":47,"value":230},{"type":41,"tag":209,"props":529,"children":530},{"style":222},[531],{"type":47,"value":235},{"type":41,"tag":209,"props":533,"children":534},{"style":222},[535],{"type":47,"value":337},{"type":41,"tag":209,"props":537,"children":538},{"style":222},[539],{"type":47,"value":342},{"type":41,"tag":209,"props":541,"children":542},{"style":222},[543],{"type":47,"value":347},{"type":41,"tag":209,"props":545,"children":546},{"style":350},[547],{"type":47,"value":353},{"type":41,"tag":209,"props":549,"children":551},{"style":550},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[552],{"type":47,"value":553}," \\\n",{"type":41,"tag":209,"props":555,"children":557},{"class":211,"line":556},2,[558,563,567,571,576],{"type":41,"tag":209,"props":559,"children":560},{"style":216},[561],{"type":47,"value":562},"  jq",{"type":41,"tag":209,"props":564,"children":565},{"style":222},[566],{"type":47,"value":363},{"type":41,"tag":209,"props":568,"children":569},{"style":350},[570],{"type":47,"value":368},{"type":41,"tag":209,"props":572,"children":573},{"style":222},[574],{"type":47,"value":575},".items[] | select(.status.title | test(\"kafka\"; \"i\")) | .metadata.name",{"type":41,"tag":209,"props":577,"children":578},{"style":350},[579],{"type":47,"value":580},"'\n",{"type":41,"tag":191,"props":582,"children":584},{"id":583},"step-2-drill-into-a-group",[585],{"type":47,"value":586},"Step 2: Drill Into a Group",{"type":41,"tag":198,"props":588,"children":590},{"className":200,"code":589,"language":202,"meta":203,"style":203},"gcx irm oncall alert-groups get \u003Cid>\n",[591],{"type":41,"tag":71,"props":592,"children":593},{"__ignoreMap":203},[594],{"type":41,"tag":209,"props":595,"children":596},{"class":211,"line":212},[597,601,605,609,613,618,623,628,633],{"type":41,"tag":209,"props":598,"children":599},{"style":216},[600],{"type":47,"value":219},{"type":41,"tag":209,"props":602,"children":603},{"style":222},[604],{"type":47,"value":225},{"type":41,"tag":209,"props":606,"children":607},{"style":222},[608],{"type":47,"value":230},{"type":41,"tag":209,"props":610,"children":611},{"style":222},[612],{"type":47,"value":235},{"type":41,"tag":209,"props":614,"children":615},{"style":222},[616],{"type":47,"value":617}," get",{"type":41,"tag":209,"props":619,"children":620},{"style":350},[621],{"type":47,"value":622}," \u003C",{"type":41,"tag":209,"props":624,"children":625},{"style":222},[626],{"type":47,"value":627},"i",{"type":41,"tag":209,"props":629,"children":630},{"style":550},[631],{"type":47,"value":632},"d",{"type":41,"tag":209,"props":634,"children":635},{"style":350},[636],{"type":47,"value":637},">\n",{"type":41,"tag":50,"props":639,"children":640},{},[641,643,649,651,657],{"type":47,"value":642},"One round trip already populates the rich ",{"type":41,"tag":71,"props":644,"children":646},{"className":645},[],[647],{"type":47,"value":648},"status.links.*",{"type":47,"value":650}," block — typical triage does NOT need ",{"type":41,"tag":71,"props":652,"children":654},{"className":653},[],[655],{"type":47,"value":656},"list-alerts",{"type":47,"value":658}," first.",{"type":41,"tag":50,"props":660,"children":661},{},[662,664,670],{"type":47,"value":663},"Key paths under ",{"type":41,"tag":71,"props":665,"children":667},{"className":666},[],[668],{"type":47,"value":669},"status",{"type":47,"value":671},":",{"type":41,"tag":673,"props":674,"children":675},"ul",{},[676,722,749,758,769,780,789,798],{"type":41,"tag":91,"props":677,"children":678},{},[679,685,686,692,693,699,701,707,709,715,716],{"type":41,"tag":71,"props":680,"children":682},{"className":681},[],[683],{"type":47,"value":684},"title",{"type":47,"value":108},{"type":41,"tag":71,"props":687,"children":689},{"className":688},[],[690],{"type":47,"value":691},"severity",{"type":47,"value":108},{"type":41,"tag":71,"props":694,"children":696},{"className":695},[],[697],{"type":47,"value":698},"state",{"type":47,"value":700}," (",{"type":41,"tag":71,"props":702,"children":704},{"className":703},[],[705],{"type":47,"value":706},"firing|acknowledged|resolved|silenced",{"type":47,"value":708},"), ",{"type":41,"tag":71,"props":710,"children":712},{"className":711},[],[713],{"type":47,"value":714},"summary",{"type":47,"value":108},{"type":41,"tag":71,"props":717,"children":719},{"className":718},[],[720],{"type":47,"value":721},"runbookURL",{"type":41,"tag":91,"props":723,"children":724},{},[725,731,733,739,741,747],{"type":41,"tag":71,"props":726,"children":728},{"className":727},[],[729],{"type":47,"value":730},"subject.labels",{"type":47,"value":732}," — canonical commonLabels (whatever the rule grouped by; canonical only on ",{"type":41,"tag":71,"props":734,"children":736},{"className":735},[],[737],{"type":47,"value":738},"get",{"type":47,"value":740},", best-effort on ",{"type":41,"tag":71,"props":742,"children":744},{"className":743},[],[745],{"type":47,"value":746},"list",{"type":47,"value":748},")",{"type":41,"tag":91,"props":750,"children":751},{},[752],{"type":41,"tag":71,"props":753,"children":755},{"className":754},[],[756],{"type":47,"value":757},"timestamps.{started,acknowledged,resolved,silenced}",{"type":41,"tag":91,"props":759,"children":760},{},[761,767],{"type":41,"tag":71,"props":762,"children":764},{"className":763},[],[765],{"type":47,"value":766},"links.alert.rule.{uid,url}",{"type":47,"value":768}," — Grafana alert rule pivot (most important)",{"type":41,"tag":91,"props":770,"children":771},{},[772,778],{"type":41,"tag":71,"props":773,"children":775},{"className":774},[],[776],{"type":47,"value":777},"links.alert.instance.{id,silenceURL}",{"type":47,"value":779}," — Alertmanager fingerprint",{"type":41,"tag":91,"props":781,"children":782},{},[783],{"type":41,"tag":71,"props":784,"children":786},{"className":785},[],[787],{"type":47,"value":788},"links.dashboard.{uid,url,panel.id,panel.url}",{"type":41,"tag":91,"props":790,"children":791},{},[792],{"type":41,"tag":71,"props":793,"children":795},{"className":794},[],[796],{"type":47,"value":797},"links.slo.{uid,name}",{"type":41,"tag":91,"props":799,"children":800},{},[801],{"type":41,"tag":71,"props":802,"children":804},{"className":803},[],[805],{"type":47,"value":806},"alertsCount",{"type":41,"tag":50,"props":808,"children":809},{},[810,812,818,820,826,827,833],{"type":47,"value":811},"Also: ",{"type":41,"tag":71,"props":813,"children":815},{"className":814},[],[816],{"type":47,"value":817},"spec.permalinks.web",{"type":47,"value":819}," (OnCall UI), ",{"type":41,"tag":71,"props":821,"children":823},{"className":822},[],[824],{"type":47,"value":825},"spec.team.{id,name}",{"type":47,"value":108},{"type":41,"tag":71,"props":828,"children":830},{"className":829},[],[831],{"type":47,"value":832},"spec.integration.{id,name,type}",{"type":47,"value":434},{"type":41,"tag":50,"props":835,"children":836},{},[837,843,845,851],{"type":41,"tag":71,"props":838,"children":840},{"className":839},[],[841],{"type":47,"value":842},"--include-raw",{"type":47,"value":844}," adds the unprocessed Alertmanager payload at ",{"type":41,"tag":71,"props":846,"children":848},{"className":847},[],[849],{"type":47,"value":850},"status.raw",{"type":47,"value":852}," — only when the user needs an unpromoted label or annotation.",{"type":41,"tag":191,"props":854,"children":856},{"id":855},"step-3-per-alert-detail-when-needed",[857],{"type":47,"value":858},"Step 3: Per-Alert Detail (when needed)",{"type":41,"tag":50,"props":860,"children":861},{},[862],{"type":47,"value":863},"Only when the group has multiple firing instances and the user needs per-fire detail:",{"type":41,"tag":198,"props":865,"children":867},{"className":200,"code":866,"language":202,"meta":203,"style":203},"gcx irm oncall alert-groups list-alerts \u003Cid>\n",[868],{"type":41,"tag":71,"props":869,"children":870},{"__ignoreMap":203},[871],{"type":41,"tag":209,"props":872,"children":873},{"class":211,"line":212},[874,878,882,886,890,895,899,903,907],{"type":41,"tag":209,"props":875,"children":876},{"style":216},[877],{"type":47,"value":219},{"type":41,"tag":209,"props":879,"children":880},{"style":222},[881],{"type":47,"value":225},{"type":41,"tag":209,"props":883,"children":884},{"style":222},[885],{"type":47,"value":230},{"type":41,"tag":209,"props":887,"children":888},{"style":222},[889],{"type":47,"value":235},{"type":41,"tag":209,"props":891,"children":892},{"style":222},[893],{"type":47,"value":894}," list-alerts",{"type":41,"tag":209,"props":896,"children":897},{"style":350},[898],{"type":47,"value":622},{"type":41,"tag":209,"props":900,"children":901},{"style":222},[902],{"type":47,"value":627},{"type":41,"tag":209,"props":904,"children":905},{"style":550},[906],{"type":47,"value":632},{"type":41,"tag":209,"props":908,"children":909},{"style":350},[910],{"type":47,"value":637},{"type":41,"tag":50,"props":912,"children":913},{},[914,916,922,924,930,932,938,940,946,948,953,955,961],{"type":47,"value":915},"Default collapses by label set (Alertmanager fingerprint) — repeated fires of the same labeled instance fold into one row, ",{"type":41,"tag":71,"props":917,"children":919},{"className":918},[],[920],{"type":47,"value":921},"status.occurrences",{"type":47,"value":923}," reports the re-fire count. ",{"type":41,"tag":71,"props":925,"children":927},{"className":926},[],[928],{"type":47,"value":929},"--history",{"type":47,"value":931}," opts out (every delivery becomes a row, ",{"type":41,"tag":71,"props":933,"children":935},{"className":934},[],[936],{"type":47,"value":937},"occurrences: 1",{"type":47,"value":939},"). ",{"type":41,"tag":71,"props":941,"children":943},{"className":942},[],[944],{"type":47,"value":945},"--slim",{"type":47,"value":947}," skips the per-alert fetch for counting\u002Fsorting. ",{"type":41,"tag":71,"props":949,"children":951},{"className":950},[],[952],{"type":47,"value":842},{"type":47,"value":954}," exposes the full payload. ",{"type":41,"tag":71,"props":956,"children":958},{"className":957},[],[959],{"type":47,"value":960},"--limit",{"type":47,"value":962}," default 100; the CLI warns when capped.",{"type":41,"tag":50,"props":964,"children":965},{},[966,968,974,976,981,982,987,988,993],{"type":47,"value":967},"Per-alert key fields: ",{"type":41,"tag":71,"props":969,"children":971},{"className":970},[],[972],{"type":47,"value":973},"status.dimensions.labels",{"type":47,"value":975}," (per-fire discriminators — labels that differ from the group's ",{"type":41,"tag":71,"props":977,"children":979},{"className":978},[],[980],{"type":47,"value":730},{"type":47,"value":708},{"type":41,"tag":71,"props":983,"children":985},{"className":984},[],[986],{"type":47,"value":921},{"type":47,"value":108},{"type":41,"tag":71,"props":989,"children":991},{"className":990},[],[992],{"type":47,"value":648},{"type":47,"value":994}," (usually constant across siblings).",{"type":41,"tag":191,"props":996,"children":998},{"id":997},"step-4-pivot-to-alert-rule-dashboard-slo",[999],{"type":47,"value":1000},"Step 4: Pivot to Alert Rule \u002F Dashboard \u002F SLO",{"type":41,"tag":50,"props":1002,"children":1003},{},[1004,1006,1011],{"type":47,"value":1005},"The ",{"type":41,"tag":71,"props":1007,"children":1009},{"className":1008},[],[1010],{"type":47,"value":648},{"type":47,"value":1012}," identifiers are cross-provider pivots:",{"type":41,"tag":1014,"props":1015,"children":1016},"table",{},[1017,1036],{"type":41,"tag":1018,"props":1019,"children":1020},"thead",{},[1021],{"type":41,"tag":1022,"props":1023,"children":1024},"tr",{},[1025,1031],{"type":41,"tag":1026,"props":1027,"children":1028},"th",{},[1029],{"type":47,"value":1030},"Source field",{"type":41,"tag":1026,"props":1032,"children":1033},{},[1034],{"type":47,"value":1035},"Next command",{"type":41,"tag":1037,"props":1038,"children":1039},"tbody",{},[1040,1071,1110],{"type":41,"tag":1022,"props":1041,"children":1042},{},[1043,1053],{"type":41,"tag":1044,"props":1045,"children":1046},"td",{},[1047],{"type":41,"tag":71,"props":1048,"children":1050},{"className":1049},[],[1051],{"type":47,"value":1052},"status.links.alert.rule.uid",{"type":41,"tag":1044,"props":1054,"children":1055},{},[1056,1062,1064,1069],{"type":41,"tag":71,"props":1057,"children":1059},{"className":1058},[],[1060],{"type":47,"value":1061},"gcx alert instances list --rule \u003Cuid>",{"type":47,"value":1063}," — all currently firing instances across clusters; hand off to ",{"type":41,"tag":56,"props":1065,"children":1066},{},[1067],{"type":47,"value":1068},"investigate-alert",{"type":47,"value":1070}," for rule-side root cause",{"type":41,"tag":1022,"props":1072,"children":1073},{},[1074,1083],{"type":41,"tag":1044,"props":1075,"children":1076},{},[1077],{"type":41,"tag":71,"props":1078,"children":1080},{"className":1079},[],[1081],{"type":47,"value":1082},"status.links.dashboard.uid",{"type":41,"tag":1044,"props":1084,"children":1085},{},[1086,1092,1094,1100,1102,1108],{"type":41,"tag":71,"props":1087,"children":1089},{"className":1088},[],[1090],{"type":47,"value":1091},"gcx dashboards get \u003Cuid>",{"type":47,"value":1093}," (metadata\u002Fpanels); ",{"type":41,"tag":71,"props":1095,"children":1097},{"className":1096},[],[1098],{"type":47,"value":1099},"gcx dashboards search \u003Ckeywords>",{"type":47,"value":1101}," (find related); ",{"type":41,"tag":71,"props":1103,"children":1105},{"className":1104},[],[1106],{"type":47,"value":1107},"gcx dashboards snapshot \u003Cuid> --since 6h",{"type":47,"value":1109}," (visual inspection)",{"type":41,"tag":1022,"props":1111,"children":1112},{},[1113,1122],{"type":41,"tag":1044,"props":1114,"children":1115},{},[1116],{"type":41,"tag":71,"props":1117,"children":1119},{"className":1118},[],[1120],{"type":47,"value":1121},"status.links.slo.uid",{"type":41,"tag":1044,"props":1123,"children":1124},{},[1125,1131,1133,1139,1141,1147,1149,1155,1157],{"type":41,"tag":71,"props":1126,"children":1128},{"className":1127},[],[1129],{"type":47,"value":1130},"gcx slo definitions status \u003Cuid>",{"type":47,"value":1132}," (current SLI + budget — note: budget figure may show 100% if recording rules are absent or budget went deeply negative; use ",{"type":41,"tag":71,"props":1134,"children":1136},{"className":1135},[],[1137],{"type":47,"value":1138},"gcx dashboards snapshot grafana_slo_app-\u003Cuid> --since 28d",{"type":47,"value":1140}," for the authoritative historical view); then ",{"type":41,"tag":71,"props":1142,"children":1144},{"className":1143},[],[1145],{"type":47,"value":1146},"gcx slo definitions get \u003Cuid>",{"type":47,"value":1148}," to extract datasource UID and recording-rule queries for ",{"type":41,"tag":71,"props":1150,"children":1152},{"className":1151},[],[1153],{"type":47,"value":1154},"gcx metrics query",{"type":47,"value":1156},"; or ",{"type":41,"tag":56,"props":1158,"children":1159},{},[1160],{"type":47,"value":1161},"slo-investigate",{"type":41,"tag":191,"props":1163,"children":1165},{"id":1164},"step-5-act",[1166],{"type":47,"value":1167},"Step 5: Act",{"type":41,"tag":50,"props":1169,"children":1170},{},[1171,1173,1179,1181,1186,1188,1194,1195,1201,1202,1208,1210,1216,1218,1224,1225,1231,1232,1238,1239,1245,1247,1252],{"type":47,"value":1172},"The same verb runs single-target (pass ",{"type":41,"tag":71,"props":1174,"children":1176},{"className":1175},[],[1177],{"type":47,"value":1178},"\u003Cid>",{"type":47,"value":1180},") or bulk-by-filter (omit ",{"type":41,"tag":71,"props":1182,"children":1184},{"className":1183},[],[1185],{"type":47,"value":1178},{"type":47,"value":1187},", pass filter flags). Verbs: ",{"type":41,"tag":71,"props":1189,"children":1191},{"className":1190},[],[1192],{"type":47,"value":1193},"acknowledge",{"type":47,"value":108},{"type":41,"tag":71,"props":1196,"children":1198},{"className":1197},[],[1199],{"type":47,"value":1200},"unacknowledge",{"type":47,"value":108},{"type":41,"tag":71,"props":1203,"children":1205},{"className":1204},[],[1206],{"type":47,"value":1207},"silence",{"type":47,"value":1209}," (+ ",{"type":41,"tag":71,"props":1211,"children":1213},{"className":1212},[],[1214],{"type":47,"value":1215},"--duration",{"type":47,"value":1217}," seconds), ",{"type":41,"tag":71,"props":1219,"children":1221},{"className":1220},[],[1222],{"type":47,"value":1223},"unsilence",{"type":47,"value":108},{"type":41,"tag":71,"props":1226,"children":1228},{"className":1227},[],[1229],{"type":47,"value":1230},"resolve",{"type":47,"value":108},{"type":41,"tag":71,"props":1233,"children":1235},{"className":1234},[],[1236],{"type":47,"value":1237},"unresolve",{"type":47,"value":108},{"type":41,"tag":71,"props":1240,"children":1242},{"className":1241},[],[1243],{"type":47,"value":1244},"delete",{"type":47,"value":1246},". All are idempotent except ",{"type":41,"tag":71,"props":1248,"children":1250},{"className":1249},[],[1251],{"type":47,"value":1244},{"type":47,"value":434},{"type":41,"tag":198,"props":1254,"children":1256},{"className":200,"code":1255,"language":202,"meta":203,"style":203},"# Single-target\ngcx irm oncall alert-groups acknowledge \u003Cid>\ngcx irm oncall alert-groups silence \u003Cid> --duration 3600\n\n# Bulk-by-filter (filter flags mirror `list`)\ngcx irm oncall alert-groups acknowledge --team \u003CPK> --state firing --force\n",[1257],{"type":41,"tag":71,"props":1258,"children":1259},{"__ignoreMap":203},[1260,1269,1309,1362,1372,1381],{"type":41,"tag":209,"props":1261,"children":1262},{"class":211,"line":212},[1263],{"type":41,"tag":209,"props":1264,"children":1266},{"style":1265},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[1267],{"type":47,"value":1268},"# Single-target\n",{"type":41,"tag":209,"props":1270,"children":1271},{"class":211,"line":556},[1272,1276,1280,1284,1288,1293,1297,1301,1305],{"type":41,"tag":209,"props":1273,"children":1274},{"style":216},[1275],{"type":47,"value":219},{"type":41,"tag":209,"props":1277,"children":1278},{"style":222},[1279],{"type":47,"value":225},{"type":41,"tag":209,"props":1281,"children":1282},{"style":222},[1283],{"type":47,"value":230},{"type":41,"tag":209,"props":1285,"children":1286},{"style":222},[1287],{"type":47,"value":235},{"type":41,"tag":209,"props":1289,"children":1290},{"style":222},[1291],{"type":47,"value":1292}," acknowledge",{"type":41,"tag":209,"props":1294,"children":1295},{"style":350},[1296],{"type":47,"value":622},{"type":41,"tag":209,"props":1298,"children":1299},{"style":222},[1300],{"type":47,"value":627},{"type":41,"tag":209,"props":1302,"children":1303},{"style":550},[1304],{"type":47,"value":632},{"type":41,"tag":209,"props":1306,"children":1307},{"style":350},[1308],{"type":47,"value":637},{"type":41,"tag":209,"props":1310,"children":1312},{"class":211,"line":1311},3,[1313,1317,1321,1325,1329,1334,1338,1342,1346,1351,1356],{"type":41,"tag":209,"props":1314,"children":1315},{"style":216},[1316],{"type":47,"value":219},{"type":41,"tag":209,"props":1318,"children":1319},{"style":222},[1320],{"type":47,"value":225},{"type":41,"tag":209,"props":1322,"children":1323},{"style":222},[1324],{"type":47,"value":230},{"type":41,"tag":209,"props":1326,"children":1327},{"style":222},[1328],{"type":47,"value":235},{"type":41,"tag":209,"props":1330,"children":1331},{"style":222},[1332],{"type":47,"value":1333}," silence",{"type":41,"tag":209,"props":1335,"children":1336},{"style":350},[1337],{"type":47,"value":622},{"type":41,"tag":209,"props":1339,"children":1340},{"style":222},[1341],{"type":47,"value":627},{"type":41,"tag":209,"props":1343,"children":1344},{"style":550},[1345],{"type":47,"value":632},{"type":41,"tag":209,"props":1347,"children":1348},{"style":350},[1349],{"type":47,"value":1350},">",{"type":41,"tag":209,"props":1352,"children":1353},{"style":222},[1354],{"type":47,"value":1355}," --duration",{"type":41,"tag":209,"props":1357,"children":1359},{"style":1358},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[1360],{"type":47,"value":1361}," 3600\n",{"type":41,"tag":209,"props":1363,"children":1365},{"class":211,"line":1364},4,[1366],{"type":41,"tag":209,"props":1367,"children":1369},{"emptyLinePlaceholder":1368},true,[1370],{"type":47,"value":1371},"\n",{"type":41,"tag":209,"props":1373,"children":1375},{"class":211,"line":1374},5,[1376],{"type":41,"tag":209,"props":1377,"children":1378},{"style":1265},[1379],{"type":47,"value":1380},"# Bulk-by-filter (filter flags mirror `list`)\n",{"type":41,"tag":209,"props":1382,"children":1384},{"class":211,"line":1383},6,[1385,1389,1393,1397,1401,1405,1410,1414,1419,1424,1428,1433,1438],{"type":41,"tag":209,"props":1386,"children":1387},{"style":216},[1388],{"type":47,"value":219},{"type":41,"tag":209,"props":1390,"children":1391},{"style":222},[1392],{"type":47,"value":225},{"type":41,"tag":209,"props":1394,"children":1395},{"style":222},[1396],{"type":47,"value":230},{"type":41,"tag":209,"props":1398,"children":1399},{"style":222},[1400],{"type":47,"value":235},{"type":41,"tag":209,"props":1402,"children":1403},{"style":222},[1404],{"type":47,"value":1292},{"type":41,"tag":209,"props":1406,"children":1407},{"style":222},[1408],{"type":47,"value":1409}," --team",{"type":41,"tag":209,"props":1411,"children":1412},{"style":350},[1413],{"type":47,"value":622},{"type":41,"tag":209,"props":1415,"children":1416},{"style":222},[1417],{"type":47,"value":1418},"P",{"type":41,"tag":209,"props":1420,"children":1421},{"style":550},[1422],{"type":47,"value":1423},"K",{"type":41,"tag":209,"props":1425,"children":1426},{"style":350},[1427],{"type":47,"value":1350},{"type":41,"tag":209,"props":1429,"children":1430},{"style":222},[1431],{"type":47,"value":1432}," --state",{"type":41,"tag":209,"props":1434,"children":1435},{"style":222},[1436],{"type":47,"value":1437}," firing",{"type":41,"tag":209,"props":1439,"children":1440},{"style":222},[1441],{"type":47,"value":1442}," --force\n",{"type":41,"tag":50,"props":1444,"children":1445},{},[1446],{"type":47,"value":1447},"Result envelopes:",{"type":41,"tag":198,"props":1449,"children":1453},{"className":1450,"code":1451,"language":1452,"meta":203,"style":203},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F Single-target\n{\"action\":\"acknowledge\",\"target\":{\"alertGroupId\":\"\u003Cid>\"},\"changed\":true}\n\n\u002F\u002F Bulk\n{\"action\":\"acknowledge\",\"summary\":{\"matched\":23,\"succeeded\":18,\"skipped\":5,\"failed\":0},\"failures\":[]}\n","json",[1454],{"type":41,"tag":71,"props":1455,"children":1456},{"__ignoreMap":203},[1457,1465,1579,1586,1594],{"type":41,"tag":209,"props":1458,"children":1459},{"class":211,"line":212},[1460],{"type":41,"tag":209,"props":1461,"children":1462},{"style":1265},[1463],{"type":47,"value":1464},"\u002F\u002F Single-target\n",{"type":41,"tag":209,"props":1466,"children":1467},{"class":211,"line":556},[1468,1473,1478,1484,1488,1492,1496,1500,1504,1509,1513,1518,1522,1527,1531,1536,1540,1544,1548,1552,1556,1561,1565,1570,1574],{"type":41,"tag":209,"props":1469,"children":1470},{"style":350},[1471],{"type":47,"value":1472},"{",{"type":41,"tag":209,"props":1474,"children":1475},{"style":350},[1476],{"type":47,"value":1477},"\"",{"type":41,"tag":209,"props":1479,"children":1481},{"style":1480},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[1482],{"type":47,"value":1483},"action",{"type":41,"tag":209,"props":1485,"children":1486},{"style":350},[1487],{"type":47,"value":1477},{"type":41,"tag":209,"props":1489,"children":1490},{"style":350},[1491],{"type":47,"value":671},{"type":41,"tag":209,"props":1493,"children":1494},{"style":350},[1495],{"type":47,"value":1477},{"type":41,"tag":209,"props":1497,"children":1498},{"style":222},[1499],{"type":47,"value":1193},{"type":41,"tag":209,"props":1501,"children":1502},{"style":350},[1503],{"type":47,"value":1477},{"type":41,"tag":209,"props":1505,"children":1506},{"style":350},[1507],{"type":47,"value":1508},",",{"type":41,"tag":209,"props":1510,"children":1511},{"style":350},[1512],{"type":47,"value":1477},{"type":41,"tag":209,"props":1514,"children":1515},{"style":1480},[1516],{"type":47,"value":1517},"target",{"type":41,"tag":209,"props":1519,"children":1520},{"style":350},[1521],{"type":47,"value":1477},{"type":41,"tag":209,"props":1523,"children":1524},{"style":350},[1525],{"type":47,"value":1526},":{",{"type":41,"tag":209,"props":1528,"children":1529},{"style":350},[1530],{"type":47,"value":1477},{"type":41,"tag":209,"props":1532,"children":1533},{"style":216},[1534],{"type":47,"value":1535},"alertGroupId",{"type":41,"tag":209,"props":1537,"children":1538},{"style":350},[1539],{"type":47,"value":1477},{"type":41,"tag":209,"props":1541,"children":1542},{"style":350},[1543],{"type":47,"value":671},{"type":41,"tag":209,"props":1545,"children":1546},{"style":350},[1547],{"type":47,"value":1477},{"type":41,"tag":209,"props":1549,"children":1550},{"style":222},[1551],{"type":47,"value":1178},{"type":41,"tag":209,"props":1553,"children":1554},{"style":350},[1555],{"type":47,"value":1477},{"type":41,"tag":209,"props":1557,"children":1558},{"style":350},[1559],{"type":47,"value":1560},"},",{"type":41,"tag":209,"props":1562,"children":1563},{"style":350},[1564],{"type":47,"value":1477},{"type":41,"tag":209,"props":1566,"children":1567},{"style":1480},[1568],{"type":47,"value":1569},"changed",{"type":41,"tag":209,"props":1571,"children":1572},{"style":350},[1573],{"type":47,"value":1477},{"type":41,"tag":209,"props":1575,"children":1576},{"style":350},[1577],{"type":47,"value":1578},":true}\n",{"type":41,"tag":209,"props":1580,"children":1581},{"class":211,"line":1311},[1582],{"type":41,"tag":209,"props":1583,"children":1584},{"emptyLinePlaceholder":1368},[1585],{"type":47,"value":1371},{"type":41,"tag":209,"props":1587,"children":1588},{"class":211,"line":1364},[1589],{"type":41,"tag":209,"props":1590,"children":1591},{"style":1265},[1592],{"type":47,"value":1593},"\u002F\u002F Bulk\n",{"type":41,"tag":209,"props":1595,"children":1596},{"class":211,"line":1374},[1597,1601,1605,1609,1613,1617,1621,1625,1629,1633,1637,1641,1645,1649,1653,1658,1662,1666,1671,1675,1679,1684,1688,1692,1697,1701,1705,1710,1714,1718,1723,1727,1731,1736,1740,1744,1749,1753,1757,1762,1766],{"type":41,"tag":209,"props":1598,"children":1599},{"style":350},[1600],{"type":47,"value":1472},{"type":41,"tag":209,"props":1602,"children":1603},{"style":350},[1604],{"type":47,"value":1477},{"type":41,"tag":209,"props":1606,"children":1607},{"style":1480},[1608],{"type":47,"value":1483},{"type":41,"tag":209,"props":1610,"children":1611},{"style":350},[1612],{"type":47,"value":1477},{"type":41,"tag":209,"props":1614,"children":1615},{"style":350},[1616],{"type":47,"value":671},{"type":41,"tag":209,"props":1618,"children":1619},{"style":350},[1620],{"type":47,"value":1477},{"type":41,"tag":209,"props":1622,"children":1623},{"style":222},[1624],{"type":47,"value":1193},{"type":41,"tag":209,"props":1626,"children":1627},{"style":350},[1628],{"type":47,"value":1477},{"type":41,"tag":209,"props":1630,"children":1631},{"style":350},[1632],{"type":47,"value":1508},{"type":41,"tag":209,"props":1634,"children":1635},{"style":350},[1636],{"type":47,"value":1477},{"type":41,"tag":209,"props":1638,"children":1639},{"style":1480},[1640],{"type":47,"value":714},{"type":41,"tag":209,"props":1642,"children":1643},{"style":350},[1644],{"type":47,"value":1477},{"type":41,"tag":209,"props":1646,"children":1647},{"style":350},[1648],{"type":47,"value":1526},{"type":41,"tag":209,"props":1650,"children":1651},{"style":350},[1652],{"type":47,"value":1477},{"type":41,"tag":209,"props":1654,"children":1655},{"style":216},[1656],{"type":47,"value":1657},"matched",{"type":41,"tag":209,"props":1659,"children":1660},{"style":350},[1661],{"type":47,"value":1477},{"type":41,"tag":209,"props":1663,"children":1664},{"style":350},[1665],{"type":47,"value":671},{"type":41,"tag":209,"props":1667,"children":1668},{"style":1358},[1669],{"type":47,"value":1670},"23",{"type":41,"tag":209,"props":1672,"children":1673},{"style":350},[1674],{"type":47,"value":1508},{"type":41,"tag":209,"props":1676,"children":1677},{"style":350},[1678],{"type":47,"value":1477},{"type":41,"tag":209,"props":1680,"children":1681},{"style":216},[1682],{"type":47,"value":1683},"succeeded",{"type":41,"tag":209,"props":1685,"children":1686},{"style":350},[1687],{"type":47,"value":1477},{"type":41,"tag":209,"props":1689,"children":1690},{"style":350},[1691],{"type":47,"value":671},{"type":41,"tag":209,"props":1693,"children":1694},{"style":1358},[1695],{"type":47,"value":1696},"18",{"type":41,"tag":209,"props":1698,"children":1699},{"style":350},[1700],{"type":47,"value":1508},{"type":41,"tag":209,"props":1702,"children":1703},{"style":350},[1704],{"type":47,"value":1477},{"type":41,"tag":209,"props":1706,"children":1707},{"style":216},[1708],{"type":47,"value":1709},"skipped",{"type":41,"tag":209,"props":1711,"children":1712},{"style":350},[1713],{"type":47,"value":1477},{"type":41,"tag":209,"props":1715,"children":1716},{"style":350},[1717],{"type":47,"value":671},{"type":41,"tag":209,"props":1719,"children":1720},{"style":1358},[1721],{"type":47,"value":1722},"5",{"type":41,"tag":209,"props":1724,"children":1725},{"style":350},[1726],{"type":47,"value":1508},{"type":41,"tag":209,"props":1728,"children":1729},{"style":350},[1730],{"type":47,"value":1477},{"type":41,"tag":209,"props":1732,"children":1733},{"style":216},[1734],{"type":47,"value":1735},"failed",{"type":41,"tag":209,"props":1737,"children":1738},{"style":350},[1739],{"type":47,"value":1477},{"type":41,"tag":209,"props":1741,"children":1742},{"style":350},[1743],{"type":47,"value":671},{"type":41,"tag":209,"props":1745,"children":1746},{"style":1358},[1747],{"type":47,"value":1748},"0",{"type":41,"tag":209,"props":1750,"children":1751},{"style":350},[1752],{"type":47,"value":1560},{"type":41,"tag":209,"props":1754,"children":1755},{"style":350},[1756],{"type":47,"value":1477},{"type":41,"tag":209,"props":1758,"children":1759},{"style":1480},[1760],{"type":47,"value":1761},"failures",{"type":41,"tag":209,"props":1763,"children":1764},{"style":350},[1765],{"type":47,"value":1477},{"type":41,"tag":209,"props":1767,"children":1768},{"style":350},[1769],{"type":47,"value":1770},":[]}\n",{"type":41,"tag":50,"props":1772,"children":1773},{},[1774,1780,1781,1787,1789,1795,1796,1802],{"type":41,"tag":71,"props":1775,"children":1777},{"className":1776},[],[1778],{"type":47,"value":1779},"changed:false",{"type":47,"value":498},{"type":41,"tag":71,"props":1782,"children":1784},{"className":1783},[],[1785],{"type":47,"value":1786},"skipped++",{"type":47,"value":1788}," on idempotent re-runs (not an error). ",{"type":41,"tag":71,"props":1790,"children":1792},{"className":1791},[],[1793],{"type":47,"value":1794},"matched == succeeded + skipped + failed",{"type":47,"value":447},{"type":41,"tag":71,"props":1797,"children":1799},{"className":1798},[],[1800],{"type":47,"value":1801},"failures[]",{"type":47,"value":1803}," carries only errored targets.",{"type":41,"tag":50,"props":1805,"children":1806},{},[1807,1809,1814,1816,1821,1823,1828,1830,1836],{"type":47,"value":1808},"Bulk in agent mode REQUIRES ",{"type":41,"tag":71,"props":1810,"children":1812},{"className":1811},[],[1813],{"type":47,"value":163},{"type":47,"value":1815}," when matched count > 1. Show the user the filter set and confirm before running — do not pre-fill ",{"type":41,"tag":71,"props":1817,"children":1819},{"className":1818},[],[1820],{"type":47,"value":163},{"type":47,"value":1822},". A bulk call with no ",{"type":41,"tag":71,"props":1824,"children":1826},{"className":1825},[],[1827],{"type":47,"value":1178},{"type":47,"value":1829}," AND no filter flags is blocked with a structured error containing ",{"type":41,"tag":71,"props":1831,"children":1833},{"className":1832},[],[1834],{"type":47,"value":1835},"suggestions[]",{"type":47,"value":434},{"type":41,"tag":80,"props":1838,"children":1840},{"id":1839},"error-handling",[1841],{"type":47,"value":1842},"Error Handling",{"type":41,"tag":673,"props":1844,"children":1845},{},[1846,1864,1882,1909],{"type":41,"tag":91,"props":1847,"children":1848},{},[1849,1855,1857,1862],{"type":41,"tag":71,"props":1850,"children":1852},{"className":1851},[],[1853],{"type":47,"value":1854},"\u003Cid> argument or filter flag required",{"type":47,"value":1856}," — surface the error's ",{"type":41,"tag":71,"props":1858,"children":1860},{"className":1859},[],[1861],{"type":47,"value":1835},{"type":47,"value":1863}," to the user.",{"type":41,"tag":91,"props":1865,"children":1866},{},[1867,1869,1874,1876,1881],{"type":47,"value":1868},"Agent mode + matched > 1 + no ",{"type":41,"tag":71,"props":1870,"children":1872},{"className":1871},[],[1873],{"type":47,"value":163},{"type":47,"value":1875}," — confirm scope with the user, then re-run with ",{"type":41,"tag":71,"props":1877,"children":1879},{"className":1878},[],[1880],{"type":47,"value":163},{"type":47,"value":434},{"type":41,"tag":91,"props":1883,"children":1884},{},[1885,1887,1893,1895,1900,1902,1908],{"type":47,"value":1886},"404 on ",{"type":41,"tag":71,"props":1888,"children":1890},{"className":1889},[],[1891],{"type":47,"value":1892},"get \u003Cid>",{"type":47,"value":1894}," — group may have been purged; retry the prior ",{"type":41,"tag":71,"props":1896,"children":1898},{"className":1897},[],[1899],{"type":47,"value":746},{"type":47,"value":1901}," with ",{"type":41,"tag":71,"props":1903,"children":1905},{"className":1904},[],[1906],{"type":47,"value":1907},"--all --state resolved",{"type":47,"value":434},{"type":41,"tag":91,"props":1910,"children":1911},{},[1912,1918,1919,1925,1927,1932,1934,1939],{"type":41,"tag":71,"props":1913,"children":1915},{"className":1914},[],[1916],{"type":47,"value":1917},"webhook",{"type":47,"value":498},{"type":41,"tag":71,"props":1920,"children":1922},{"className":1921},[],[1923],{"type":47,"value":1924},"formatted_webhook",{"type":47,"value":1926}," integrations — partial ",{"type":41,"tag":71,"props":1928,"children":1930},{"className":1929},[],[1931],{"type":47,"value":648},{"type":47,"value":1933}," and empty ",{"type":41,"tag":71,"props":1935,"children":1937},{"className":1936},[],[1938],{"type":47,"value":730},{"type":47,"value":1940}," are expected, not errors.",{"type":41,"tag":80,"props":1942,"children":1944},{"id":1943},"tips",[1945],{"type":47,"value":1946},"Tips",{"type":41,"tag":673,"props":1948,"children":1949},{},[1950,1975,1999,2019],{"type":41,"tag":91,"props":1951,"children":1952},{},[1953,1958,1960,1966,1968,1973],{"type":41,"tag":71,"props":1954,"children":1956},{"className":1955},[],[1957],{"type":47,"value":738},{"type":47,"value":1959}," inlines ",{"type":41,"tag":71,"props":1961,"children":1963},{"className":1962},[],[1964],{"type":47,"value":1965},"last_alert.raw_request_data",{"type":47,"value":1967}," — prefer it over ",{"type":41,"tag":71,"props":1969,"children":1971},{"className":1970},[],[1972],{"type":47,"value":656},{"type":47,"value":1974}," for typical triage.",{"type":41,"tag":91,"props":1976,"children":1977},{},[1978,1983,1985,1990,1992,1997],{"type":41,"tag":71,"props":1979,"children":1981},{"className":1980},[],[1982],{"type":47,"value":730},{"type":47,"value":1984}," is canonical on ",{"type":41,"tag":71,"props":1986,"children":1988},{"className":1987},[],[1989],{"type":47,"value":738},{"type":47,"value":1991},"; on ",{"type":41,"tag":71,"props":1993,"children":1995},{"className":1994},[],[1996],{"type":47,"value":746},{"type":47,"value":1998}," it is HTML-scraped (good enough for the table, not for exact-label work).",{"type":41,"tag":91,"props":2000,"children":2001},{},[2002,2004,2010,2012,2018],{"type":47,"value":2003},"The team cell renders ",{"type":41,"tag":71,"props":2005,"children":2007},{"className":2006},[],[2008],{"type":47,"value":2009},"\u003Cname> (\u003Cid>)",{"type":47,"value":2011},"; the ID is the copy-paste target for ",{"type":41,"tag":71,"props":2013,"children":2015},{"className":2014},[],[2016],{"type":47,"value":2017},"--team",{"type":47,"value":434},{"type":41,"tag":91,"props":2020,"children":2021},{},[2022,2028,2029,2035,2037,2043],{"type":41,"tag":71,"props":2023,"children":2025},{"className":2024},[],[2026],{"type":47,"value":2027},"gcx irm oncall alerts",{"type":47,"value":253},{"type":41,"tag":71,"props":2030,"children":2032},{"className":2031},[],[2033],{"type":47,"value":2034},"alerts get",{"type":47,"value":2036}," were removed — use ",{"type":41,"tag":71,"props":2038,"children":2040},{"className":2039},[],[2041],{"type":47,"value":2042},"alert-groups list-alerts \u003Cgroup-id>",{"type":47,"value":434},{"type":41,"tag":80,"props":2045,"children":2047},{"id":2046},"related-skills",[2048],{"type":47,"value":2049},"Related Skills",{"type":41,"tag":673,"props":2051,"children":2052},{},[2053,2068,2084],{"type":41,"tag":91,"props":2054,"children":2055},{},[2056,2060,2062,2067],{"type":41,"tag":56,"props":2057,"children":2058},{},[2059],{"type":47,"value":1068},{"type":47,"value":2061}," — rule-side root cause once you have ",{"type":41,"tag":71,"props":2063,"children":2065},{"className":2064},[],[2066],{"type":47,"value":1052},{"type":47,"value":434},{"type":41,"tag":91,"props":2069,"children":2070},{},[2071,2075,2077,2082],{"type":41,"tag":56,"props":2072,"children":2073},{},[2074],{"type":47,"value":1161},{"type":47,"value":2076}," — when ",{"type":41,"tag":71,"props":2078,"children":2080},{"className":2079},[],[2081],{"type":47,"value":1121},{"type":47,"value":2083}," is populated.",{"type":41,"tag":91,"props":2085,"children":2086},{},[2087,2092],{"type":41,"tag":56,"props":2088,"children":2089},{},[2090],{"type":47,"value":2091},"debug-with-grafana",{"type":47,"value":2093}," — broader investigation when the alert is a symptom of a service-level issue.",{"type":41,"tag":2095,"props":2096,"children":2097},"style",{},[2098],{"type":47,"value":2099},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":2101,"total":2284},[2102,2121,2140,2159,2172,2188,2201,2216,2233,2245,2258,2272],{"slug":2103,"name":2103,"fn":2104,"description":2105,"org":2106,"tags":2107,"stars":2118,"repoUrl":2119,"updatedAt":2120},"faro-setup-web","instrument web apps with Grafana Faro","Instruments a web app with Grafana Faro Web SDK for frontend observability. Use when setting up error tracking, Web Vitals, session monitoring, or distributed tracing in a browser app.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2108,2111,2114,2115],{"name":2109,"slug":2110,"type":15},"Distributed Tracing","distributed-tracing",{"name":2112,"slug":2113,"type":15},"Frontend","frontend",{"name":17,"slug":18,"type":15},{"name":2116,"slug":2117,"type":15},"Observability","observability",1103,"https:\u002F\u002Fgithub.com\u002Fgrafana\u002Ffaro-web-sdk","2026-07-12T07:43:24.63314",{"slug":2122,"name":2122,"fn":2123,"description":2124,"org":2125,"tags":2126,"stars":2137,"repoUrl":2138,"updatedAt":2139},"configuring-yesoreyeram-infinity-datasource","configure Grafana Infinity data source","Configure the Infinity data source — base URL and allowed hosts, the authentication methods (basic, bearer token, API key, digest, OAuth passthrough, OAuth 2.0 client credentials\u002FJWT, Azure, Azure Blob, AWS), TLS, custom HTTP headers, network and security settings, the custom health check, and provisioning with a config file. Use when a user asks how to set up, configure, or change settings for the Infinity data source; how to authenticate to an API; how to allow hosts; how to provision it as YAML; or how to troubleshoot connection, authentication, or health-check issues.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2127,2130,2133,2136],{"name":2128,"slug":2129,"type":15},"API Development","api-development",{"name":2131,"slug":2132,"type":15},"Authentication","authentication",{"name":2134,"slug":2135,"type":15},"Configuration","configuration",{"name":9,"slug":8,"type":15},1056,"https:\u002F\u002Fgithub.com\u002Fgrafana\u002Fgrafana-infinity-datasource","2026-07-12T07:43:25.939136",{"slug":2141,"name":2141,"fn":2142,"description":2143,"org":2144,"tags":2145,"stars":2137,"repoUrl":2138,"updatedAt":2158},"querying-yesoreyeram-infinity-datasource","query data with Infinity datasource","Build queries with the Infinity data source — the query types (JSON, CSV, TSV, XML, GraphQL, HTML, UQL, GROQ, Google Sheets, Series, Transformations), the parsers (Frontend\u002Fsimple, Backend JSONata, JQ, UQL, GROQ) and which support alerting, the sources (URL, Inline, Reference, Azure Blob, Random walk), output formats (table, timeseries, logs, trace, node graph, dataframe), root selector and columns, computed columns\u002Ffilters\u002Fsummarize, pagination, and template variables. Use when a user asks how to query Infinity; how to fetch JSON\u002FCSV\u002FXML\u002FGraphQL\u002FHTML from a URL or inline; how to select rows and columns; how to transform data with UQL\u002FGROQ\u002FJSONata\u002FJQ; how to make a query work with alerting; how to paginate; or how to use variables in a query.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2146,2149,2152,2153,2156],{"name":2147,"slug":2148,"type":15},"CSV","csv",{"name":2150,"slug":2151,"type":15},"Data Analysis","data-analysis",{"name":9,"slug":8,"type":15},{"name":2154,"slug":2155,"type":15},"GraphQL","graphql",{"name":2157,"slug":1452,"type":15},"JSON","2026-07-15T05:34:05.773947",{"slug":2160,"name":2160,"fn":2161,"description":2162,"org":2163,"tags":2164,"stars":23,"repoUrl":24,"updatedAt":2171},"agento11y","manage Grafana Agent Observability resources","Inspects and manages Grafana Agent Observability resources via gcx: conversations, generations, evaluators, rules, scores, and templates. Use when the user wants to list or search conversations, inspect generations, manage evaluators (upsert, test, delete), set up evaluation rules, check scores, or browse evaluator templates. Trigger on phrases like \"list conversations\", \"search generations\", \"what did the agent do\", \"debug LLM conversation\", \"create evaluator\", \"set up evaluation rule\", \"test evaluator\", \"check scores\", \"evaluate generation quality\", or \"set up online evaluation\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2165,2168,2169,2170],{"name":2166,"slug":2167,"type":15},"Agents","agents",{"name":9,"slug":8,"type":15},{"name":17,"slug":18,"type":15},{"name":2116,"slug":2117,"type":15},"2026-07-25T05:30:40.29622",{"slug":2173,"name":2173,"fn":2174,"description":2175,"org":2176,"tags":2177,"stars":23,"repoUrl":24,"updatedAt":2187},"agento11y-instrument","instrument LLM apps for agent observability","Sets up and instruments a developer's own LLM app or agent to send generations and agentic workflow to Grafana Agent Observability (the Agent Observability SDKs) — greenfield setup, fixing broken instrumentation, or filling gaps in existing instrumentation. Uses gcx for the parts a static prompt can't do: `gcx login` \u002F `gcx cloud stacks` to find the stack, and `gcx agento11y agents|conversations|generations` to VERIFY that data actually lands — so it iterates (instrument → run → verify → fix) until generations arrive, not blindly. Reads the app's code, detects language\u002Fframework, classifies instrumentation state (none \u002F partial \u002F broken), then runs a fixed gap checklist whose #1 item is the silent failure no other prompt catches: the SDK emits OTel spans\u002Fmetrics but never creates a TracerProvider\u002FMeterProvider, so without them all metrics go to a no-op and are lost. Also checks agent_version (required for per-version Performance charts), set_result completeness, SYNC vs STREAM, parent_generation_ids DAG links, and workflow-step coverage. Recommends changes citing file:line and, only with explicit confirmation, applies minimal diffs that don't change app behavior. Pulls SDK reference from agento11y's llms.txt rather than restating it, and hands off to `agento11y-test-starter` once data flows. It does NOT write test suites or set up tenant evaluations, rules, or guards — offline test suites are `agento11y-test-starter`, tenant eval rules + guards are `agento11y-prod-setup`; does NOT install coding-agent telemetry plugins (that is llms.txt \"Path A\"); does NOT mint or store credentials or invent endpoints. Trigger on phrases like \"instrument my app\", \"send my agent's traces to Grafana\", \"set up AI observability for my app\", \"my generations aren't showing up\", \"why is Performance empty\", \"add Agent Observability to my code\", \"fix my instrumentation\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2178,2179,2180,2183,2186],{"name":2166,"slug":2167,"type":15},{"name":9,"slug":8,"type":15},{"name":2181,"slug":2182,"type":15},"Instrumentation","instrumentation",{"name":2184,"slug":2185,"type":15},"LLM","llm",{"name":2116,"slug":2117,"type":15},"2026-07-31T05:53:52.580237",{"slug":2189,"name":2189,"fn":2190,"description":2191,"org":2192,"tags":2193,"stars":23,"repoUrl":24,"updatedAt":2200},"agento11y-prod-setup","setup production evaluation for AI agents","Sets up production evaluation and guardrails for a DEPLOYED AI agent in Grafana Agent Observability, grounded in the agent's own code and its real ingested traffic. The judgment layer on top of the `agento11y` skill: it reads the agent's source (system prompt, tools, entrypoint) AND samples its live traffic via gcx, checks what evaluators\u002Frules\u002Fguards already exist, then recommends only what's missing — online eval rules (score live conversations for regressions) and guards (warn-first request-path policies that redact \u002F tool-filter and may later be promoted to deny). It drafts reviewable YAML and, only with explicit confirmation, applies via `gcx agento11y`. New guards are drafted in warn mode (safe on live traffic — warn records but never blocks). It DOES create stack-level objects — that is the point — but every write is confirmed. It never rewrites or redeploys the agent. Trigger on phrases like \"set up production evaluation\", \"my agent is in prod what should I evaluate\", \"catch quality regressions\", \"add guardrails to my agent\", \"redact PII from my agent\", \"block dangerous tools\", \"set up online evals and guards\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2194,2195,2198,2199],{"name":2166,"slug":2167,"type":15},{"name":2196,"slug":2197,"type":15},"Evals","evals",{"name":9,"slug":8,"type":15},{"name":2116,"slug":2117,"type":15},"2026-07-31T05:53:53.576347",{"slug":2202,"name":2202,"fn":2203,"description":2204,"org":2205,"tags":2206,"stars":23,"repoUrl":24,"updatedAt":2215},"agento11y-test-starter","build and run agent test suites","Use early in an AI-agent project — before ship, before real traffic — to build a starter test suite for the agent and run it offline. Reads the agent's own code (system prompt, tools, task), writes a labeled draft suite of test cases (happy\u002Fedge\u002Fadversarial) grounded in real lines, and recommends how to score each case (the evaluators\u002Fjudges the offline runner uses). Assesses how runnable the agent is: for an easily-invoked agent it generates a runner stub (run_experiment.py) with two holes to fill and can optionally run it (only with permission, only against the endpoint the developer configured); for agents needing a harness or full runtime it points to the existing eval infra. It runs OFFLINE and never creates tenant-level evaluators, rules, or guards — that is `agento11y-prod-setup`, for a deployed agent with real traffic. Trigger on phrases like \"how do I test my agent before shipping\", \"write test cases for my agent\", \"set up tests for my agent\", \"check my agent before prod\", \"I have no traffic yet, how do I evaluate it\", \"test my agent offline\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2207,2208,2209,2212],{"name":2166,"slug":2167,"type":15},{"name":9,"slug":8,"type":15},{"name":2210,"slug":2211,"type":15},"QA","qa",{"name":2213,"slug":2214,"type":15},"Testing","testing","2026-07-31T05:53:51.62785",{"slug":2217,"name":2217,"fn":2218,"description":2219,"org":2220,"tags":2221,"stars":23,"repoUrl":24,"updatedAt":2232},"create-dashboard","create Grafana dashboards with gcx","Designs and creates Grafana dashboards with gcx, using `gcx dashboards snapshot` as a visual feedback loop. Use when the user wants to create a new Grafana dashboard, add panels, variables, or annotations to an existing dashboard, design dashboard panels, variables, queries, or layout, or make a material visual redesign. Triggers on \"create dashboard\", \"new dashboard\", \"build dashboard\", \"dashboard for \u003Cservice>\", \"add panels\", \"add variable\", \"add annotation\", \"improve this dashboard\", or \"iterate on a dashboard\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2222,2225,2228,2231],{"name":2223,"slug":2224,"type":15},"Dashboards","dashboards",{"name":2226,"slug":2227,"type":15},"Data Visualization","data-visualization",{"name":2229,"slug":2230,"type":15},"Design","design",{"name":9,"slug":8,"type":15},"2026-07-25T05:30:46.289717",{"slug":2091,"name":2091,"fn":2234,"description":2235,"org":2236,"tags":2237,"stars":23,"repoUrl":24,"updatedAt":2244},"investigate application issues with Grafana","Structured workflow for investigating application problems with Grafana observability data (metrics, logs, traces) via gcx. Covers live firefighting AND retrospective incident analysis: incident triage, root-cause analysis, blast-radius checks (did an incident spill into other services), verifying whether a deployment or rollout triggered an incident, finding which service, endpoint, or path owns the most errors or slow requests, checking whether retries or queue backlogs piled up, and quantifying error or latency shares over a time window. Trigger on: \"my API is returning 500 errors\", \"latency is spiking\", \"investigate why requests are failing\", \"triage the incident\", \"blast radius\", \"root cause\", \"did the rollout cause it\", \"which endpoint owns the most 5xx\", \"did retries pile up\", or any request to analyse an earlier incident window using telemetry. For authoring dashboards use create-dashboard; for dashboard inventory use manage-dashboards.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2238,2241,2242,2243],{"name":2239,"slug":2240,"type":15},"Debugging","debugging",{"name":9,"slug":8,"type":15},{"name":20,"slug":21,"type":15},{"name":2116,"slug":2117,"type":15},"2026-07-18T05:11:10.445428",{"slug":2246,"name":2246,"fn":2247,"description":2248,"org":2249,"tags":2250,"stars":23,"repoUrl":24,"updatedAt":2257},"diagnose-entity-graph","diagnose Grafana Entity Graph issues","Diagnose Entity Graph problems: missing entities, missing edges, disconnected clusters, or filtering issues. Use when the user reports that Entity Graph doesn't look right, services are missing, edges aren't appearing, or environments can't be filtered. Triggers for: \"entity graph is empty\", \"services missing from entity graph\", \"no edges in entity graph\", \"disconnected services\", \"can't filter entity graph\", \"entity graph not working\", \"diagnose entity graph\", \"debug knowledge graph\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2251,2252,2253,2256],{"name":2239,"slug":2240,"type":15},{"name":9,"slug":8,"type":15},{"name":2254,"slug":2255,"type":15},"Graph Analysis","graph-analysis",{"name":2116,"slug":2117,"type":15},"2026-07-25T05:30:39.380934",{"slug":219,"name":219,"fn":2259,"description":2260,"org":2261,"tags":2262,"stars":23,"repoUrl":24,"updatedAt":2271},"manage Grafana Cloud resources via gcx","Manages Grafana Cloud resources via the gcx CLI. Trigger when the user wants to inspect, create, update, delete, query, or automate any Grafana resource - dashboards, datasources, alerts, SLOs, synthetic checks, oncall, incidents, fleet, k6, knowledge graph, or adaptive telemetry.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2263,2266,2267,2268],{"name":2264,"slug":2265,"type":15},"CLI","cli",{"name":9,"slug":8,"type":15},{"name":17,"slug":18,"type":15},{"name":2269,"slug":2270,"type":15},"Operations","operations","2026-07-31T05:53:50.587304",{"slug":2273,"name":2273,"fn":2274,"description":2275,"org":2276,"tags":2277,"stars":23,"repoUrl":24,"updatedAt":2283},"gcx-demo","present gcx demo tours","Run a narrated, read-only demo tour of gcx for customer or colleague presentations. Showcases the breadth of gcx across every Grafana Cloud product area — resources, datasources, metrics, logs, traces, SLOs, alerts, synthetic monitoring, IRM, k6, fleet, and more. All commands are strictly read-only. Trigger when the user says \"demo gcx\", \"show off gcx\", \"customer demo\", \"gcx tour\", or \"\u002Fgcx-demo\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2278,2279,2280],{"name":2264,"slug":2265,"type":15},{"name":9,"slug":8,"type":15},{"name":2281,"slug":2282,"type":15},"Presentations","presentations","2026-07-25T05:30:45.282458",80,{"items":2286,"total":2337},[2287,2294,2302,2309,2316,2323,2330],{"slug":2160,"name":2160,"fn":2161,"description":2162,"org":2288,"tags":2289,"stars":23,"repoUrl":24,"updatedAt":2171},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2290,2291,2292,2293],{"name":2166,"slug":2167,"type":15},{"name":9,"slug":8,"type":15},{"name":17,"slug":18,"type":15},{"name":2116,"slug":2117,"type":15},{"slug":2173,"name":2173,"fn":2174,"description":2175,"org":2295,"tags":2296,"stars":23,"repoUrl":24,"updatedAt":2187},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2297,2298,2299,2300,2301],{"name":2166,"slug":2167,"type":15},{"name":9,"slug":8,"type":15},{"name":2181,"slug":2182,"type":15},{"name":2184,"slug":2185,"type":15},{"name":2116,"slug":2117,"type":15},{"slug":2189,"name":2189,"fn":2190,"description":2191,"org":2303,"tags":2304,"stars":23,"repoUrl":24,"updatedAt":2200},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2305,2306,2307,2308],{"name":2166,"slug":2167,"type":15},{"name":2196,"slug":2197,"type":15},{"name":9,"slug":8,"type":15},{"name":2116,"slug":2117,"type":15},{"slug":2202,"name":2202,"fn":2203,"description":2204,"org":2310,"tags":2311,"stars":23,"repoUrl":24,"updatedAt":2215},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2312,2313,2314,2315],{"name":2166,"slug":2167,"type":15},{"name":9,"slug":8,"type":15},{"name":2210,"slug":2211,"type":15},{"name":2213,"slug":2214,"type":15},{"slug":2217,"name":2217,"fn":2218,"description":2219,"org":2317,"tags":2318,"stars":23,"repoUrl":24,"updatedAt":2232},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2319,2320,2321,2322],{"name":2223,"slug":2224,"type":15},{"name":2226,"slug":2227,"type":15},{"name":2229,"slug":2230,"type":15},{"name":9,"slug":8,"type":15},{"slug":2091,"name":2091,"fn":2234,"description":2235,"org":2324,"tags":2325,"stars":23,"repoUrl":24,"updatedAt":2244},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2326,2327,2328,2329],{"name":2239,"slug":2240,"type":15},{"name":9,"slug":8,"type":15},{"name":20,"slug":21,"type":15},{"name":2116,"slug":2117,"type":15},{"slug":2246,"name":2246,"fn":2247,"description":2248,"org":2331,"tags":2332,"stars":23,"repoUrl":24,"updatedAt":2257},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2333,2334,2335,2336],{"name":2239,"slug":2240,"type":15},{"name":9,"slug":8,"type":15},{"name":2254,"slug":2255,"type":15},{"name":2116,"slug":2117,"type":15},24]