[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-grafana-gcx-demo":3,"mdc-4hex71-key":31,"related-repo-grafana-gcx-demo":1558,"related-org-grafana-gcx-demo":1667},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":20,"repoUrl":21,"updatedAt":22,"license":23,"forks":24,"topics":25,"repo":26,"sourceUrl":29,"mdContent":30},"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},"grafana","Grafana","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fgrafana.jpg",[12,16,19],{"name":13,"slug":14,"type":15},"Presentations","presentations","tag",{"name":17,"slug":18,"type":15},"CLI","cli",{"name":9,"slug":8,"type":15},430,"https:\u002F\u002Fgithub.com\u002Fgrafana\u002Fgcx","2026-07-25T05:30:45.282458",null,29,[],{"repoUrl":21,"stars":20,"forks":24,"topics":27,"description":28},[],"A CLI for managing Grafana Cloud resources. Optimized for agentic usage.","https:\u002F\u002Fgithub.com\u002Fgrafana\u002Fgcx\u002Ftree\u002FHEAD\u002Fclaude-plugin\u002Fskills\u002Fgcx-demo","---\nname: gcx-demo\ndescription: >\n  Run a narrated, read-only demo tour of gcx for customer or colleague\n  presentations. Showcases the breadth of gcx across every Grafana Cloud\n  product area — resources, datasources, metrics, logs, traces, SLOs,\n  alerts, synthetic monitoring, IRM, k6, fleet, and more. All commands are\n  strictly read-only. Trigger when the user says \"demo gcx\", \"show off gcx\",\n  \"customer demo\", \"gcx tour\", or \"\u002Fgcx-demo\".\nuser-invocable: true\nargument-hint: \"[--context \u003Cname>]\"\nallowed-tools: Bash, AskUserQuestion\n---\n\n# gcx Demo Tour\n\nDeliver a narrated, read-only showcase of gcx across Grafana Cloud product\nareas. All commands are `list`, `get`, `query`, or `status` — nothing is\ncreated, modified, or deleted.\n\n## Principles\n\n- **Read-only only.** Never use `push`, `create`, `update`, `delete`, `edit`,\n  or `pull` with local paths. If a command requires write scope, skip it and\n  note why.\n- **Discover before presenting.** Run exploratory commands first, then narrate\n  what's interesting. Let actual output guide emphasis — don't recite a script.\n- **Adapt to the stack.** The order, pacing, and which areas to highlight depend\n  on what's actually on the stack. Cover what's present; skip what isn't.\n- **Parallel by default.** Run independent commands in one message.\n- **Narrate what matters.** After each area, explain the value — not the syntax.\n- **Graceful degradation.** If a command fails, note it briefly and continue.\n\n---\n\n## Start: Verify Context\n\nAlways run this first. If `$ARGUMENTS` contains `--context \u003Cname>`, use that\ncontext for all commands. Otherwise use the active context.\n\n```bash\ngcx config current-context\ngcx config check\n```\n\nAnnounce the target stack before running anything else. If `config check`\nfails, stop and ask the user to fix the context.\n\n---\n\n## Coverage Areas\n\nCover the following areas in an order that builds a coherent story. Run\nindependent commands in parallel. Let what you find guide what you emphasize\nand how much time you spend on each area.\n\n### Provider Landscape\n\nGood opening — shows breadth at a glance.\n\n```bash\ngcx providers list\n```\n\n### K8s-native Resources\n\n```bash\ngcx resources get dashboards -o wide --no-truncate\ngcx resources get folders --no-truncate\ngcx resources list-types\n```\n\nDashboards are K8s resources — listable, pushable, validateable. The `URL`\ncolumn in `-o wide` gives a direct deep link for every dashboard. `gcx\nresources list-types` reveals the full type catalog including any plugin-installed\ntypes (e.g. Adaptive Logs `DropRule`). `gcx resources list-examples \u003CKind>` produces\na ready-to-push template for provider-registered kinds (try `slos` or\n`DropRule`) — core kinds like dashboards and folders don't ship examples, so\ndon't demo it on those.\n\n### Datasources\n\n```bash\ngcx datasources list\n```\n\nEvery connected datasource — cloud, PDC-tunneled, third-party. All queryable\nfrom the CLI.\n\n### Live Signals\n\nDiscover datasource UIDs first (`gcx datasources list -o json`), then query\nwhichever signal types are present — skip any that aren't on the stack.\n\n```bash\ngcx metrics query 'topk(5, count by (job) (up))' -d \u003CPROM_UID>\ngcx logs query '{service_name=~\".+\"}' --limit 5 -d \u003CLOKI_UID>\ngcx traces query '{}' --limit 5 -d \u003CTEMPO_UID>\n```\n\nAdapt the queries to what's interesting on this stack — pick label selectors,\nmetric names, or trace filters that will return meaningful output. Mention\n`--open` (jump to Grafana Explore) and `--share-link` (shareable URL) as\nnatural follow-ons.\n\n### Assistant\n\nCloud-only. Requires `gcx login` (OAuth). Show the commands; run live only if\nthe stack is healthy and the presenter has time — streaming output has variable\nlatency.\n\n```bash\ngcx assistant prompt \"What alerts are firing right now and why?\"\ngcx assistant prompt \"Which service owns checkout-latency?\" --continue\ngcx assistant prompt \"Summarize CPU on prod\" --json\n\ngcx assistant investigations list\ngcx assistant investigations get \u003Cid>\ngcx assistant investigations get-narrative \u003Cid>\n```\n\n`prompt` runs natural language against the stack's live data — the Assistant\nalready has context for dashboards, datasources, and alerts. `--continue`\nthreads follow-ups via a stored context ID. `--json` emits a structured event\nstream for agent tools (Claude Code, Cursor) or scripts.\n\nInvestigations are autonomous multi-step LLM runs. The read-only views show\nlifecycle state (`get`) and the assistant's findings as prose (`get-narrative`). `--open` on `investigations get` deep-links into the Grafana UI.\n\nIf `investigations list` is empty, note it and skip the per-investigation\nviews. Do not create one during the demo.\n\n### Reliability & Alerting\n\n```bash\ngcx slo definitions status\ngcx alert instances list --state firing\ngcx alert rules list --no-truncate\n```\n\nSLOs return SLI, error budget, and status in one command (add `-o wide` for\nburn rate) — scriptable for release gates. Firing alerts include labels,\nannotations, and runbook URLs. The rules list shows state and health at a\nglance; drill into a single rule with `gcx alert rules get \u003Cuid> -o json` when\nthe audience wants the full PromQL, evaluation timing, or datasource UIDs —\nthe list table doesn't carry those.\n\n### Synthetic Monitoring\n\n```bash\ngcx synth checks list\ngcx synth probes list\n```\n\nHTTP and browser checks from a global probe network — the probes table shows\neach probe's region and online status; `-o json` adds coordinates and\ncapabilities if the audience asks.\n\n### IRM\n\n```bash\ngcx irm oncall schedules list\n```\n\nWho's on-call right now. Pipeable into runbooks and automation.\n\n### Cloud Provider Commands\n\nRequire cloud auth (a `cloud:` entry bound to the context via `gcx cloud\nlogin`, or `GRAFANA_CLOUD_TOKEN`) and a resolvable stack slug. Skip gracefully\nif not configured, and note what's needed.\n\n```bash\ngcx k6 load-tests list --no-truncate\ngcx fleet pipelines list --no-truncate\n```\n\nk6: load test catalog alongside the Grafana stack — correlate test timing with\nlive metrics. Fleet: full Alloy HCL pipeline configs deployed to collectors via\nmatcher rules.\n\n---\n\n## Close\n\nSummarize what was actually shown — areas covered, notable findings (a\nspecific alert, a latency signal in traces, an interesting datasource mix),\nand the commands used. Adapt the summary to what was interesting on this\nparticular stack. Don't recite a fixed table.\n\nClose with: \"One binary, one context, every Grafana Cloud product. All\nscriptable, all pipelineable — and with `--dry-run` on resource and SLO pushes\nfor safe GitOps workflows.\" (Don't claim every mutation verb has `--dry-run`;\nthe create commands for checks, schedules, and pipelines currently don't.)\n\n---\n\n## Error Handling\n\n| Situation | Action |\n|-----------|--------|\n| `config check` fails | Stop. Ask user to fix the context before continuing. |\n| Signal datasource not found | Skip that signal type, note it. |\n| Cloud auth or stack slug missing | Skip k6 and fleet, note what's needed. |\n| Assistant unavailable (self-hosted, OAuth missing, 403) | Skip assistant section, note Cloud + OAuth requirement. |\n| Auth scope missing (403) | Note the missing scope, skip, continue. |\n| Empty list (0 resources) | Report \"none found\" — not an error; continue. |\n| Any other command error | Print the error summary, skip the section, continue. |\n\nNever abort for a single failure. Surface errors at the end.\n",{"data":32,"body":36},{"name":4,"description":6,"user-invocable":33,"argument-hint":34,"allowed-tools":35},true,"[--context \u003Cname>]","Bash, AskUserQuestion",{"type":37,"children":38},"root",[39,48,86,93,203,207,213,234,285,298,301,307,312,319,324,348,354,439,499,505,528,533,539,552,737,758,764,777,988,1015,1049,1062,1068,1153,1173,1179,1227,1240,1246,1279,1284,1290,1318,1375,1380,1383,1389,1394,1414,1417,1423,1547,1552],{"type":40,"tag":41,"props":42,"children":44},"element","h1",{"id":43},"gcx-demo-tour",[45],{"type":46,"value":47},"text","gcx Demo Tour",{"type":40,"tag":49,"props":50,"children":51},"p",{},[52,54,61,63,69,70,76,78,84],{"type":46,"value":53},"Deliver a narrated, read-only showcase of gcx across Grafana Cloud product\nareas. All commands are ",{"type":40,"tag":55,"props":56,"children":58},"code",{"className":57},[],[59],{"type":46,"value":60},"list",{"type":46,"value":62},", ",{"type":40,"tag":55,"props":64,"children":66},{"className":65},[],[67],{"type":46,"value":68},"get",{"type":46,"value":62},{"type":40,"tag":55,"props":71,"children":73},{"className":72},[],[74],{"type":46,"value":75},"query",{"type":46,"value":77},", or ",{"type":40,"tag":55,"props":79,"children":81},{"className":80},[],[82],{"type":46,"value":83},"status",{"type":46,"value":85}," — nothing is\ncreated, modified, or deleted.",{"type":40,"tag":87,"props":88,"children":90},"h2",{"id":89},"principles",[91],{"type":46,"value":92},"Principles",{"type":40,"tag":94,"props":95,"children":96},"ul",{},[97,153,163,173,183,193],{"type":40,"tag":98,"props":99,"children":100},"li",{},[101,107,109,115,116,122,123,129,130,136,137,143,145,151],{"type":40,"tag":102,"props":103,"children":104},"strong",{},[105],{"type":46,"value":106},"Read-only only.",{"type":46,"value":108}," Never use ",{"type":40,"tag":55,"props":110,"children":112},{"className":111},[],[113],{"type":46,"value":114},"push",{"type":46,"value":62},{"type":40,"tag":55,"props":117,"children":119},{"className":118},[],[120],{"type":46,"value":121},"create",{"type":46,"value":62},{"type":40,"tag":55,"props":124,"children":126},{"className":125},[],[127],{"type":46,"value":128},"update",{"type":46,"value":62},{"type":40,"tag":55,"props":131,"children":133},{"className":132},[],[134],{"type":46,"value":135},"delete",{"type":46,"value":62},{"type":40,"tag":55,"props":138,"children":140},{"className":139},[],[141],{"type":46,"value":142},"edit",{"type":46,"value":144},",\nor ",{"type":40,"tag":55,"props":146,"children":148},{"className":147},[],[149],{"type":46,"value":150},"pull",{"type":46,"value":152}," with local paths. If a command requires write scope, skip it and\nnote why.",{"type":40,"tag":98,"props":154,"children":155},{},[156,161],{"type":40,"tag":102,"props":157,"children":158},{},[159],{"type":46,"value":160},"Discover before presenting.",{"type":46,"value":162}," Run exploratory commands first, then narrate\nwhat's interesting. Let actual output guide emphasis — don't recite a script.",{"type":40,"tag":98,"props":164,"children":165},{},[166,171],{"type":40,"tag":102,"props":167,"children":168},{},[169],{"type":46,"value":170},"Adapt to the stack.",{"type":46,"value":172}," The order, pacing, and which areas to highlight depend\non what's actually on the stack. Cover what's present; skip what isn't.",{"type":40,"tag":98,"props":174,"children":175},{},[176,181],{"type":40,"tag":102,"props":177,"children":178},{},[179],{"type":46,"value":180},"Parallel by default.",{"type":46,"value":182}," Run independent commands in one message.",{"type":40,"tag":98,"props":184,"children":185},{},[186,191],{"type":40,"tag":102,"props":187,"children":188},{},[189],{"type":46,"value":190},"Narrate what matters.",{"type":46,"value":192}," After each area, explain the value — not the syntax.",{"type":40,"tag":98,"props":194,"children":195},{},[196,201],{"type":40,"tag":102,"props":197,"children":198},{},[199],{"type":46,"value":200},"Graceful degradation.",{"type":46,"value":202}," If a command fails, note it briefly and continue.",{"type":40,"tag":204,"props":205,"children":206},"hr",{},[],{"type":40,"tag":87,"props":208,"children":210},{"id":209},"start-verify-context",[211],{"type":46,"value":212},"Start: Verify Context",{"type":40,"tag":49,"props":214,"children":215},{},[216,218,224,226,232],{"type":46,"value":217},"Always run this first. If ",{"type":40,"tag":55,"props":219,"children":221},{"className":220},[],[222],{"type":46,"value":223},"$ARGUMENTS",{"type":46,"value":225}," contains ",{"type":40,"tag":55,"props":227,"children":229},{"className":228},[],[230],{"type":46,"value":231},"--context \u003Cname>",{"type":46,"value":233},", use that\ncontext for all commands. Otherwise use the active context.",{"type":40,"tag":235,"props":236,"children":241},"pre",{"className":237,"code":238,"language":239,"meta":240,"style":240},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","gcx config current-context\ngcx config check\n","bash","",[242],{"type":40,"tag":55,"props":243,"children":244},{"__ignoreMap":240},[245,268],{"type":40,"tag":246,"props":247,"children":250},"span",{"class":248,"line":249},"line",1,[251,257,263],{"type":40,"tag":246,"props":252,"children":254},{"style":253},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[255],{"type":46,"value":256},"gcx",{"type":40,"tag":246,"props":258,"children":260},{"style":259},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[261],{"type":46,"value":262}," config",{"type":40,"tag":246,"props":264,"children":265},{"style":259},[266],{"type":46,"value":267}," current-context\n",{"type":40,"tag":246,"props":269,"children":271},{"class":248,"line":270},2,[272,276,280],{"type":40,"tag":246,"props":273,"children":274},{"style":253},[275],{"type":46,"value":256},{"type":40,"tag":246,"props":277,"children":278},{"style":259},[279],{"type":46,"value":262},{"type":40,"tag":246,"props":281,"children":282},{"style":259},[283],{"type":46,"value":284}," check\n",{"type":40,"tag":49,"props":286,"children":287},{},[288,290,296],{"type":46,"value":289},"Announce the target stack before running anything else. If ",{"type":40,"tag":55,"props":291,"children":293},{"className":292},[],[294],{"type":46,"value":295},"config check",{"type":46,"value":297},"\nfails, stop and ask the user to fix the context.",{"type":40,"tag":204,"props":299,"children":300},{},[],{"type":40,"tag":87,"props":302,"children":304},{"id":303},"coverage-areas",[305],{"type":46,"value":306},"Coverage Areas",{"type":40,"tag":49,"props":308,"children":309},{},[310],{"type":46,"value":311},"Cover the following areas in an order that builds a coherent story. Run\nindependent commands in parallel. Let what you find guide what you emphasize\nand how much time you spend on each area.",{"type":40,"tag":313,"props":314,"children":316},"h3",{"id":315},"provider-landscape",[317],{"type":46,"value":318},"Provider Landscape",{"type":40,"tag":49,"props":320,"children":321},{},[322],{"type":46,"value":323},"Good opening — shows breadth at a glance.",{"type":40,"tag":235,"props":325,"children":327},{"className":237,"code":326,"language":239,"meta":240,"style":240},"gcx providers list\n",[328],{"type":40,"tag":55,"props":329,"children":330},{"__ignoreMap":240},[331],{"type":40,"tag":246,"props":332,"children":333},{"class":248,"line":249},[334,338,343],{"type":40,"tag":246,"props":335,"children":336},{"style":253},[337],{"type":46,"value":256},{"type":40,"tag":246,"props":339,"children":340},{"style":259},[341],{"type":46,"value":342}," providers",{"type":40,"tag":246,"props":344,"children":345},{"style":259},[346],{"type":46,"value":347}," list\n",{"type":40,"tag":313,"props":349,"children":351},{"id":350},"k8s-native-resources",[352],{"type":46,"value":353},"K8s-native Resources",{"type":40,"tag":235,"props":355,"children":357},{"className":237,"code":356,"language":239,"meta":240,"style":240},"gcx resources get dashboards -o wide --no-truncate\ngcx resources get folders --no-truncate\ngcx resources list-types\n",[358],{"type":40,"tag":55,"props":359,"children":360},{"__ignoreMap":240},[361,398,422],{"type":40,"tag":246,"props":362,"children":363},{"class":248,"line":249},[364,368,373,378,383,388,393],{"type":40,"tag":246,"props":365,"children":366},{"style":253},[367],{"type":46,"value":256},{"type":40,"tag":246,"props":369,"children":370},{"style":259},[371],{"type":46,"value":372}," resources",{"type":40,"tag":246,"props":374,"children":375},{"style":259},[376],{"type":46,"value":377}," get",{"type":40,"tag":246,"props":379,"children":380},{"style":259},[381],{"type":46,"value":382}," dashboards",{"type":40,"tag":246,"props":384,"children":385},{"style":259},[386],{"type":46,"value":387}," -o",{"type":40,"tag":246,"props":389,"children":390},{"style":259},[391],{"type":46,"value":392}," wide",{"type":40,"tag":246,"props":394,"children":395},{"style":259},[396],{"type":46,"value":397}," --no-truncate\n",{"type":40,"tag":246,"props":399,"children":400},{"class":248,"line":270},[401,405,409,413,418],{"type":40,"tag":246,"props":402,"children":403},{"style":253},[404],{"type":46,"value":256},{"type":40,"tag":246,"props":406,"children":407},{"style":259},[408],{"type":46,"value":372},{"type":40,"tag":246,"props":410,"children":411},{"style":259},[412],{"type":46,"value":377},{"type":40,"tag":246,"props":414,"children":415},{"style":259},[416],{"type":46,"value":417}," folders",{"type":40,"tag":246,"props":419,"children":420},{"style":259},[421],{"type":46,"value":397},{"type":40,"tag":246,"props":423,"children":425},{"class":248,"line":424},3,[426,430,434],{"type":40,"tag":246,"props":427,"children":428},{"style":253},[429],{"type":46,"value":256},{"type":40,"tag":246,"props":431,"children":432},{"style":259},[433],{"type":46,"value":372},{"type":40,"tag":246,"props":435,"children":436},{"style":259},[437],{"type":46,"value":438}," list-types\n",{"type":40,"tag":49,"props":440,"children":441},{},[442,444,450,452,458,460,466,468,474,476,482,484,490,492,497],{"type":46,"value":443},"Dashboards are K8s resources — listable, pushable, validateable. The ",{"type":40,"tag":55,"props":445,"children":447},{"className":446},[],[448],{"type":46,"value":449},"URL",{"type":46,"value":451},"\ncolumn in ",{"type":40,"tag":55,"props":453,"children":455},{"className":454},[],[456],{"type":46,"value":457},"-o wide",{"type":46,"value":459}," gives a direct deep link for every dashboard. ",{"type":40,"tag":55,"props":461,"children":463},{"className":462},[],[464],{"type":46,"value":465},"gcx resources list-types",{"type":46,"value":467}," reveals the full type catalog including any plugin-installed\ntypes (e.g. Adaptive Logs ",{"type":40,"tag":55,"props":469,"children":471},{"className":470},[],[472],{"type":46,"value":473},"DropRule",{"type":46,"value":475},"). ",{"type":40,"tag":55,"props":477,"children":479},{"className":478},[],[480],{"type":46,"value":481},"gcx resources list-examples \u003CKind>",{"type":46,"value":483}," produces\na ready-to-push template for provider-registered kinds (try ",{"type":40,"tag":55,"props":485,"children":487},{"className":486},[],[488],{"type":46,"value":489},"slos",{"type":46,"value":491}," or\n",{"type":40,"tag":55,"props":493,"children":495},{"className":494},[],[496],{"type":46,"value":473},{"type":46,"value":498},") — core kinds like dashboards and folders don't ship examples, so\ndon't demo it on those.",{"type":40,"tag":313,"props":500,"children":502},{"id":501},"datasources",[503],{"type":46,"value":504},"Datasources",{"type":40,"tag":235,"props":506,"children":508},{"className":237,"code":507,"language":239,"meta":240,"style":240},"gcx datasources list\n",[509],{"type":40,"tag":55,"props":510,"children":511},{"__ignoreMap":240},[512],{"type":40,"tag":246,"props":513,"children":514},{"class":248,"line":249},[515,519,524],{"type":40,"tag":246,"props":516,"children":517},{"style":253},[518],{"type":46,"value":256},{"type":40,"tag":246,"props":520,"children":521},{"style":259},[522],{"type":46,"value":523}," datasources",{"type":40,"tag":246,"props":525,"children":526},{"style":259},[527],{"type":46,"value":347},{"type":40,"tag":49,"props":529,"children":530},{},[531],{"type":46,"value":532},"Every connected datasource — cloud, PDC-tunneled, third-party. All queryable\nfrom the CLI.",{"type":40,"tag":313,"props":534,"children":536},{"id":535},"live-signals",[537],{"type":46,"value":538},"Live Signals",{"type":40,"tag":49,"props":540,"children":541},{},[542,544,550],{"type":46,"value":543},"Discover datasource UIDs first (",{"type":40,"tag":55,"props":545,"children":547},{"className":546},[],[548],{"type":46,"value":549},"gcx datasources list -o json",{"type":46,"value":551},"), then query\nwhichever signal types are present — skip any that aren't on the stack.",{"type":40,"tag":235,"props":553,"children":555},{"className":237,"code":554,"language":239,"meta":240,"style":240},"gcx metrics query 'topk(5, count by (job) (up))' -d \u003CPROM_UID>\ngcx logs query '{service_name=~\".+\"}' --limit 5 -d \u003CLOKI_UID>\ngcx traces query '{}' --limit 5 -d \u003CTEMPO_UID>\n",[556],{"type":40,"tag":55,"props":557,"children":558},{"__ignoreMap":240},[559,618,679],{"type":40,"tag":246,"props":560,"children":561},{"class":248,"line":249},[562,566,571,576,582,587,592,597,602,607,613],{"type":40,"tag":246,"props":563,"children":564},{"style":253},[565],{"type":46,"value":256},{"type":40,"tag":246,"props":567,"children":568},{"style":259},[569],{"type":46,"value":570}," metrics",{"type":40,"tag":246,"props":572,"children":573},{"style":259},[574],{"type":46,"value":575}," query",{"type":40,"tag":246,"props":577,"children":579},{"style":578},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[580],{"type":46,"value":581}," '",{"type":40,"tag":246,"props":583,"children":584},{"style":259},[585],{"type":46,"value":586},"topk(5, count by (job) (up))",{"type":40,"tag":246,"props":588,"children":589},{"style":578},[590],{"type":46,"value":591},"'",{"type":40,"tag":246,"props":593,"children":594},{"style":259},[595],{"type":46,"value":596}," -d",{"type":40,"tag":246,"props":598,"children":599},{"style":578},[600],{"type":46,"value":601}," \u003C",{"type":40,"tag":246,"props":603,"children":604},{"style":259},[605],{"type":46,"value":606},"PROM_UI",{"type":40,"tag":246,"props":608,"children":610},{"style":609},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[611],{"type":46,"value":612},"D",{"type":40,"tag":246,"props":614,"children":615},{"style":578},[616],{"type":46,"value":617},">\n",{"type":40,"tag":246,"props":619,"children":620},{"class":248,"line":270},[621,625,630,634,638,643,647,652,658,662,666,671,675],{"type":40,"tag":246,"props":622,"children":623},{"style":253},[624],{"type":46,"value":256},{"type":40,"tag":246,"props":626,"children":627},{"style":259},[628],{"type":46,"value":629}," logs",{"type":40,"tag":246,"props":631,"children":632},{"style":259},[633],{"type":46,"value":575},{"type":40,"tag":246,"props":635,"children":636},{"style":578},[637],{"type":46,"value":581},{"type":40,"tag":246,"props":639,"children":640},{"style":259},[641],{"type":46,"value":642},"{service_name=~\".+\"}",{"type":40,"tag":246,"props":644,"children":645},{"style":578},[646],{"type":46,"value":591},{"type":40,"tag":246,"props":648,"children":649},{"style":259},[650],{"type":46,"value":651}," --limit",{"type":40,"tag":246,"props":653,"children":655},{"style":654},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[656],{"type":46,"value":657}," 5",{"type":40,"tag":246,"props":659,"children":660},{"style":259},[661],{"type":46,"value":596},{"type":40,"tag":246,"props":663,"children":664},{"style":578},[665],{"type":46,"value":601},{"type":40,"tag":246,"props":667,"children":668},{"style":259},[669],{"type":46,"value":670},"LOKI_UI",{"type":40,"tag":246,"props":672,"children":673},{"style":609},[674],{"type":46,"value":612},{"type":40,"tag":246,"props":676,"children":677},{"style":578},[678],{"type":46,"value":617},{"type":40,"tag":246,"props":680,"children":681},{"class":248,"line":424},[682,686,691,695,699,704,708,712,716,720,724,729,733],{"type":40,"tag":246,"props":683,"children":684},{"style":253},[685],{"type":46,"value":256},{"type":40,"tag":246,"props":687,"children":688},{"style":259},[689],{"type":46,"value":690}," traces",{"type":40,"tag":246,"props":692,"children":693},{"style":259},[694],{"type":46,"value":575},{"type":40,"tag":246,"props":696,"children":697},{"style":578},[698],{"type":46,"value":581},{"type":40,"tag":246,"props":700,"children":701},{"style":259},[702],{"type":46,"value":703},"{}",{"type":40,"tag":246,"props":705,"children":706},{"style":578},[707],{"type":46,"value":591},{"type":40,"tag":246,"props":709,"children":710},{"style":259},[711],{"type":46,"value":651},{"type":40,"tag":246,"props":713,"children":714},{"style":654},[715],{"type":46,"value":657},{"type":40,"tag":246,"props":717,"children":718},{"style":259},[719],{"type":46,"value":596},{"type":40,"tag":246,"props":721,"children":722},{"style":578},[723],{"type":46,"value":601},{"type":40,"tag":246,"props":725,"children":726},{"style":259},[727],{"type":46,"value":728},"TEMPO_UI",{"type":40,"tag":246,"props":730,"children":731},{"style":609},[732],{"type":46,"value":612},{"type":40,"tag":246,"props":734,"children":735},{"style":578},[736],{"type":46,"value":617},{"type":40,"tag":49,"props":738,"children":739},{},[740,742,748,750,756],{"type":46,"value":741},"Adapt the queries to what's interesting on this stack — pick label selectors,\nmetric names, or trace filters that will return meaningful output. Mention\n",{"type":40,"tag":55,"props":743,"children":745},{"className":744},[],[746],{"type":46,"value":747},"--open",{"type":46,"value":749}," (jump to Grafana Explore) and ",{"type":40,"tag":55,"props":751,"children":753},{"className":752},[],[754],{"type":46,"value":755},"--share-link",{"type":46,"value":757}," (shareable URL) as\nnatural follow-ons.",{"type":40,"tag":313,"props":759,"children":761},{"id":760},"assistant",[762],{"type":46,"value":763},"Assistant",{"type":40,"tag":49,"props":765,"children":766},{},[767,769,775],{"type":46,"value":768},"Cloud-only. Requires ",{"type":40,"tag":55,"props":770,"children":772},{"className":771},[],[773],{"type":46,"value":774},"gcx login",{"type":46,"value":776}," (OAuth). Show the commands; run live only if\nthe stack is healthy and the presenter has time — streaming output has variable\nlatency.",{"type":40,"tag":235,"props":778,"children":780},{"className":237,"code":779,"language":239,"meta":240,"style":240},"gcx assistant prompt \"What alerts are firing right now and why?\"\ngcx assistant prompt \"Which service owns checkout-latency?\" --continue\ngcx assistant prompt \"Summarize CPU on prod\" --json\n\ngcx assistant investigations list\ngcx assistant investigations get \u003Cid>\ngcx assistant investigations get-narrative \u003Cid>\n",[781],{"type":40,"tag":55,"props":782,"children":783},{"__ignoreMap":240},[784,816,850,883,892,913,951],{"type":40,"tag":246,"props":785,"children":786},{"class":248,"line":249},[787,791,796,801,806,811],{"type":40,"tag":246,"props":788,"children":789},{"style":253},[790],{"type":46,"value":256},{"type":40,"tag":246,"props":792,"children":793},{"style":259},[794],{"type":46,"value":795}," assistant",{"type":40,"tag":246,"props":797,"children":798},{"style":259},[799],{"type":46,"value":800}," prompt",{"type":40,"tag":246,"props":802,"children":803},{"style":578},[804],{"type":46,"value":805}," \"",{"type":40,"tag":246,"props":807,"children":808},{"style":259},[809],{"type":46,"value":810},"What alerts are firing right now and why?",{"type":40,"tag":246,"props":812,"children":813},{"style":578},[814],{"type":46,"value":815},"\"\n",{"type":40,"tag":246,"props":817,"children":818},{"class":248,"line":270},[819,823,827,831,835,840,845],{"type":40,"tag":246,"props":820,"children":821},{"style":253},[822],{"type":46,"value":256},{"type":40,"tag":246,"props":824,"children":825},{"style":259},[826],{"type":46,"value":795},{"type":40,"tag":246,"props":828,"children":829},{"style":259},[830],{"type":46,"value":800},{"type":40,"tag":246,"props":832,"children":833},{"style":578},[834],{"type":46,"value":805},{"type":40,"tag":246,"props":836,"children":837},{"style":259},[838],{"type":46,"value":839},"Which service owns checkout-latency?",{"type":40,"tag":246,"props":841,"children":842},{"style":578},[843],{"type":46,"value":844},"\"",{"type":40,"tag":246,"props":846,"children":847},{"style":259},[848],{"type":46,"value":849}," --continue\n",{"type":40,"tag":246,"props":851,"children":852},{"class":248,"line":424},[853,857,861,865,869,874,878],{"type":40,"tag":246,"props":854,"children":855},{"style":253},[856],{"type":46,"value":256},{"type":40,"tag":246,"props":858,"children":859},{"style":259},[860],{"type":46,"value":795},{"type":40,"tag":246,"props":862,"children":863},{"style":259},[864],{"type":46,"value":800},{"type":40,"tag":246,"props":866,"children":867},{"style":578},[868],{"type":46,"value":805},{"type":40,"tag":246,"props":870,"children":871},{"style":259},[872],{"type":46,"value":873},"Summarize CPU on prod",{"type":40,"tag":246,"props":875,"children":876},{"style":578},[877],{"type":46,"value":844},{"type":40,"tag":246,"props":879,"children":880},{"style":259},[881],{"type":46,"value":882}," --json\n",{"type":40,"tag":246,"props":884,"children":886},{"class":248,"line":885},4,[887],{"type":40,"tag":246,"props":888,"children":889},{"emptyLinePlaceholder":33},[890],{"type":46,"value":891},"\n",{"type":40,"tag":246,"props":893,"children":895},{"class":248,"line":894},5,[896,900,904,909],{"type":40,"tag":246,"props":897,"children":898},{"style":253},[899],{"type":46,"value":256},{"type":40,"tag":246,"props":901,"children":902},{"style":259},[903],{"type":46,"value":795},{"type":40,"tag":246,"props":905,"children":906},{"style":259},[907],{"type":46,"value":908}," investigations",{"type":40,"tag":246,"props":910,"children":911},{"style":259},[912],{"type":46,"value":347},{"type":40,"tag":246,"props":914,"children":916},{"class":248,"line":915},6,[917,921,925,929,933,937,942,947],{"type":40,"tag":246,"props":918,"children":919},{"style":253},[920],{"type":46,"value":256},{"type":40,"tag":246,"props":922,"children":923},{"style":259},[924],{"type":46,"value":795},{"type":40,"tag":246,"props":926,"children":927},{"style":259},[928],{"type":46,"value":908},{"type":40,"tag":246,"props":930,"children":931},{"style":259},[932],{"type":46,"value":377},{"type":40,"tag":246,"props":934,"children":935},{"style":578},[936],{"type":46,"value":601},{"type":40,"tag":246,"props":938,"children":939},{"style":259},[940],{"type":46,"value":941},"i",{"type":40,"tag":246,"props":943,"children":944},{"style":609},[945],{"type":46,"value":946},"d",{"type":40,"tag":246,"props":948,"children":949},{"style":578},[950],{"type":46,"value":617},{"type":40,"tag":246,"props":952,"children":954},{"class":248,"line":953},7,[955,959,963,967,972,976,980,984],{"type":40,"tag":246,"props":956,"children":957},{"style":253},[958],{"type":46,"value":256},{"type":40,"tag":246,"props":960,"children":961},{"style":259},[962],{"type":46,"value":795},{"type":40,"tag":246,"props":964,"children":965},{"style":259},[966],{"type":46,"value":908},{"type":40,"tag":246,"props":968,"children":969},{"style":259},[970],{"type":46,"value":971}," get-narrative",{"type":40,"tag":246,"props":973,"children":974},{"style":578},[975],{"type":46,"value":601},{"type":40,"tag":246,"props":977,"children":978},{"style":259},[979],{"type":46,"value":941},{"type":40,"tag":246,"props":981,"children":982},{"style":609},[983],{"type":46,"value":946},{"type":40,"tag":246,"props":985,"children":986},{"style":578},[987],{"type":46,"value":617},{"type":40,"tag":49,"props":989,"children":990},{},[991,997,999,1005,1007,1013],{"type":40,"tag":55,"props":992,"children":994},{"className":993},[],[995],{"type":46,"value":996},"prompt",{"type":46,"value":998}," runs natural language against the stack's live data — the Assistant\nalready has context for dashboards, datasources, and alerts. ",{"type":40,"tag":55,"props":1000,"children":1002},{"className":1001},[],[1003],{"type":46,"value":1004},"--continue",{"type":46,"value":1006},"\nthreads follow-ups via a stored context ID. ",{"type":40,"tag":55,"props":1008,"children":1010},{"className":1009},[],[1011],{"type":46,"value":1012},"--json",{"type":46,"value":1014}," emits a structured event\nstream for agent tools (Claude Code, Cursor) or scripts.",{"type":40,"tag":49,"props":1016,"children":1017},{},[1018,1020,1025,1027,1033,1034,1039,1041,1047],{"type":46,"value":1019},"Investigations are autonomous multi-step LLM runs. The read-only views show\nlifecycle state (",{"type":40,"tag":55,"props":1021,"children":1023},{"className":1022},[],[1024],{"type":46,"value":68},{"type":46,"value":1026},") and the assistant's findings as prose (",{"type":40,"tag":55,"props":1028,"children":1030},{"className":1029},[],[1031],{"type":46,"value":1032},"get-narrative",{"type":46,"value":475},{"type":40,"tag":55,"props":1035,"children":1037},{"className":1036},[],[1038],{"type":46,"value":747},{"type":46,"value":1040}," on ",{"type":40,"tag":55,"props":1042,"children":1044},{"className":1043},[],[1045],{"type":46,"value":1046},"investigations get",{"type":46,"value":1048}," deep-links into the Grafana UI.",{"type":40,"tag":49,"props":1050,"children":1051},{},[1052,1054,1060],{"type":46,"value":1053},"If ",{"type":40,"tag":55,"props":1055,"children":1057},{"className":1056},[],[1058],{"type":46,"value":1059},"investigations list",{"type":46,"value":1061}," is empty, note it and skip the per-investigation\nviews. Do not create one during the demo.",{"type":40,"tag":313,"props":1063,"children":1065},{"id":1064},"reliability-alerting",[1066],{"type":46,"value":1067},"Reliability & Alerting",{"type":40,"tag":235,"props":1069,"children":1071},{"className":237,"code":1070,"language":239,"meta":240,"style":240},"gcx slo definitions status\ngcx alert instances list --state firing\ngcx alert rules list --no-truncate\n",[1072],{"type":40,"tag":55,"props":1073,"children":1074},{"__ignoreMap":240},[1075,1097,1129],{"type":40,"tag":246,"props":1076,"children":1077},{"class":248,"line":249},[1078,1082,1087,1092],{"type":40,"tag":246,"props":1079,"children":1080},{"style":253},[1081],{"type":46,"value":256},{"type":40,"tag":246,"props":1083,"children":1084},{"style":259},[1085],{"type":46,"value":1086}," slo",{"type":40,"tag":246,"props":1088,"children":1089},{"style":259},[1090],{"type":46,"value":1091}," definitions",{"type":40,"tag":246,"props":1093,"children":1094},{"style":259},[1095],{"type":46,"value":1096}," status\n",{"type":40,"tag":246,"props":1098,"children":1099},{"class":248,"line":270},[1100,1104,1109,1114,1119,1124],{"type":40,"tag":246,"props":1101,"children":1102},{"style":253},[1103],{"type":46,"value":256},{"type":40,"tag":246,"props":1105,"children":1106},{"style":259},[1107],{"type":46,"value":1108}," alert",{"type":40,"tag":246,"props":1110,"children":1111},{"style":259},[1112],{"type":46,"value":1113}," instances",{"type":40,"tag":246,"props":1115,"children":1116},{"style":259},[1117],{"type":46,"value":1118}," list",{"type":40,"tag":246,"props":1120,"children":1121},{"style":259},[1122],{"type":46,"value":1123}," --state",{"type":40,"tag":246,"props":1125,"children":1126},{"style":259},[1127],{"type":46,"value":1128}," firing\n",{"type":40,"tag":246,"props":1130,"children":1131},{"class":248,"line":424},[1132,1136,1140,1145,1149],{"type":40,"tag":246,"props":1133,"children":1134},{"style":253},[1135],{"type":46,"value":256},{"type":40,"tag":246,"props":1137,"children":1138},{"style":259},[1139],{"type":46,"value":1108},{"type":40,"tag":246,"props":1141,"children":1142},{"style":259},[1143],{"type":46,"value":1144}," rules",{"type":40,"tag":246,"props":1146,"children":1147},{"style":259},[1148],{"type":46,"value":1118},{"type":40,"tag":246,"props":1150,"children":1151},{"style":259},[1152],{"type":46,"value":397},{"type":40,"tag":49,"props":1154,"children":1155},{},[1156,1158,1163,1165,1171],{"type":46,"value":1157},"SLOs return SLI, error budget, and status in one command (add ",{"type":40,"tag":55,"props":1159,"children":1161},{"className":1160},[],[1162],{"type":46,"value":457},{"type":46,"value":1164}," for\nburn rate) — scriptable for release gates. Firing alerts include labels,\nannotations, and runbook URLs. The rules list shows state and health at a\nglance; drill into a single rule with ",{"type":40,"tag":55,"props":1166,"children":1168},{"className":1167},[],[1169],{"type":46,"value":1170},"gcx alert rules get \u003Cuid> -o json",{"type":46,"value":1172}," when\nthe audience wants the full PromQL, evaluation timing, or datasource UIDs —\nthe list table doesn't carry those.",{"type":40,"tag":313,"props":1174,"children":1176},{"id":1175},"synthetic-monitoring",[1177],{"type":46,"value":1178},"Synthetic Monitoring",{"type":40,"tag":235,"props":1180,"children":1182},{"className":237,"code":1181,"language":239,"meta":240,"style":240},"gcx synth checks list\ngcx synth probes list\n",[1183],{"type":40,"tag":55,"props":1184,"children":1185},{"__ignoreMap":240},[1186,1207],{"type":40,"tag":246,"props":1187,"children":1188},{"class":248,"line":249},[1189,1193,1198,1203],{"type":40,"tag":246,"props":1190,"children":1191},{"style":253},[1192],{"type":46,"value":256},{"type":40,"tag":246,"props":1194,"children":1195},{"style":259},[1196],{"type":46,"value":1197}," synth",{"type":40,"tag":246,"props":1199,"children":1200},{"style":259},[1201],{"type":46,"value":1202}," checks",{"type":40,"tag":246,"props":1204,"children":1205},{"style":259},[1206],{"type":46,"value":347},{"type":40,"tag":246,"props":1208,"children":1209},{"class":248,"line":270},[1210,1214,1218,1223],{"type":40,"tag":246,"props":1211,"children":1212},{"style":253},[1213],{"type":46,"value":256},{"type":40,"tag":246,"props":1215,"children":1216},{"style":259},[1217],{"type":46,"value":1197},{"type":40,"tag":246,"props":1219,"children":1220},{"style":259},[1221],{"type":46,"value":1222}," probes",{"type":40,"tag":246,"props":1224,"children":1225},{"style":259},[1226],{"type":46,"value":347},{"type":40,"tag":49,"props":1228,"children":1229},{},[1230,1232,1238],{"type":46,"value":1231},"HTTP and browser checks from a global probe network — the probes table shows\neach probe's region and online status; ",{"type":40,"tag":55,"props":1233,"children":1235},{"className":1234},[],[1236],{"type":46,"value":1237},"-o json",{"type":46,"value":1239}," adds coordinates and\ncapabilities if the audience asks.",{"type":40,"tag":313,"props":1241,"children":1243},{"id":1242},"irm",[1244],{"type":46,"value":1245},"IRM",{"type":40,"tag":235,"props":1247,"children":1249},{"className":237,"code":1248,"language":239,"meta":240,"style":240},"gcx irm oncall schedules list\n",[1250],{"type":40,"tag":55,"props":1251,"children":1252},{"__ignoreMap":240},[1253],{"type":40,"tag":246,"props":1254,"children":1255},{"class":248,"line":249},[1256,1260,1265,1270,1275],{"type":40,"tag":246,"props":1257,"children":1258},{"style":253},[1259],{"type":46,"value":256},{"type":40,"tag":246,"props":1261,"children":1262},{"style":259},[1263],{"type":46,"value":1264}," irm",{"type":40,"tag":246,"props":1266,"children":1267},{"style":259},[1268],{"type":46,"value":1269}," oncall",{"type":40,"tag":246,"props":1271,"children":1272},{"style":259},[1273],{"type":46,"value":1274}," schedules",{"type":40,"tag":246,"props":1276,"children":1277},{"style":259},[1278],{"type":46,"value":347},{"type":40,"tag":49,"props":1280,"children":1281},{},[1282],{"type":46,"value":1283},"Who's on-call right now. Pipeable into runbooks and automation.",{"type":40,"tag":313,"props":1285,"children":1287},{"id":1286},"cloud-provider-commands",[1288],{"type":46,"value":1289},"Cloud Provider Commands",{"type":40,"tag":49,"props":1291,"children":1292},{},[1293,1295,1301,1303,1309,1310,1316],{"type":46,"value":1294},"Require cloud auth (a ",{"type":40,"tag":55,"props":1296,"children":1298},{"className":1297},[],[1299],{"type":46,"value":1300},"cloud:",{"type":46,"value":1302}," entry bound to the context via ",{"type":40,"tag":55,"props":1304,"children":1306},{"className":1305},[],[1307],{"type":46,"value":1308},"gcx cloud login",{"type":46,"value":77},{"type":40,"tag":55,"props":1311,"children":1313},{"className":1312},[],[1314],{"type":46,"value":1315},"GRAFANA_CLOUD_TOKEN",{"type":46,"value":1317},") and a resolvable stack slug. Skip gracefully\nif not configured, and note what's needed.",{"type":40,"tag":235,"props":1319,"children":1321},{"className":237,"code":1320,"language":239,"meta":240,"style":240},"gcx k6 load-tests list --no-truncate\ngcx fleet pipelines list --no-truncate\n",[1322],{"type":40,"tag":55,"props":1323,"children":1324},{"__ignoreMap":240},[1325,1350],{"type":40,"tag":246,"props":1326,"children":1327},{"class":248,"line":249},[1328,1332,1337,1342,1346],{"type":40,"tag":246,"props":1329,"children":1330},{"style":253},[1331],{"type":46,"value":256},{"type":40,"tag":246,"props":1333,"children":1334},{"style":259},[1335],{"type":46,"value":1336}," k6",{"type":40,"tag":246,"props":1338,"children":1339},{"style":259},[1340],{"type":46,"value":1341}," load-tests",{"type":40,"tag":246,"props":1343,"children":1344},{"style":259},[1345],{"type":46,"value":1118},{"type":40,"tag":246,"props":1347,"children":1348},{"style":259},[1349],{"type":46,"value":397},{"type":40,"tag":246,"props":1351,"children":1352},{"class":248,"line":270},[1353,1357,1362,1367,1371],{"type":40,"tag":246,"props":1354,"children":1355},{"style":253},[1356],{"type":46,"value":256},{"type":40,"tag":246,"props":1358,"children":1359},{"style":259},[1360],{"type":46,"value":1361}," fleet",{"type":40,"tag":246,"props":1363,"children":1364},{"style":259},[1365],{"type":46,"value":1366}," pipelines",{"type":40,"tag":246,"props":1368,"children":1369},{"style":259},[1370],{"type":46,"value":1118},{"type":40,"tag":246,"props":1372,"children":1373},{"style":259},[1374],{"type":46,"value":397},{"type":40,"tag":49,"props":1376,"children":1377},{},[1378],{"type":46,"value":1379},"k6: load test catalog alongside the Grafana stack — correlate test timing with\nlive metrics. Fleet: full Alloy HCL pipeline configs deployed to collectors via\nmatcher rules.",{"type":40,"tag":204,"props":1381,"children":1382},{},[],{"type":40,"tag":87,"props":1384,"children":1386},{"id":1385},"close",[1387],{"type":46,"value":1388},"Close",{"type":40,"tag":49,"props":1390,"children":1391},{},[1392],{"type":46,"value":1393},"Summarize what was actually shown — areas covered, notable findings (a\nspecific alert, a latency signal in traces, an interesting datasource mix),\nand the commands used. Adapt the summary to what was interesting on this\nparticular stack. Don't recite a fixed table.",{"type":40,"tag":49,"props":1395,"children":1396},{},[1397,1399,1405,1407,1412],{"type":46,"value":1398},"Close with: \"One binary, one context, every Grafana Cloud product. All\nscriptable, all pipelineable — and with ",{"type":40,"tag":55,"props":1400,"children":1402},{"className":1401},[],[1403],{"type":46,"value":1404},"--dry-run",{"type":46,"value":1406}," on resource and SLO pushes\nfor safe GitOps workflows.\" (Don't claim every mutation verb has ",{"type":40,"tag":55,"props":1408,"children":1410},{"className":1409},[],[1411],{"type":46,"value":1404},{"type":46,"value":1413},";\nthe create commands for checks, schedules, and pipelines currently don't.)",{"type":40,"tag":204,"props":1415,"children":1416},{},[],{"type":40,"tag":87,"props":1418,"children":1420},{"id":1419},"error-handling",[1421],{"type":46,"value":1422},"Error Handling",{"type":40,"tag":1424,"props":1425,"children":1426},"table",{},[1427,1446],{"type":40,"tag":1428,"props":1429,"children":1430},"thead",{},[1431],{"type":40,"tag":1432,"props":1433,"children":1434},"tr",{},[1435,1441],{"type":40,"tag":1436,"props":1437,"children":1438},"th",{},[1439],{"type":46,"value":1440},"Situation",{"type":40,"tag":1436,"props":1442,"children":1443},{},[1444],{"type":46,"value":1445},"Action",{"type":40,"tag":1447,"props":1448,"children":1449},"tbody",{},[1450,1469,1482,1495,1508,1521,1534],{"type":40,"tag":1432,"props":1451,"children":1452},{},[1453,1464],{"type":40,"tag":1454,"props":1455,"children":1456},"td",{},[1457,1462],{"type":40,"tag":55,"props":1458,"children":1460},{"className":1459},[],[1461],{"type":46,"value":295},{"type":46,"value":1463}," fails",{"type":40,"tag":1454,"props":1465,"children":1466},{},[1467],{"type":46,"value":1468},"Stop. Ask user to fix the context before continuing.",{"type":40,"tag":1432,"props":1470,"children":1471},{},[1472,1477],{"type":40,"tag":1454,"props":1473,"children":1474},{},[1475],{"type":46,"value":1476},"Signal datasource not found",{"type":40,"tag":1454,"props":1478,"children":1479},{},[1480],{"type":46,"value":1481},"Skip that signal type, note it.",{"type":40,"tag":1432,"props":1483,"children":1484},{},[1485,1490],{"type":40,"tag":1454,"props":1486,"children":1487},{},[1488],{"type":46,"value":1489},"Cloud auth or stack slug missing",{"type":40,"tag":1454,"props":1491,"children":1492},{},[1493],{"type":46,"value":1494},"Skip k6 and fleet, note what's needed.",{"type":40,"tag":1432,"props":1496,"children":1497},{},[1498,1503],{"type":40,"tag":1454,"props":1499,"children":1500},{},[1501],{"type":46,"value":1502},"Assistant unavailable (self-hosted, OAuth missing, 403)",{"type":40,"tag":1454,"props":1504,"children":1505},{},[1506],{"type":46,"value":1507},"Skip assistant section, note Cloud + OAuth requirement.",{"type":40,"tag":1432,"props":1509,"children":1510},{},[1511,1516],{"type":40,"tag":1454,"props":1512,"children":1513},{},[1514],{"type":46,"value":1515},"Auth scope missing (403)",{"type":40,"tag":1454,"props":1517,"children":1518},{},[1519],{"type":46,"value":1520},"Note the missing scope, skip, continue.",{"type":40,"tag":1432,"props":1522,"children":1523},{},[1524,1529],{"type":40,"tag":1454,"props":1525,"children":1526},{},[1527],{"type":46,"value":1528},"Empty list (0 resources)",{"type":40,"tag":1454,"props":1530,"children":1531},{},[1532],{"type":46,"value":1533},"Report \"none found\" — not an error; continue.",{"type":40,"tag":1432,"props":1535,"children":1536},{},[1537,1542],{"type":40,"tag":1454,"props":1538,"children":1539},{},[1540],{"type":46,"value":1541},"Any other command error",{"type":40,"tag":1454,"props":1543,"children":1544},{},[1545],{"type":46,"value":1546},"Print the error summary, skip the section, continue.",{"type":40,"tag":49,"props":1548,"children":1549},{},[1550],{"type":46,"value":1551},"Never abort for a single failure. Surface errors at the end.",{"type":40,"tag":1553,"props":1554,"children":1555},"style",{},[1556],{"type":46,"value":1557},"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":1559,"total":1666},[1560,1577,1593,1606,1621,1638,1653],{"slug":1561,"name":1561,"fn":1562,"description":1563,"org":1564,"tags":1565,"stars":20,"repoUrl":21,"updatedAt":1576},"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},[1566,1569,1570,1573],{"name":1567,"slug":1568,"type":15},"Agents","agents",{"name":9,"slug":8,"type":15},{"name":1571,"slug":1572,"type":15},"Monitoring","monitoring",{"name":1574,"slug":1575,"type":15},"Observability","observability","2026-07-25T05:30:40.29622",{"slug":1578,"name":1578,"fn":1579,"description":1580,"org":1581,"tags":1582,"stars":20,"repoUrl":21,"updatedAt":1592},"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},[1583,1584,1585,1588,1591],{"name":1567,"slug":1568,"type":15},{"name":9,"slug":8,"type":15},{"name":1586,"slug":1587,"type":15},"Instrumentation","instrumentation",{"name":1589,"slug":1590,"type":15},"LLM","llm",{"name":1574,"slug":1575,"type":15},"2026-07-31T05:53:52.580237",{"slug":1594,"name":1594,"fn":1595,"description":1596,"org":1597,"tags":1598,"stars":20,"repoUrl":21,"updatedAt":1605},"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},[1599,1600,1603,1604],{"name":1567,"slug":1568,"type":15},{"name":1601,"slug":1602,"type":15},"Evals","evals",{"name":9,"slug":8,"type":15},{"name":1574,"slug":1575,"type":15},"2026-07-31T05:53:53.576347",{"slug":1607,"name":1607,"fn":1608,"description":1609,"org":1610,"tags":1611,"stars":20,"repoUrl":21,"updatedAt":1620},"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},[1612,1613,1614,1617],{"name":1567,"slug":1568,"type":15},{"name":9,"slug":8,"type":15},{"name":1615,"slug":1616,"type":15},"QA","qa",{"name":1618,"slug":1619,"type":15},"Testing","testing","2026-07-31T05:53:51.62785",{"slug":1622,"name":1622,"fn":1623,"description":1624,"org":1625,"tags":1626,"stars":20,"repoUrl":21,"updatedAt":1637},"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},[1627,1630,1633,1636],{"name":1628,"slug":1629,"type":15},"Dashboards","dashboards",{"name":1631,"slug":1632,"type":15},"Data Visualization","data-visualization",{"name":1634,"slug":1635,"type":15},"Design","design",{"name":9,"slug":8,"type":15},"2026-07-25T05:30:46.289717",{"slug":1639,"name":1639,"fn":1640,"description":1641,"org":1642,"tags":1643,"stars":20,"repoUrl":21,"updatedAt":1652},"debug-with-grafana","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},[1644,1647,1648,1651],{"name":1645,"slug":1646,"type":15},"Debugging","debugging",{"name":9,"slug":8,"type":15},{"name":1649,"slug":1650,"type":15},"Incident Response","incident-response",{"name":1574,"slug":1575,"type":15},"2026-07-18T05:11:10.445428",{"slug":1654,"name":1654,"fn":1655,"description":1656,"org":1657,"tags":1658,"stars":20,"repoUrl":21,"updatedAt":1665},"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},[1659,1660,1661,1664],{"name":1645,"slug":1646,"type":15},{"name":9,"slug":8,"type":15},{"name":1662,"slug":1663,"type":15},"Graph Analysis","graph-analysis",{"name":1574,"slug":1575,"type":15},"2026-07-25T05:30:39.380934",24,{"items":1668,"total":1793},[1669,1686,1705,1725,1732,1740,1747,1754,1761,1768,1775,1787],{"slug":1670,"name":1670,"fn":1671,"description":1672,"org":1673,"tags":1674,"stars":1683,"repoUrl":1684,"updatedAt":1685},"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},[1675,1678,1681,1682],{"name":1676,"slug":1677,"type":15},"Distributed Tracing","distributed-tracing",{"name":1679,"slug":1680,"type":15},"Frontend","frontend",{"name":1571,"slug":1572,"type":15},{"name":1574,"slug":1575,"type":15},1103,"https:\u002F\u002Fgithub.com\u002Fgrafana\u002Ffaro-web-sdk","2026-07-12T07:43:24.63314",{"slug":1687,"name":1687,"fn":1688,"description":1689,"org":1690,"tags":1691,"stars":1702,"repoUrl":1703,"updatedAt":1704},"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},[1692,1695,1698,1701],{"name":1693,"slug":1694,"type":15},"API Development","api-development",{"name":1696,"slug":1697,"type":15},"Authentication","authentication",{"name":1699,"slug":1700,"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":1706,"name":1706,"fn":1707,"description":1708,"org":1709,"tags":1710,"stars":1702,"repoUrl":1703,"updatedAt":1724},"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},[1711,1714,1717,1718,1721],{"name":1712,"slug":1713,"type":15},"CSV","csv",{"name":1715,"slug":1716,"type":15},"Data Analysis","data-analysis",{"name":9,"slug":8,"type":15},{"name":1719,"slug":1720,"type":15},"GraphQL","graphql",{"name":1722,"slug":1723,"type":15},"JSON","json","2026-07-15T05:34:05.773947",{"slug":1561,"name":1561,"fn":1562,"description":1563,"org":1726,"tags":1727,"stars":20,"repoUrl":21,"updatedAt":1576},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1728,1729,1730,1731],{"name":1567,"slug":1568,"type":15},{"name":9,"slug":8,"type":15},{"name":1571,"slug":1572,"type":15},{"name":1574,"slug":1575,"type":15},{"slug":1578,"name":1578,"fn":1579,"description":1580,"org":1733,"tags":1734,"stars":20,"repoUrl":21,"updatedAt":1592},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1735,1736,1737,1738,1739],{"name":1567,"slug":1568,"type":15},{"name":9,"slug":8,"type":15},{"name":1586,"slug":1587,"type":15},{"name":1589,"slug":1590,"type":15},{"name":1574,"slug":1575,"type":15},{"slug":1594,"name":1594,"fn":1595,"description":1596,"org":1741,"tags":1742,"stars":20,"repoUrl":21,"updatedAt":1605},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1743,1744,1745,1746],{"name":1567,"slug":1568,"type":15},{"name":1601,"slug":1602,"type":15},{"name":9,"slug":8,"type":15},{"name":1574,"slug":1575,"type":15},{"slug":1607,"name":1607,"fn":1608,"description":1609,"org":1748,"tags":1749,"stars":20,"repoUrl":21,"updatedAt":1620},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1750,1751,1752,1753],{"name":1567,"slug":1568,"type":15},{"name":9,"slug":8,"type":15},{"name":1615,"slug":1616,"type":15},{"name":1618,"slug":1619,"type":15},{"slug":1622,"name":1622,"fn":1623,"description":1624,"org":1755,"tags":1756,"stars":20,"repoUrl":21,"updatedAt":1637},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1757,1758,1759,1760],{"name":1628,"slug":1629,"type":15},{"name":1631,"slug":1632,"type":15},{"name":1634,"slug":1635,"type":15},{"name":9,"slug":8,"type":15},{"slug":1639,"name":1639,"fn":1640,"description":1641,"org":1762,"tags":1763,"stars":20,"repoUrl":21,"updatedAt":1652},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1764,1765,1766,1767],{"name":1645,"slug":1646,"type":15},{"name":9,"slug":8,"type":15},{"name":1649,"slug":1650,"type":15},{"name":1574,"slug":1575,"type":15},{"slug":1654,"name":1654,"fn":1655,"description":1656,"org":1769,"tags":1770,"stars":20,"repoUrl":21,"updatedAt":1665},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1771,1772,1773,1774],{"name":1645,"slug":1646,"type":15},{"name":9,"slug":8,"type":15},{"name":1662,"slug":1663,"type":15},{"name":1574,"slug":1575,"type":15},{"slug":256,"name":256,"fn":1776,"description":1777,"org":1778,"tags":1779,"stars":20,"repoUrl":21,"updatedAt":1786},"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},[1780,1781,1782,1783],{"name":17,"slug":18,"type":15},{"name":9,"slug":8,"type":15},{"name":1571,"slug":1572,"type":15},{"name":1784,"slug":1785,"type":15},"Operations","operations","2026-07-31T05:53:50.587304",{"slug":4,"name":4,"fn":5,"description":6,"org":1788,"tags":1789,"stars":20,"repoUrl":21,"updatedAt":22},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1790,1791,1792],{"name":17,"slug":18,"type":15},{"name":9,"slug":8,"type":15},{"name":13,"slug":14,"type":15},80]