[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-grafana-debug-with-grafana":3,"mdc--w2001u-key":34,"related-repo-grafana-debug-with-grafana":6034,"related-org-grafana-debug-with-grafana":6133},{"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},"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},"grafana","Grafana","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fgrafana.jpg",[12,16,19,20],{"name":13,"slug":14,"type":15},"Observability","observability","tag",{"name":17,"slug":18,"type":15},"Incident Response","incident-response",{"name":9,"slug":8,"type":15},{"name":21,"slug":22,"type":15},"Debugging","debugging",430,"https:\u002F\u002Fgithub.com\u002Fgrafana\u002Fgcx","2026-07-18T05:11:10.445428",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\u002Fdebug-with-grafana","---\nname: debug-with-grafana\ndescription: >\n  Structured workflow for investigating application problems with Grafana\n  observability data (metrics, logs, traces) via gcx. Covers live\n  firefighting AND retrospective incident analysis: incident triage,\n  root-cause analysis, blast-radius checks (did an incident spill into\n  other services), verifying whether a deployment or rollout triggered an\n  incident, finding which service, endpoint, or path owns the most errors\n  or slow requests, checking whether retries or queue backlogs piled up,\n  and quantifying error or latency shares over a time window. Trigger on:\n  \"my API is returning 500 errors\", \"latency is spiking\", \"investigate why\n  requests are failing\", \"triage the incident\", \"blast radius\", \"root\n  cause\", \"did the rollout cause it\", \"which endpoint owns the most 5xx\",\n  \"did retries pile up\", or any request to analyse an earlier incident\n  window using telemetry. For authoring dashboards use create-dashboard;\n  for dashboard inventory use manage-dashboards.\n---\n\n# Debug with Grafana\n\nA structured 7-step diagnostic workflow for debugging application issues using\nPrometheus metrics, Loki logs, and Grafana resources. Follow steps in order —\neach step informs the next.\n\n## Prerequisites\n\ngcx must be installed and configured with a valid context before running\nany commands. If not configured, use the `setup-gcx` skill first:\n\n```bash\n# Verify configuration\ngcx config view\n\n# Switch context if needed\ngcx config use-context \u003Ccontext-name>\n```\n\n## Diagnostic Workflow\n\n### Step 1: Discover Datasources\n\nList all available datasources to identify Prometheus and Loki UIDs. All\nsubsequent query commands require a datasource UID via `-d \u003Cuid>`.\n\n```bash\n# List all datasources\ngcx datasources list -o json\n\n# Filter by type for scripting\ngcx datasources list -t prometheus -o json\ngcx datasources list -t loki -o json\n\n# Capture UIDs for use in subsequent steps\nPROM_UID=$(gcx datasources list -t prometheus -o json 2>\u002Fdev\u002Fnull | \\\n  python3 -c \"import json,sys; print(json.load(sys.stdin)['datasources'][0]['uid'])\")\nLOKI_UID=$(gcx datasources list -t loki -o json 2>\u002Fdev\u002Fnull | \\\n  python3 -c \"import json,sys; print(json.load(sys.stdin)['datasources'][0]['uid'])\")\n```\n\n**Expected output shape:**\n```json\n{\n  \"datasources\": [\n    {\"uid\": \"\u003Cuid>\", \"name\": \"\u003Cdisplay-name>\", \"type\": \"prometheus\", ...},\n    {\"uid\": \"\u003Cuid>\", \"name\": \"\u003Cdisplay-name>\", \"type\": \"loki\", ...}\n  ]\n}\n```\n\nIf no datasources appear, confirm the context is pointing at the correct\nGrafana instance. See `references\u002Ferror-recovery.md` for auth and\ndatasource-not-found recovery patterns.\n\n> **JSON output piping**: When piping gcx output through external tools, never\n> use `2>&1` — gcx writes hints to stderr that break JSON parsers. Use\n> `2>\u002Fdev\u002Fnull` to suppress stderr, or use `--json field1,field2` to select\n> fields directly without piping:\n> ```bash\n> gcx datasources list -t prometheus --json uid\n> gcx metrics query -d \u003Cprom-uid> 'up' --json metric,value\n> ```\n> Use `--json list` to discover available fields for any command.\n\n### Step 2: Confirm Data Availability\n\nBefore querying specific metrics, confirm the target service is instrumented\nand data is flowing. This avoids wasting time on empty results.\n\n```bash\n# Check that the target service is being scraped\ngcx metrics query -d \u003Cprom-uid> 'up' -o json\n\n# Verify the relevant job label exists\ngcx metrics labels -d \u003Cprom-uid> -l job -o json\n\n# For Loki: confirm log streams exist for the service\ngcx logs labels -d \u003Cloki-uid> -l job -o json\ngcx logs series -d \u003Cloki-uid> -M '{job=\"\u003Cservice-name>\"}' -o json\n\n# Spot-check: confirm uptime metrics are present for the service\ngcx metrics query -d \u003Cprom-uid> 'up{job=\"\u003Cservice-name>\"}' -o json\n```\n\n**Expected output shape:**\n```json\n{\n  \"status\": \"success\",\n  \"data\": {\n    \"resultType\": \"vector\",\n    \"result\": [\n      {\"metric\": {\"__name__\": \"up\", \"job\": \"\u003Cservice-name>\", \"instance\": \"\u003Chost:port>\"}, \"value\": [\u003Ctimestamp>, \"\u003C0-or-1>\"]}\n    ]\n  }\n}\n```\n\nA `value` of `\"0\"` means the service is down or not being scraped. Empty\n`result` array means the metric is absent — see Failure Mode 3 in\n`references\u002Ferror-recovery.md`.\n\n### Step 3: Query Error Rates\n\nQuery the HTTP 5xx error rate over the relevant time window to establish\nwhether an error spike exists and when it began.\n\n```bash\n# HTTP 5xx error rate (range query for trend)\ngcx metrics query -d \u003Cprom-uid> \\\n  'rate(http_requests_total{job=\"\u003Cservice-name>\",status=~\"5..\"}[5m])' \\\n  --from now-1h --to now --step 1m -o json\n\n# Visualize the trend\ngcx metrics query -d \u003Cprom-uid> \\\n  'rate(http_requests_total{job=\"\u003Cservice-name>\",status=~\"5..\"}[5m])' \\\n  --from now-1h --to now --step 1m -o graph\n\n# Error ratio (errors \u002F total)\ngcx metrics query -d \u003Cprom-uid> \\\n  'rate(http_requests_total{job=\"\u003Cservice-name>\",status=~\"5..\"}[5m]) \u002F rate(http_requests_total{job=\"\u003Cservice-name>\"}[5m])' \\\n  --from now-1h --to now --step 1m -o json\n\n# Break down by status code to identify 500 vs 503 vs 504\ngcx metrics query -d \u003Cprom-uid> \\\n  'sum by(status) (rate(http_requests_total{job=\"\u003Cservice-name>\"}[5m]))' \\\n  --from now-1h --to now --step 1m -o json\n```\n\n**Expected output shape (matrix for range queries):**\n```json\n{\n  \"status\": \"success\",\n  \"data\": {\n    \"resultType\": \"matrix\",\n    \"result\": [\n      {\n        \"metric\": {\"job\": \"\u003Cservice-name>\", \"status\": \"\u003Ccode>\"},\n        \"values\": [[\u003Ctimestamp>, \"\u003Crate>\"], ...]\n      }\n    ]\n  }\n}\n```\n\nNote the timestamp where the rate increases — this is the incident start time.\nUse this window in subsequent steps.\n\n### Step 4: Query Latency\n\nQuery request latency to determine whether the service is slow (latency issue)\nor failing fast (error issue). High latency often precedes error spikes.\n\n```bash\n# P50\u002FP95\u002FP99 latency from histogram\ngcx metrics query -d \u003Cprom-uid> \\\n  'histogram_quantile(0.95, rate(http_request_duration_seconds_bucket{job=\"\u003Cservice-name>\"}[5m]))' \\\n  --from now-1h --to now --step 1m -o json\n\n# Visualize P95 latency trend\ngcx metrics query -d \u003Cprom-uid> \\\n  'histogram_quantile(0.95, rate(http_request_duration_seconds_bucket{job=\"\u003Cservice-name>\"}[5m]))' \\\n  --from now-1h --to now --step 1m -o graph\n\n# Average latency as a simpler signal if histograms are unavailable\ngcx metrics query -d \u003Cprom-uid> \\\n  'rate(http_request_duration_seconds_sum{job=\"\u003Cservice-name>\"}[5m]) \u002F rate(http_request_duration_seconds_count{job=\"\u003Cservice-name>\"}[5m])' \\\n  --from now-1h --to now --step 1m -o json\n\n# Latency by endpoint (if label available)\ngcx metrics query -d \u003Cprom-uid> \\\n  'histogram_quantile(0.95, sum by(le, handler) (rate(http_request_duration_seconds_bucket{job=\"\u003Cservice-name>\"}[5m])))' \\\n  --from now-1h --to now --step 1m -o json\n```\n\n**Expected output shape:**\n```json\n{\n  \"status\": \"success\",\n  \"data\": {\n    \"resultType\": \"matrix\",\n    \"result\": [\n      {\n        \"metric\": {\"job\": \"\u003Cservice-name>\"},\n        \"values\": [[\u003Ctimestamp>, \"\u003Cseconds>\"], ...]\n      }\n    ]\n  }\n}\n```\n\nCompare the latency onset time with the error onset time from Step 3. If\nlatency rose before errors, a dependency or resource constraint is likely.\n\n### Step 5: Correlate Logs\n\nQuery Loki for error logs in the time window identified in Steps 3 and 4.\nLogs provide the specific error messages, stack traces, and context that\nmetrics cannot.\n\n```bash\n# Error logs for the service in the incident window\ngcx logs query -d \u003Cloki-uid> \\\n  '{job=\"\u003Cservice-name>\"} |= \"error\"' \\\n  --from now-1h --to now -o json\n\n# JSON-parsed logs with level filter (if structured logging)\ngcx logs query -d \u003Cloki-uid> \\\n  '{job=\"\u003Cservice-name>\"} | json | level=\"error\"' \\\n  --from now-1h --to now -o json\n\n# Error rate from logs (count over time)\ngcx logs query -d \u003Cloki-uid> \\\n  'count_over_time({job=\"\u003Cservice-name>\"} |= \"error\" [5m])' \\\n  --from now-1h --to now --step 1m -o json\n\n# Grep for specific error patterns\ngcx logs query -d \u003Cloki-uid> \\\n  '{job=\"\u003Cservice-name>\"} |~ \"timeout|connection refused|OOM|panic\"' \\\n  --from now-1h --to now -o json\n```\n\n**Expected output shape (streams):**\n```json\n{\n  \"status\": \"success\",\n  \"data\": {\n    \"resultType\": \"streams\",\n    \"result\": [\n      {\n        \"stream\": {\"job\": \"\u003Cservice-name>\"},\n        \"values\": [\n          {\n            \"timestamp\": \"\u003Cns-timestamp>\",\n            \"line\": \"\u003Clog-line>\",\n            \"structuredMetadata\": {\"detected_level\": \"error\"},\n            \"parsed\": {\"status\": \"500\"}\n          }\n        ]\n      }\n    ]\n  }\n}\n```\n`stream` holds indexed labels only (valid inside `{...}`). `structuredMetadata`\n(per-line, e.g. `detected_level`) and `parsed` (from `| json` \u002F `| logfmt`) are\npresent only when the line has them, and are usable only after a pipe — not in a\n`{}` selector.\n\n> **LogQL pitfall**: Loki requires at least one non-empty label matcher in the\n> stream selector. `{}` and `{} |~ \"pattern\"` will be rejected. Always include\n> at least one label, e.g., `{job=~\".+\"}` as a catch-all.\n>\n> **Label-kind pitfall**: only *indexed* labels are valid inside `{...}`. Loki's\n> structured metadata (e.g. its auto-added `detected_level`) and parsed fields\n> are NOT — `{detected_level=\"error\"}` returns zero streams silently. Filter\n> them after a pipe: `{job=\"app\"} | detected_level=\"error\"`. In `gcx logs query`\n> output, indexed labels are in the `stream` map \u002F `STREAM` column; structured\n> metadata and parsed labels are in per-entry `structuredMetadata` \u002F `parsed`\n> (`-o json`) or `DETAILS` (`-o table`).\n\nLook for:\n- Repeated error messages pointing to a specific code path or dependency\n- Timestamps of first error matching the metric spike time from Step 3\n- Stack traces or panic messages that identify the root cause\n- Upstream service names in error messages (database, external APIs)\n\n### Step 5b: Correlate Traces (if Tempo is available)\n\nIf a Tempo datasource exists, search for traces matching the incident window.\nTraces show individual request paths and identify slow or failing spans.\n\n```bash\n# Check for Tempo datasources\ngcx datasources list -t tempo -o json\n\n# Search for error traces in the incident window\ngcx traces query -d \u003Ctempo-uid> '{ status = error }' --from now-1h --to now\n\n# Search by service name\ngcx traces query -d \u003Ctempo-uid> '{ resource.service.name = \"\u003Cservice-name>\" }' --from now-1h --to now\n\n# Search for slow traces (duration > 1s)\ngcx traces query -d \u003Ctempo-uid> \\\n  '{ resource.service.name = \"\u003Cservice-name>\" && duration > 1s }' \\\n  --from now-1h --to now\n\n# Fetch a specific trace by ID for analysis (from search results or log trace IDs)\n# Always use --llm so Tempo returns its token-efficient LLM trace encoding.\ngcx traces get -d \u003Ctempo-uid> \u003Ctrace-id> --llm -o json\n```\n\n**TraceQL attribute scoping**: Tempo requires scoped attribute names. Use\n`resource.` for resource-level attributes and `span.` for span-level:\n- `resource.service.name` (not `service.name`)\n- `span.http.status_code` (not `http.status_code`)\n\nUse `name` (unscoped) for the span name, `duration` for span duration,\nand `status` for span status. Use `trace:rootService` and `trace:rootName`\nfor root span attributes (not `rootServiceName` or `rootTraceName`).\n\nWhen inspecting trace bodies, use `gcx traces get \u003Ctrace-id> --llm -o json`. Do not fetch the\nOTLP-shaped default trace and manually compact it unless the user explicitly\nneeds raw trace JSON for schema\u002Fdebugging work.\n\nDiscover available labels and values:\n```bash\ngcx traces labels -d \u003Ctempo-uid>\n# For agent workflows, request Tempo's compact LLM label-value encoding.\ngcx traces tags -d \u003Ctempo-uid> -l resource.service.name --llm -o json\n```\n\n> **Common mistake**: `gcx traces labels -l service.name` will fail — Tempo\n> parses the dot as an identifier boundary. Always fully qualify:\n> `-l resource.service.name`, not `-l service.name`.\n\nSee [`references\u002Ftraceql-patterns.md`](references\u002Ftraceql-patterns.md) for full\nTraceQL syntax reference.\n\n### Step 6: Check Related Dashboards and Resources\n\nCheck whether relevant dashboards exist that give broader context, and inspect\nrelated Grafana resources that may explain the issue (e.g., alert rules that\nare firing).\n\n```bash\n# List all alert rules to find any firing for this service\ngcx alert rules list -o json | jq '.[] | .rules[]? | select(.labels.job == \"\u003Cservice-name>\")'\n\n# Pull dashboards locally to inspect their panel queries\ngcx resources pull dashboards -o json\n\n# List available resources to find service-specific dashboards\ngcx resources get dashboards -o json | jq '.items[] | select(.metadata.name | test(\"\u003Cservice-name>\"; \"i\"))'\n\n# If a relevant dashboard UID is known, get it directly\ngcx resources get dashboards\u002F\u003Cdashboard-uid> -o json\n```\n\n#### Capture a visual snapshot of a relevant dashboard\n\nIf a relevant dashboard UID is known, capture a PNG snapshot to visually\ninspect panel layout and current state. This is especially useful when\ndiagnosing layout regressions, missing data, or anomalous panel values.\n\n```bash\n# First, discover which template variables the dashboard uses so you can\n# pin them to the values relevant to the incident being debugged\ngcx resources get dashboards\u002F\u003Cdashboard-uid> -ojson | \\\n  jq '.spec.templating.list[] | {name, type, current: .current.value}'\n\n# Capture a full dashboard snapshot with variables matching the incident context\n# (requires grafana-image-renderer plugin on the Grafana instance)\ngcx dashboards snapshot \u003Cdashboard-uid> --output-dir .\u002Fdebug-snapshots \\\n  --var cluster=\u003Ccluster> --var job=\u003Cservice-name> --since 1h\n\n# Capture the incident time window explicitly\ngcx dashboards snapshot \u003Cdashboard-uid> --from now-1h --to now \\\n  --var cluster=\u003Ccluster> --var job=\u003Cservice-name> --output-dir .\u002Fdebug-snapshots\n\n# Capture a specific panel (find panel IDs: .spec.panels[].id in the dashboard JSON)\ngcx dashboards snapshot \u003Cdashboard-uid> --panel \u003Cpanel-id> \\\n  --output-dir .\u002Fdebug-snapshots\n\n# If stuck with flags: gcx dashboards snapshot --help\n```\n\nCross-reference with metrics and logs:\n- Are there alert rules in a firing or pending state for this service?\n- Do existing dashboards show additional signals (queue depth, DB connections,\n  memory pressure)?\n- Do dashboard panel queries reveal which metrics are being monitored?\n- Does the dashboard snapshot show unexpected panel states or missing data?\n\n### Step 7: Summarize Findings\n\nAfter completing Steps 1-6, synthesize the findings into a clear diagnostic\nsummary for the user.\n\nStructure the summary as:\n\n```\nService: \u003Cservice-name>\nTime window: \u003Cfrom> to \u003Cto>\nIncident start: \u003Ctimestamp from error rate onset>\n\nError signal:\n  - Error rate: \u003Ctrend description, not fabricated value>\n  - Status codes: \u003Cwhich codes are elevated>\n\nLatency signal:\n  - P95 latency: \u003Ctrend description>\n  - Latency onset: \u003Cbefore\u002Fafter\u002Fsame time as errors>\n\nLog evidence:\n  - Error pattern: \u003Crecurring message or exception>\n  - First occurrence: \u003Ctimestamp>\n  - Frequency: \u003Chow often in the window>\n\nRelated resources:\n  - Firing alerts: \u003Cnames or \"none found\">\n  - Relevant dashboards: \u003Cnames or UIDs>\n\nLikely root cause:\n  - \u003CPrimary hypothesis based on all signals>\n\nRecommended next actions:\n  1. \u003CSpecific action — check dependency, review deploy, inspect resource usage>\n  2. \u003CAdditional action>\n```\n\nUse `-o graph` for any visualizations shared with the user. Use `-o json` for\ndata retrieved for your own analysis.\n\n---\n\n## Example Scenarios\n\nFor complete end-to-end command sequences mapped to the steps above, see\n[`references\u002Fexample-scenarios.md`](references\u002Fexample-scenarios.md):\n\n- **Scenario 1: HTTP 500 error spike** - error rate trend, status-code\n  breakdown, log correlation\n- **Scenario 2: Latency degradation** - P95 trend, per-endpoint breakdown,\n  dependency latency\n- **Scenario 3: Service down \u002F no data** - `up` checks, `absent()`, crash\n  signals in logs\n\nRead the matching scenario when starting an investigation of that shape;\notherwise follow the numbered workflow directly.\n\n---\n\n## References\n\n- [`references\u002Fexample-scenarios.md`](references\u002Fexample-scenarios.md) - Full\n  command sequences for the three common scenarios (error spike, latency\n  degradation, service down).\n\n- [`references\u002Ferror-recovery.md`](references\u002Ferror-recovery.md) — Recovery\n  patterns for auth errors (401\u002F403), datasource not found, empty results,\n  query timeouts, and malformed PromQL\u002FLogQL syntax.\n\n- [`references\u002Fquery-patterns.md`](references\u002Fquery-patterns.md) — Advanced\n  query patterns for Prometheus and Loki datasources, including time range\n  formats, label\u002Fmetadata discovery workflows, output format reference, Loki\n  series limits, and indexed vs structured-metadata vs parsed label rules.\n\n- [`references\u002Ftraceql-patterns.md`](references\u002Ftraceql-patterns.md) — TraceQL\n  query patterns for Tempo trace search, attribute scoping rules, and the\n  distinction between `traces query` and `traces get`.\n",{"data":35,"body":36},{"name":4,"description":6},{"type":37,"children":38},"root",[39,47,53,60,74,176,182,189,202,524,533,827,840,996,1002,1007,1347,1354,1699,1732,1738,1743,2193,2201,2518,2523,2529,2534,2969,2976,3252,3257,3263,3268,3680,3688,4147,4210,4354,4359,4384,4390,4395,4786,4812,4851,4907,4920,4925,5032,5068,5085,5091,5096,5332,5339,5344,5798,5803,5826,5832,5837,5842,5852,5871,5875,5881,5896,5944,5949,5952,5958,6028],{"type":40,"tag":41,"props":42,"children":43},"element","h1",{"id":4},[44],{"type":45,"value":46},"text","Debug with Grafana",{"type":40,"tag":48,"props":49,"children":50},"p",{},[51],{"type":45,"value":52},"A structured 7-step diagnostic workflow for debugging application issues using\nPrometheus metrics, Loki logs, and Grafana resources. Follow steps in order —\neach step informs the next.",{"type":40,"tag":54,"props":55,"children":57},"h2",{"id":56},"prerequisites",[58],{"type":45,"value":59},"Prerequisites",{"type":40,"tag":48,"props":61,"children":62},{},[63,65,72],{"type":45,"value":64},"gcx must be installed and configured with a valid context before running\nany commands. If not configured, use the ",{"type":40,"tag":66,"props":67,"children":69},"code",{"className":68},[],[70],{"type":45,"value":71},"setup-gcx",{"type":45,"value":73}," skill first:",{"type":40,"tag":75,"props":76,"children":81},"pre",{"className":77,"code":78,"language":79,"meta":80,"style":80},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# Verify configuration\ngcx config view\n\n# Switch context if needed\ngcx config use-context \u003Ccontext-name>\n","bash","",[82],{"type":40,"tag":66,"props":83,"children":84},{"__ignoreMap":80},[85,97,118,128,137],{"type":40,"tag":86,"props":87,"children":90},"span",{"class":88,"line":89},"line",1,[91],{"type":40,"tag":86,"props":92,"children":94},{"style":93},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[95],{"type":45,"value":96},"# Verify configuration\n",{"type":40,"tag":86,"props":98,"children":100},{"class":88,"line":99},2,[101,107,113],{"type":40,"tag":86,"props":102,"children":104},{"style":103},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[105],{"type":45,"value":106},"gcx",{"type":40,"tag":86,"props":108,"children":110},{"style":109},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[111],{"type":45,"value":112}," config",{"type":40,"tag":86,"props":114,"children":115},{"style":109},[116],{"type":45,"value":117}," view\n",{"type":40,"tag":86,"props":119,"children":121},{"class":88,"line":120},3,[122],{"type":40,"tag":86,"props":123,"children":125},{"emptyLinePlaceholder":124},true,[126],{"type":45,"value":127},"\n",{"type":40,"tag":86,"props":129,"children":131},{"class":88,"line":130},4,[132],{"type":40,"tag":86,"props":133,"children":134},{"style":93},[135],{"type":45,"value":136},"# Switch context if needed\n",{"type":40,"tag":86,"props":138,"children":140},{"class":88,"line":139},5,[141,145,149,154,160,165,171],{"type":40,"tag":86,"props":142,"children":143},{"style":103},[144],{"type":45,"value":106},{"type":40,"tag":86,"props":146,"children":147},{"style":109},[148],{"type":45,"value":112},{"type":40,"tag":86,"props":150,"children":151},{"style":109},[152],{"type":45,"value":153}," use-context",{"type":40,"tag":86,"props":155,"children":157},{"style":156},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[158],{"type":45,"value":159}," \u003C",{"type":40,"tag":86,"props":161,"children":162},{"style":109},[163],{"type":45,"value":164},"context-nam",{"type":40,"tag":86,"props":166,"children":168},{"style":167},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[169],{"type":45,"value":170},"e",{"type":40,"tag":86,"props":172,"children":173},{"style":156},[174],{"type":45,"value":175},">\n",{"type":40,"tag":54,"props":177,"children":179},{"id":178},"diagnostic-workflow",[180],{"type":45,"value":181},"Diagnostic Workflow",{"type":40,"tag":183,"props":184,"children":186},"h3",{"id":185},"step-1-discover-datasources",[187],{"type":45,"value":188},"Step 1: Discover Datasources",{"type":40,"tag":48,"props":190,"children":191},{},[192,194,200],{"type":45,"value":193},"List all available datasources to identify Prometheus and Loki UIDs. All\nsubsequent query commands require a datasource UID via ",{"type":40,"tag":66,"props":195,"children":197},{"className":196},[],[198],{"type":45,"value":199},"-d \u003Cuid>",{"type":45,"value":201},".",{"type":40,"tag":75,"props":203,"children":205},{"className":77,"code":204,"language":79,"meta":80,"style":80},"# List all datasources\ngcx datasources list -o json\n\n# Filter by type for scripting\ngcx datasources list -t prometheus -o json\ngcx datasources list -t loki -o json\n\n# Capture UIDs for use in subsequent steps\nPROM_UID=$(gcx datasources list -t prometheus -o json 2>\u002Fdev\u002Fnull | \\\n  python3 -c \"import json,sys; print(json.load(sys.stdin)['datasources'][0]['uid'])\")\nLOKI_UID=$(gcx datasources list -t loki -o json 2>\u002Fdev\u002Fnull | \\\n  python3 -c \"import json,sys; print(json.load(sys.stdin)['datasources'][0]['uid'])\")\n",[206],{"type":40,"tag":66,"props":207,"children":208},{"__ignoreMap":80},[209,217,244,251,259,292,325,333,342,405,439,496],{"type":40,"tag":86,"props":210,"children":211},{"class":88,"line":89},[212],{"type":40,"tag":86,"props":213,"children":214},{"style":93},[215],{"type":45,"value":216},"# List all datasources\n",{"type":40,"tag":86,"props":218,"children":219},{"class":88,"line":99},[220,224,229,234,239],{"type":40,"tag":86,"props":221,"children":222},{"style":103},[223],{"type":45,"value":106},{"type":40,"tag":86,"props":225,"children":226},{"style":109},[227],{"type":45,"value":228}," datasources",{"type":40,"tag":86,"props":230,"children":231},{"style":109},[232],{"type":45,"value":233}," list",{"type":40,"tag":86,"props":235,"children":236},{"style":109},[237],{"type":45,"value":238}," -o",{"type":40,"tag":86,"props":240,"children":241},{"style":109},[242],{"type":45,"value":243}," json\n",{"type":40,"tag":86,"props":245,"children":246},{"class":88,"line":120},[247],{"type":40,"tag":86,"props":248,"children":249},{"emptyLinePlaceholder":124},[250],{"type":45,"value":127},{"type":40,"tag":86,"props":252,"children":253},{"class":88,"line":130},[254],{"type":40,"tag":86,"props":255,"children":256},{"style":93},[257],{"type":45,"value":258},"# Filter by type for scripting\n",{"type":40,"tag":86,"props":260,"children":261},{"class":88,"line":139},[262,266,270,274,279,284,288],{"type":40,"tag":86,"props":263,"children":264},{"style":103},[265],{"type":45,"value":106},{"type":40,"tag":86,"props":267,"children":268},{"style":109},[269],{"type":45,"value":228},{"type":40,"tag":86,"props":271,"children":272},{"style":109},[273],{"type":45,"value":233},{"type":40,"tag":86,"props":275,"children":276},{"style":109},[277],{"type":45,"value":278}," -t",{"type":40,"tag":86,"props":280,"children":281},{"style":109},[282],{"type":45,"value":283}," prometheus",{"type":40,"tag":86,"props":285,"children":286},{"style":109},[287],{"type":45,"value":238},{"type":40,"tag":86,"props":289,"children":290},{"style":109},[291],{"type":45,"value":243},{"type":40,"tag":86,"props":293,"children":295},{"class":88,"line":294},6,[296,300,304,308,312,317,321],{"type":40,"tag":86,"props":297,"children":298},{"style":103},[299],{"type":45,"value":106},{"type":40,"tag":86,"props":301,"children":302},{"style":109},[303],{"type":45,"value":228},{"type":40,"tag":86,"props":305,"children":306},{"style":109},[307],{"type":45,"value":233},{"type":40,"tag":86,"props":309,"children":310},{"style":109},[311],{"type":45,"value":278},{"type":40,"tag":86,"props":313,"children":314},{"style":109},[315],{"type":45,"value":316}," loki",{"type":40,"tag":86,"props":318,"children":319},{"style":109},[320],{"type":45,"value":238},{"type":40,"tag":86,"props":322,"children":323},{"style":109},[324],{"type":45,"value":243},{"type":40,"tag":86,"props":326,"children":328},{"class":88,"line":327},7,[329],{"type":40,"tag":86,"props":330,"children":331},{"emptyLinePlaceholder":124},[332],{"type":45,"value":127},{"type":40,"tag":86,"props":334,"children":336},{"class":88,"line":335},8,[337],{"type":40,"tag":86,"props":338,"children":339},{"style":93},[340],{"type":45,"value":341},"# Capture UIDs for use in subsequent steps\n",{"type":40,"tag":86,"props":343,"children":345},{"class":88,"line":344},9,[346,351,356,360,364,368,372,376,380,385,390,395,400],{"type":40,"tag":86,"props":347,"children":348},{"style":167},[349],{"type":45,"value":350},"PROM_UID",{"type":40,"tag":86,"props":352,"children":353},{"style":156},[354],{"type":45,"value":355},"=$(",{"type":40,"tag":86,"props":357,"children":358},{"style":103},[359],{"type":45,"value":106},{"type":40,"tag":86,"props":361,"children":362},{"style":109},[363],{"type":45,"value":228},{"type":40,"tag":86,"props":365,"children":366},{"style":109},[367],{"type":45,"value":233},{"type":40,"tag":86,"props":369,"children":370},{"style":109},[371],{"type":45,"value":278},{"type":40,"tag":86,"props":373,"children":374},{"style":109},[375],{"type":45,"value":283},{"type":40,"tag":86,"props":377,"children":378},{"style":109},[379],{"type":45,"value":238},{"type":40,"tag":86,"props":381,"children":382},{"style":109},[383],{"type":45,"value":384}," json",{"type":40,"tag":86,"props":386,"children":387},{"style":156},[388],{"type":45,"value":389}," 2>",{"type":40,"tag":86,"props":391,"children":392},{"style":109},[393],{"type":45,"value":394},"\u002Fdev\u002Fnull",{"type":40,"tag":86,"props":396,"children":397},{"style":156},[398],{"type":45,"value":399}," |",{"type":40,"tag":86,"props":401,"children":402},{"style":167},[403],{"type":45,"value":404}," \\\n",{"type":40,"tag":86,"props":406,"children":408},{"class":88,"line":407},10,[409,414,419,424,429,434],{"type":40,"tag":86,"props":410,"children":411},{"style":103},[412],{"type":45,"value":413},"  python3",{"type":40,"tag":86,"props":415,"children":416},{"style":109},[417],{"type":45,"value":418}," -c",{"type":40,"tag":86,"props":420,"children":421},{"style":156},[422],{"type":45,"value":423}," \"",{"type":40,"tag":86,"props":425,"children":426},{"style":109},[427],{"type":45,"value":428},"import json,sys; print(json.load(sys.stdin)['datasources'][0]['uid'])",{"type":40,"tag":86,"props":430,"children":431},{"style":156},[432],{"type":45,"value":433},"\"",{"type":40,"tag":86,"props":435,"children":436},{"style":156},[437],{"type":45,"value":438},")\n",{"type":40,"tag":86,"props":440,"children":442},{"class":88,"line":441},11,[443,448,452,456,460,464,468,472,476,480,484,488,492],{"type":40,"tag":86,"props":444,"children":445},{"style":167},[446],{"type":45,"value":447},"LOKI_UID",{"type":40,"tag":86,"props":449,"children":450},{"style":156},[451],{"type":45,"value":355},{"type":40,"tag":86,"props":453,"children":454},{"style":103},[455],{"type":45,"value":106},{"type":40,"tag":86,"props":457,"children":458},{"style":109},[459],{"type":45,"value":228},{"type":40,"tag":86,"props":461,"children":462},{"style":109},[463],{"type":45,"value":233},{"type":40,"tag":86,"props":465,"children":466},{"style":109},[467],{"type":45,"value":278},{"type":40,"tag":86,"props":469,"children":470},{"style":109},[471],{"type":45,"value":316},{"type":40,"tag":86,"props":473,"children":474},{"style":109},[475],{"type":45,"value":238},{"type":40,"tag":86,"props":477,"children":478},{"style":109},[479],{"type":45,"value":384},{"type":40,"tag":86,"props":481,"children":482},{"style":156},[483],{"type":45,"value":389},{"type":40,"tag":86,"props":485,"children":486},{"style":109},[487],{"type":45,"value":394},{"type":40,"tag":86,"props":489,"children":490},{"style":156},[491],{"type":45,"value":399},{"type":40,"tag":86,"props":493,"children":494},{"style":167},[495],{"type":45,"value":404},{"type":40,"tag":86,"props":497,"children":499},{"class":88,"line":498},12,[500,504,508,512,516,520],{"type":40,"tag":86,"props":501,"children":502},{"style":103},[503],{"type":45,"value":413},{"type":40,"tag":86,"props":505,"children":506},{"style":109},[507],{"type":45,"value":418},{"type":40,"tag":86,"props":509,"children":510},{"style":156},[511],{"type":45,"value":423},{"type":40,"tag":86,"props":513,"children":514},{"style":109},[515],{"type":45,"value":428},{"type":40,"tag":86,"props":517,"children":518},{"style":156},[519],{"type":45,"value":433},{"type":40,"tag":86,"props":521,"children":522},{"style":156},[523],{"type":45,"value":438},{"type":40,"tag":48,"props":525,"children":526},{},[527],{"type":40,"tag":528,"props":529,"children":530},"strong",{},[531],{"type":45,"value":532},"Expected output shape:",{"type":40,"tag":75,"props":534,"children":538},{"className":535,"code":536,"language":537,"meta":80,"style":80},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"datasources\": [\n    {\"uid\": \"\u003Cuid>\", \"name\": \"\u003Cdisplay-name>\", \"type\": \"prometheus\", ...},\n    {\"uid\": \"\u003Cuid>\", \"name\": \"\u003Cdisplay-name>\", \"type\": \"loki\", ...}\n  ]\n}\n","json",[539],{"type":40,"tag":66,"props":540,"children":541},{"__ignoreMap":80},[542,550,578,699,812,820],{"type":40,"tag":86,"props":543,"children":544},{"class":88,"line":89},[545],{"type":40,"tag":86,"props":546,"children":547},{"style":156},[548],{"type":45,"value":549},"{\n",{"type":40,"tag":86,"props":551,"children":552},{"class":88,"line":99},[553,558,564,568,573],{"type":40,"tag":86,"props":554,"children":555},{"style":156},[556],{"type":45,"value":557},"  \"",{"type":40,"tag":86,"props":559,"children":561},{"style":560},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[562],{"type":45,"value":563},"datasources",{"type":40,"tag":86,"props":565,"children":566},{"style":156},[567],{"type":45,"value":433},{"type":40,"tag":86,"props":569,"children":570},{"style":156},[571],{"type":45,"value":572},":",{"type":40,"tag":86,"props":574,"children":575},{"style":156},[576],{"type":45,"value":577}," [\n",{"type":40,"tag":86,"props":579,"children":580},{"class":88,"line":120},[581,586,590,595,599,603,607,612,616,621,625,630,634,638,642,647,651,655,659,664,668,672,676,681,685,689,694],{"type":40,"tag":86,"props":582,"children":583},{"style":156},[584],{"type":45,"value":585},"    {",{"type":40,"tag":86,"props":587,"children":588},{"style":156},[589],{"type":45,"value":433},{"type":40,"tag":86,"props":591,"children":592},{"style":103},[593],{"type":45,"value":594},"uid",{"type":40,"tag":86,"props":596,"children":597},{"style":156},[598],{"type":45,"value":433},{"type":40,"tag":86,"props":600,"children":601},{"style":156},[602],{"type":45,"value":572},{"type":40,"tag":86,"props":604,"children":605},{"style":156},[606],{"type":45,"value":423},{"type":40,"tag":86,"props":608,"children":609},{"style":109},[610],{"type":45,"value":611},"\u003Cuid>",{"type":40,"tag":86,"props":613,"children":614},{"style":156},[615],{"type":45,"value":433},{"type":40,"tag":86,"props":617,"children":618},{"style":156},[619],{"type":45,"value":620},",",{"type":40,"tag":86,"props":622,"children":623},{"style":156},[624],{"type":45,"value":423},{"type":40,"tag":86,"props":626,"children":627},{"style":103},[628],{"type":45,"value":629},"name",{"type":40,"tag":86,"props":631,"children":632},{"style":156},[633],{"type":45,"value":433},{"type":40,"tag":86,"props":635,"children":636},{"style":156},[637],{"type":45,"value":572},{"type":40,"tag":86,"props":639,"children":640},{"style":156},[641],{"type":45,"value":423},{"type":40,"tag":86,"props":643,"children":644},{"style":109},[645],{"type":45,"value":646},"\u003Cdisplay-name>",{"type":40,"tag":86,"props":648,"children":649},{"style":156},[650],{"type":45,"value":433},{"type":40,"tag":86,"props":652,"children":653},{"style":156},[654],{"type":45,"value":620},{"type":40,"tag":86,"props":656,"children":657},{"style":156},[658],{"type":45,"value":423},{"type":40,"tag":86,"props":660,"children":661},{"style":103},[662],{"type":45,"value":663},"type",{"type":40,"tag":86,"props":665,"children":666},{"style":156},[667],{"type":45,"value":433},{"type":40,"tag":86,"props":669,"children":670},{"style":156},[671],{"type":45,"value":572},{"type":40,"tag":86,"props":673,"children":674},{"style":156},[675],{"type":45,"value":423},{"type":40,"tag":86,"props":677,"children":678},{"style":109},[679],{"type":45,"value":680},"prometheus",{"type":40,"tag":86,"props":682,"children":683},{"style":156},[684],{"type":45,"value":433},{"type":40,"tag":86,"props":686,"children":687},{"style":156},[688],{"type":45,"value":620},{"type":40,"tag":86,"props":690,"children":691},{"style":167},[692],{"type":45,"value":693}," ...",{"type":40,"tag":86,"props":695,"children":696},{"style":156},[697],{"type":45,"value":698},"},\n",{"type":40,"tag":86,"props":700,"children":701},{"class":88,"line":130},[702,706,710,714,718,722,726,730,734,738,742,746,750,754,758,762,766,770,774,778,782,786,790,795,799,803,807],{"type":40,"tag":86,"props":703,"children":704},{"style":156},[705],{"type":45,"value":585},{"type":40,"tag":86,"props":707,"children":708},{"style":156},[709],{"type":45,"value":433},{"type":40,"tag":86,"props":711,"children":712},{"style":103},[713],{"type":45,"value":594},{"type":40,"tag":86,"props":715,"children":716},{"style":156},[717],{"type":45,"value":433},{"type":40,"tag":86,"props":719,"children":720},{"style":156},[721],{"type":45,"value":572},{"type":40,"tag":86,"props":723,"children":724},{"style":156},[725],{"type":45,"value":423},{"type":40,"tag":86,"props":727,"children":728},{"style":109},[729],{"type":45,"value":611},{"type":40,"tag":86,"props":731,"children":732},{"style":156},[733],{"type":45,"value":433},{"type":40,"tag":86,"props":735,"children":736},{"style":156},[737],{"type":45,"value":620},{"type":40,"tag":86,"props":739,"children":740},{"style":156},[741],{"type":45,"value":423},{"type":40,"tag":86,"props":743,"children":744},{"style":103},[745],{"type":45,"value":629},{"type":40,"tag":86,"props":747,"children":748},{"style":156},[749],{"type":45,"value":433},{"type":40,"tag":86,"props":751,"children":752},{"style":156},[753],{"type":45,"value":572},{"type":40,"tag":86,"props":755,"children":756},{"style":156},[757],{"type":45,"value":423},{"type":40,"tag":86,"props":759,"children":760},{"style":109},[761],{"type":45,"value":646},{"type":40,"tag":86,"props":763,"children":764},{"style":156},[765],{"type":45,"value":433},{"type":40,"tag":86,"props":767,"children":768},{"style":156},[769],{"type":45,"value":620},{"type":40,"tag":86,"props":771,"children":772},{"style":156},[773],{"type":45,"value":423},{"type":40,"tag":86,"props":775,"children":776},{"style":103},[777],{"type":45,"value":663},{"type":40,"tag":86,"props":779,"children":780},{"style":156},[781],{"type":45,"value":433},{"type":40,"tag":86,"props":783,"children":784},{"style":156},[785],{"type":45,"value":572},{"type":40,"tag":86,"props":787,"children":788},{"style":156},[789],{"type":45,"value":423},{"type":40,"tag":86,"props":791,"children":792},{"style":109},[793],{"type":45,"value":794},"loki",{"type":40,"tag":86,"props":796,"children":797},{"style":156},[798],{"type":45,"value":433},{"type":40,"tag":86,"props":800,"children":801},{"style":156},[802],{"type":45,"value":620},{"type":40,"tag":86,"props":804,"children":805},{"style":167},[806],{"type":45,"value":693},{"type":40,"tag":86,"props":808,"children":809},{"style":156},[810],{"type":45,"value":811},"}\n",{"type":40,"tag":86,"props":813,"children":814},{"class":88,"line":139},[815],{"type":40,"tag":86,"props":816,"children":817},{"style":156},[818],{"type":45,"value":819},"  ]\n",{"type":40,"tag":86,"props":821,"children":822},{"class":88,"line":294},[823],{"type":40,"tag":86,"props":824,"children":825},{"style":156},[826],{"type":45,"value":811},{"type":40,"tag":48,"props":828,"children":829},{},[830,832,838],{"type":45,"value":831},"If no datasources appear, confirm the context is pointing at the correct\nGrafana instance. See ",{"type":40,"tag":66,"props":833,"children":835},{"className":834},[],[836],{"type":45,"value":837},"references\u002Ferror-recovery.md",{"type":45,"value":839}," for auth and\ndatasource-not-found recovery patterns.",{"type":40,"tag":841,"props":842,"children":843},"blockquote",{},[844,878,983],{"type":40,"tag":48,"props":845,"children":846},{},[847,852,854,860,862,868,870,876],{"type":40,"tag":528,"props":848,"children":849},{},[850],{"type":45,"value":851},"JSON output piping",{"type":45,"value":853},": When piping gcx output through external tools, never\nuse ",{"type":40,"tag":66,"props":855,"children":857},{"className":856},[],[858],{"type":45,"value":859},"2>&1",{"type":45,"value":861}," — gcx writes hints to stderr that break JSON parsers. Use\n",{"type":40,"tag":66,"props":863,"children":865},{"className":864},[],[866],{"type":45,"value":867},"2>\u002Fdev\u002Fnull",{"type":45,"value":869}," to suppress stderr, or use ",{"type":40,"tag":66,"props":871,"children":873},{"className":872},[],[874],{"type":45,"value":875},"--json field1,field2",{"type":45,"value":877}," to select\nfields directly without piping:",{"type":40,"tag":75,"props":879,"children":881},{"className":77,"code":880,"language":79,"meta":80,"style":80},"gcx datasources list -t prometheus --json uid\ngcx metrics query -d \u003Cprom-uid> 'up' --json metric,value\n",[882],{"type":40,"tag":66,"props":883,"children":884},{"__ignoreMap":80},[885,918],{"type":40,"tag":86,"props":886,"children":887},{"class":88,"line":89},[888,892,896,900,904,908,913],{"type":40,"tag":86,"props":889,"children":890},{"style":103},[891],{"type":45,"value":106},{"type":40,"tag":86,"props":893,"children":894},{"style":109},[895],{"type":45,"value":228},{"type":40,"tag":86,"props":897,"children":898},{"style":109},[899],{"type":45,"value":233},{"type":40,"tag":86,"props":901,"children":902},{"style":109},[903],{"type":45,"value":278},{"type":40,"tag":86,"props":905,"children":906},{"style":109},[907],{"type":45,"value":283},{"type":40,"tag":86,"props":909,"children":910},{"style":109},[911],{"type":45,"value":912}," --json",{"type":40,"tag":86,"props":914,"children":915},{"style":109},[916],{"type":45,"value":917}," uid\n",{"type":40,"tag":86,"props":919,"children":920},{"class":88,"line":99},[921,925,930,935,940,944,949,954,959,964,969,974,978],{"type":40,"tag":86,"props":922,"children":923},{"style":103},[924],{"type":45,"value":106},{"type":40,"tag":86,"props":926,"children":927},{"style":109},[928],{"type":45,"value":929}," metrics",{"type":40,"tag":86,"props":931,"children":932},{"style":109},[933],{"type":45,"value":934}," query",{"type":40,"tag":86,"props":936,"children":937},{"style":109},[938],{"type":45,"value":939}," -d",{"type":40,"tag":86,"props":941,"children":942},{"style":156},[943],{"type":45,"value":159},{"type":40,"tag":86,"props":945,"children":946},{"style":109},[947],{"type":45,"value":948},"prom-ui",{"type":40,"tag":86,"props":950,"children":951},{"style":167},[952],{"type":45,"value":953},"d",{"type":40,"tag":86,"props":955,"children":956},{"style":156},[957],{"type":45,"value":958},">",{"type":40,"tag":86,"props":960,"children":961},{"style":156},[962],{"type":45,"value":963}," '",{"type":40,"tag":86,"props":965,"children":966},{"style":109},[967],{"type":45,"value":968},"up",{"type":40,"tag":86,"props":970,"children":971},{"style":156},[972],{"type":45,"value":973},"'",{"type":40,"tag":86,"props":975,"children":976},{"style":109},[977],{"type":45,"value":912},{"type":40,"tag":86,"props":979,"children":980},{"style":109},[981],{"type":45,"value":982}," metric,value\n",{"type":40,"tag":48,"props":984,"children":985},{},[986,988,994],{"type":45,"value":987},"Use ",{"type":40,"tag":66,"props":989,"children":991},{"className":990},[],[992],{"type":45,"value":993},"--json list",{"type":45,"value":995}," to discover available fields for any command.",{"type":40,"tag":183,"props":997,"children":999},{"id":998},"step-2-confirm-data-availability",[1000],{"type":45,"value":1001},"Step 2: Confirm Data Availability",{"type":40,"tag":48,"props":1003,"children":1004},{},[1005],{"type":45,"value":1006},"Before querying specific metrics, confirm the target service is instrumented\nand data is flowing. This avoids wasting time on empty results.",{"type":40,"tag":75,"props":1008,"children":1010},{"className":77,"code":1009,"language":79,"meta":80,"style":80},"# Check that the target service is being scraped\ngcx metrics query -d \u003Cprom-uid> 'up' -o json\n\n# Verify the relevant job label exists\ngcx metrics labels -d \u003Cprom-uid> -l job -o json\n\n# For Loki: confirm log streams exist for the service\ngcx logs labels -d \u003Cloki-uid> -l job -o json\ngcx logs series -d \u003Cloki-uid> -M '{job=\"\u003Cservice-name>\"}' -o json\n\n# Spot-check: confirm uptime metrics are present for the service\ngcx metrics query -d \u003Cprom-uid> 'up{job=\"\u003Cservice-name>\"}' -o json\n",[1011],{"type":40,"tag":66,"props":1012,"children":1013},{"__ignoreMap":80},[1014,1022,1077,1084,1092,1146,1153,1161,1214,1276,1283,1291],{"type":40,"tag":86,"props":1015,"children":1016},{"class":88,"line":89},[1017],{"type":40,"tag":86,"props":1018,"children":1019},{"style":93},[1020],{"type":45,"value":1021},"# Check that the target service is being scraped\n",{"type":40,"tag":86,"props":1023,"children":1024},{"class":88,"line":99},[1025,1029,1033,1037,1041,1045,1049,1053,1057,1061,1065,1069,1073],{"type":40,"tag":86,"props":1026,"children":1027},{"style":103},[1028],{"type":45,"value":106},{"type":40,"tag":86,"props":1030,"children":1031},{"style":109},[1032],{"type":45,"value":929},{"type":40,"tag":86,"props":1034,"children":1035},{"style":109},[1036],{"type":45,"value":934},{"type":40,"tag":86,"props":1038,"children":1039},{"style":109},[1040],{"type":45,"value":939},{"type":40,"tag":86,"props":1042,"children":1043},{"style":156},[1044],{"type":45,"value":159},{"type":40,"tag":86,"props":1046,"children":1047},{"style":109},[1048],{"type":45,"value":948},{"type":40,"tag":86,"props":1050,"children":1051},{"style":167},[1052],{"type":45,"value":953},{"type":40,"tag":86,"props":1054,"children":1055},{"style":156},[1056],{"type":45,"value":958},{"type":40,"tag":86,"props":1058,"children":1059},{"style":156},[1060],{"type":45,"value":963},{"type":40,"tag":86,"props":1062,"children":1063},{"style":109},[1064],{"type":45,"value":968},{"type":40,"tag":86,"props":1066,"children":1067},{"style":156},[1068],{"type":45,"value":973},{"type":40,"tag":86,"props":1070,"children":1071},{"style":109},[1072],{"type":45,"value":238},{"type":40,"tag":86,"props":1074,"children":1075},{"style":109},[1076],{"type":45,"value":243},{"type":40,"tag":86,"props":1078,"children":1079},{"class":88,"line":120},[1080],{"type":40,"tag":86,"props":1081,"children":1082},{"emptyLinePlaceholder":124},[1083],{"type":45,"value":127},{"type":40,"tag":86,"props":1085,"children":1086},{"class":88,"line":130},[1087],{"type":40,"tag":86,"props":1088,"children":1089},{"style":93},[1090],{"type":45,"value":1091},"# Verify the relevant job label exists\n",{"type":40,"tag":86,"props":1093,"children":1094},{"class":88,"line":139},[1095,1099,1103,1108,1112,1116,1120,1124,1128,1133,1138,1142],{"type":40,"tag":86,"props":1096,"children":1097},{"style":103},[1098],{"type":45,"value":106},{"type":40,"tag":86,"props":1100,"children":1101},{"style":109},[1102],{"type":45,"value":929},{"type":40,"tag":86,"props":1104,"children":1105},{"style":109},[1106],{"type":45,"value":1107}," labels",{"type":40,"tag":86,"props":1109,"children":1110},{"style":109},[1111],{"type":45,"value":939},{"type":40,"tag":86,"props":1113,"children":1114},{"style":156},[1115],{"type":45,"value":159},{"type":40,"tag":86,"props":1117,"children":1118},{"style":109},[1119],{"type":45,"value":948},{"type":40,"tag":86,"props":1121,"children":1122},{"style":167},[1123],{"type":45,"value":953},{"type":40,"tag":86,"props":1125,"children":1126},{"style":156},[1127],{"type":45,"value":958},{"type":40,"tag":86,"props":1129,"children":1130},{"style":109},[1131],{"type":45,"value":1132}," -l",{"type":40,"tag":86,"props":1134,"children":1135},{"style":109},[1136],{"type":45,"value":1137}," job",{"type":40,"tag":86,"props":1139,"children":1140},{"style":109},[1141],{"type":45,"value":238},{"type":40,"tag":86,"props":1143,"children":1144},{"style":109},[1145],{"type":45,"value":243},{"type":40,"tag":86,"props":1147,"children":1148},{"class":88,"line":294},[1149],{"type":40,"tag":86,"props":1150,"children":1151},{"emptyLinePlaceholder":124},[1152],{"type":45,"value":127},{"type":40,"tag":86,"props":1154,"children":1155},{"class":88,"line":327},[1156],{"type":40,"tag":86,"props":1157,"children":1158},{"style":93},[1159],{"type":45,"value":1160},"# For Loki: confirm log streams exist for the service\n",{"type":40,"tag":86,"props":1162,"children":1163},{"class":88,"line":335},[1164,1168,1173,1177,1181,1185,1190,1194,1198,1202,1206,1210],{"type":40,"tag":86,"props":1165,"children":1166},{"style":103},[1167],{"type":45,"value":106},{"type":40,"tag":86,"props":1169,"children":1170},{"style":109},[1171],{"type":45,"value":1172}," logs",{"type":40,"tag":86,"props":1174,"children":1175},{"style":109},[1176],{"type":45,"value":1107},{"type":40,"tag":86,"props":1178,"children":1179},{"style":109},[1180],{"type":45,"value":939},{"type":40,"tag":86,"props":1182,"children":1183},{"style":156},[1184],{"type":45,"value":159},{"type":40,"tag":86,"props":1186,"children":1187},{"style":109},[1188],{"type":45,"value":1189},"loki-ui",{"type":40,"tag":86,"props":1191,"children":1192},{"style":167},[1193],{"type":45,"value":953},{"type":40,"tag":86,"props":1195,"children":1196},{"style":156},[1197],{"type":45,"value":958},{"type":40,"tag":86,"props":1199,"children":1200},{"style":109},[1201],{"type":45,"value":1132},{"type":40,"tag":86,"props":1203,"children":1204},{"style":109},[1205],{"type":45,"value":1137},{"type":40,"tag":86,"props":1207,"children":1208},{"style":109},[1209],{"type":45,"value":238},{"type":40,"tag":86,"props":1211,"children":1212},{"style":109},[1213],{"type":45,"value":243},{"type":40,"tag":86,"props":1215,"children":1216},{"class":88,"line":344},[1217,1221,1225,1230,1234,1238,1242,1246,1250,1255,1259,1264,1268,1272],{"type":40,"tag":86,"props":1218,"children":1219},{"style":103},[1220],{"type":45,"value":106},{"type":40,"tag":86,"props":1222,"children":1223},{"style":109},[1224],{"type":45,"value":1172},{"type":40,"tag":86,"props":1226,"children":1227},{"style":109},[1228],{"type":45,"value":1229}," series",{"type":40,"tag":86,"props":1231,"children":1232},{"style":109},[1233],{"type":45,"value":939},{"type":40,"tag":86,"props":1235,"children":1236},{"style":156},[1237],{"type":45,"value":159},{"type":40,"tag":86,"props":1239,"children":1240},{"style":109},[1241],{"type":45,"value":1189},{"type":40,"tag":86,"props":1243,"children":1244},{"style":167},[1245],{"type":45,"value":953},{"type":40,"tag":86,"props":1247,"children":1248},{"style":156},[1249],{"type":45,"value":958},{"type":40,"tag":86,"props":1251,"children":1252},{"style":109},[1253],{"type":45,"value":1254}," -M",{"type":40,"tag":86,"props":1256,"children":1257},{"style":156},[1258],{"type":45,"value":963},{"type":40,"tag":86,"props":1260,"children":1261},{"style":109},[1262],{"type":45,"value":1263},"{job=\"\u003Cservice-name>\"}",{"type":40,"tag":86,"props":1265,"children":1266},{"style":156},[1267],{"type":45,"value":973},{"type":40,"tag":86,"props":1269,"children":1270},{"style":109},[1271],{"type":45,"value":238},{"type":40,"tag":86,"props":1273,"children":1274},{"style":109},[1275],{"type":45,"value":243},{"type":40,"tag":86,"props":1277,"children":1278},{"class":88,"line":407},[1279],{"type":40,"tag":86,"props":1280,"children":1281},{"emptyLinePlaceholder":124},[1282],{"type":45,"value":127},{"type":40,"tag":86,"props":1284,"children":1285},{"class":88,"line":441},[1286],{"type":40,"tag":86,"props":1287,"children":1288},{"style":93},[1289],{"type":45,"value":1290},"# Spot-check: confirm uptime metrics are present for the service\n",{"type":40,"tag":86,"props":1292,"children":1293},{"class":88,"line":498},[1294,1298,1302,1306,1310,1314,1318,1322,1326,1330,1335,1339,1343],{"type":40,"tag":86,"props":1295,"children":1296},{"style":103},[1297],{"type":45,"value":106},{"type":40,"tag":86,"props":1299,"children":1300},{"style":109},[1301],{"type":45,"value":929},{"type":40,"tag":86,"props":1303,"children":1304},{"style":109},[1305],{"type":45,"value":934},{"type":40,"tag":86,"props":1307,"children":1308},{"style":109},[1309],{"type":45,"value":939},{"type":40,"tag":86,"props":1311,"children":1312},{"style":156},[1313],{"type":45,"value":159},{"type":40,"tag":86,"props":1315,"children":1316},{"style":109},[1317],{"type":45,"value":948},{"type":40,"tag":86,"props":1319,"children":1320},{"style":167},[1321],{"type":45,"value":953},{"type":40,"tag":86,"props":1323,"children":1324},{"style":156},[1325],{"type":45,"value":958},{"type":40,"tag":86,"props":1327,"children":1328},{"style":156},[1329],{"type":45,"value":963},{"type":40,"tag":86,"props":1331,"children":1332},{"style":109},[1333],{"type":45,"value":1334},"up{job=\"\u003Cservice-name>\"}",{"type":40,"tag":86,"props":1336,"children":1337},{"style":156},[1338],{"type":45,"value":973},{"type":40,"tag":86,"props":1340,"children":1341},{"style":109},[1342],{"type":45,"value":238},{"type":40,"tag":86,"props":1344,"children":1345},{"style":109},[1346],{"type":45,"value":243},{"type":40,"tag":48,"props":1348,"children":1349},{},[1350],{"type":40,"tag":528,"props":1351,"children":1352},{},[1353],{"type":45,"value":532},{"type":40,"tag":75,"props":1355,"children":1357},{"className":535,"code":1356,"language":537,"meta":80,"style":80},"{\n  \"status\": \"success\",\n  \"data\": {\n    \"resultType\": \"vector\",\n    \"result\": [\n      {\"metric\": {\"__name__\": \"up\", \"job\": \"\u003Cservice-name>\", \"instance\": \"\u003Chost:port>\"}, \"value\": [\u003Ctimestamp>, \"\u003C0-or-1>\"]}\n    ]\n  }\n}\n",[1358],{"type":40,"tag":66,"props":1359,"children":1360},{"__ignoreMap":80},[1361,1368,1406,1431,1469,1493,1676,1684,1692],{"type":40,"tag":86,"props":1362,"children":1363},{"class":88,"line":89},[1364],{"type":40,"tag":86,"props":1365,"children":1366},{"style":156},[1367],{"type":45,"value":549},{"type":40,"tag":86,"props":1369,"children":1370},{"class":88,"line":99},[1371,1375,1380,1384,1388,1392,1397,1401],{"type":40,"tag":86,"props":1372,"children":1373},{"style":156},[1374],{"type":45,"value":557},{"type":40,"tag":86,"props":1376,"children":1377},{"style":560},[1378],{"type":45,"value":1379},"status",{"type":40,"tag":86,"props":1381,"children":1382},{"style":156},[1383],{"type":45,"value":433},{"type":40,"tag":86,"props":1385,"children":1386},{"style":156},[1387],{"type":45,"value":572},{"type":40,"tag":86,"props":1389,"children":1390},{"style":156},[1391],{"type":45,"value":423},{"type":40,"tag":86,"props":1393,"children":1394},{"style":109},[1395],{"type":45,"value":1396},"success",{"type":40,"tag":86,"props":1398,"children":1399},{"style":156},[1400],{"type":45,"value":433},{"type":40,"tag":86,"props":1402,"children":1403},{"style":156},[1404],{"type":45,"value":1405},",\n",{"type":40,"tag":86,"props":1407,"children":1408},{"class":88,"line":120},[1409,1413,1418,1422,1426],{"type":40,"tag":86,"props":1410,"children":1411},{"style":156},[1412],{"type":45,"value":557},{"type":40,"tag":86,"props":1414,"children":1415},{"style":560},[1416],{"type":45,"value":1417},"data",{"type":40,"tag":86,"props":1419,"children":1420},{"style":156},[1421],{"type":45,"value":433},{"type":40,"tag":86,"props":1423,"children":1424},{"style":156},[1425],{"type":45,"value":572},{"type":40,"tag":86,"props":1427,"children":1428},{"style":156},[1429],{"type":45,"value":1430}," {\n",{"type":40,"tag":86,"props":1432,"children":1433},{"class":88,"line":130},[1434,1439,1444,1448,1452,1456,1461,1465],{"type":40,"tag":86,"props":1435,"children":1436},{"style":156},[1437],{"type":45,"value":1438},"    \"",{"type":40,"tag":86,"props":1440,"children":1441},{"style":103},[1442],{"type":45,"value":1443},"resultType",{"type":40,"tag":86,"props":1445,"children":1446},{"style":156},[1447],{"type":45,"value":433},{"type":40,"tag":86,"props":1449,"children":1450},{"style":156},[1451],{"type":45,"value":572},{"type":40,"tag":86,"props":1453,"children":1454},{"style":156},[1455],{"type":45,"value":423},{"type":40,"tag":86,"props":1457,"children":1458},{"style":109},[1459],{"type":45,"value":1460},"vector",{"type":40,"tag":86,"props":1462,"children":1463},{"style":156},[1464],{"type":45,"value":433},{"type":40,"tag":86,"props":1466,"children":1467},{"style":156},[1468],{"type":45,"value":1405},{"type":40,"tag":86,"props":1470,"children":1471},{"class":88,"line":139},[1472,1476,1481,1485,1489],{"type":40,"tag":86,"props":1473,"children":1474},{"style":156},[1475],{"type":45,"value":1438},{"type":40,"tag":86,"props":1477,"children":1478},{"style":103},[1479],{"type":45,"value":1480},"result",{"type":40,"tag":86,"props":1482,"children":1483},{"style":156},[1484],{"type":45,"value":433},{"type":40,"tag":86,"props":1486,"children":1487},{"style":156},[1488],{"type":45,"value":572},{"type":40,"tag":86,"props":1490,"children":1491},{"style":156},[1492],{"type":45,"value":577},{"type":40,"tag":86,"props":1494,"children":1495},{"class":88,"line":294},[1496,1501,1505,1511,1515,1519,1524,1528,1534,1538,1542,1546,1550,1554,1558,1562,1567,1571,1575,1579,1584,1588,1592,1596,1601,1605,1609,1613,1618,1622,1627,1631,1636,1640,1644,1649,1654,1658,1662,1667,1671],{"type":40,"tag":86,"props":1497,"children":1498},{"style":156},[1499],{"type":45,"value":1500},"      {",{"type":40,"tag":86,"props":1502,"children":1503},{"style":156},[1504],{"type":45,"value":433},{"type":40,"tag":86,"props":1506,"children":1508},{"style":1507},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[1509],{"type":45,"value":1510},"metric",{"type":40,"tag":86,"props":1512,"children":1513},{"style":156},[1514],{"type":45,"value":433},{"type":40,"tag":86,"props":1516,"children":1517},{"style":156},[1518],{"type":45,"value":572},{"type":40,"tag":86,"props":1520,"children":1521},{"style":156},[1522],{"type":45,"value":1523}," {",{"type":40,"tag":86,"props":1525,"children":1526},{"style":156},[1527],{"type":45,"value":433},{"type":40,"tag":86,"props":1529,"children":1531},{"style":1530},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[1532],{"type":45,"value":1533},"__name__",{"type":40,"tag":86,"props":1535,"children":1536},{"style":156},[1537],{"type":45,"value":433},{"type":40,"tag":86,"props":1539,"children":1540},{"style":156},[1541],{"type":45,"value":572},{"type":40,"tag":86,"props":1543,"children":1544},{"style":156},[1545],{"type":45,"value":423},{"type":40,"tag":86,"props":1547,"children":1548},{"style":109},[1549],{"type":45,"value":968},{"type":40,"tag":86,"props":1551,"children":1552},{"style":156},[1553],{"type":45,"value":433},{"type":40,"tag":86,"props":1555,"children":1556},{"style":156},[1557],{"type":45,"value":620},{"type":40,"tag":86,"props":1559,"children":1560},{"style":156},[1561],{"type":45,"value":423},{"type":40,"tag":86,"props":1563,"children":1564},{"style":1530},[1565],{"type":45,"value":1566},"job",{"type":40,"tag":86,"props":1568,"children":1569},{"style":156},[1570],{"type":45,"value":433},{"type":40,"tag":86,"props":1572,"children":1573},{"style":156},[1574],{"type":45,"value":572},{"type":40,"tag":86,"props":1576,"children":1577},{"style":156},[1578],{"type":45,"value":423},{"type":40,"tag":86,"props":1580,"children":1581},{"style":109},[1582],{"type":45,"value":1583},"\u003Cservice-name>",{"type":40,"tag":86,"props":1585,"children":1586},{"style":156},[1587],{"type":45,"value":433},{"type":40,"tag":86,"props":1589,"children":1590},{"style":156},[1591],{"type":45,"value":620},{"type":40,"tag":86,"props":1593,"children":1594},{"style":156},[1595],{"type":45,"value":423},{"type":40,"tag":86,"props":1597,"children":1598},{"style":1530},[1599],{"type":45,"value":1600},"instance",{"type":40,"tag":86,"props":1602,"children":1603},{"style":156},[1604],{"type":45,"value":433},{"type":40,"tag":86,"props":1606,"children":1607},{"style":156},[1608],{"type":45,"value":572},{"type":40,"tag":86,"props":1610,"children":1611},{"style":156},[1612],{"type":45,"value":423},{"type":40,"tag":86,"props":1614,"children":1615},{"style":109},[1616],{"type":45,"value":1617},"\u003Chost:port>",{"type":40,"tag":86,"props":1619,"children":1620},{"style":156},[1621],{"type":45,"value":433},{"type":40,"tag":86,"props":1623,"children":1624},{"style":156},[1625],{"type":45,"value":1626},"},",{"type":40,"tag":86,"props":1628,"children":1629},{"style":156},[1630],{"type":45,"value":423},{"type":40,"tag":86,"props":1632,"children":1633},{"style":1507},[1634],{"type":45,"value":1635},"value",{"type":40,"tag":86,"props":1637,"children":1638},{"style":156},[1639],{"type":45,"value":433},{"type":40,"tag":86,"props":1641,"children":1642},{"style":156},[1643],{"type":45,"value":572},{"type":40,"tag":86,"props":1645,"children":1646},{"style":156},[1647],{"type":45,"value":1648}," [",{"type":40,"tag":86,"props":1650,"children":1651},{"style":167},[1652],{"type":45,"value":1653},"\u003Ctimestamp>",{"type":40,"tag":86,"props":1655,"children":1656},{"style":156},[1657],{"type":45,"value":620},{"type":40,"tag":86,"props":1659,"children":1660},{"style":156},[1661],{"type":45,"value":423},{"type":40,"tag":86,"props":1663,"children":1664},{"style":109},[1665],{"type":45,"value":1666},"\u003C0-or-1>",{"type":40,"tag":86,"props":1668,"children":1669},{"style":156},[1670],{"type":45,"value":433},{"type":40,"tag":86,"props":1672,"children":1673},{"style":156},[1674],{"type":45,"value":1675},"]}\n",{"type":40,"tag":86,"props":1677,"children":1678},{"class":88,"line":327},[1679],{"type":40,"tag":86,"props":1680,"children":1681},{"style":156},[1682],{"type":45,"value":1683},"    ]\n",{"type":40,"tag":86,"props":1685,"children":1686},{"class":88,"line":335},[1687],{"type":40,"tag":86,"props":1688,"children":1689},{"style":156},[1690],{"type":45,"value":1691},"  }\n",{"type":40,"tag":86,"props":1693,"children":1694},{"class":88,"line":344},[1695],{"type":40,"tag":86,"props":1696,"children":1697},{"style":156},[1698],{"type":45,"value":811},{"type":40,"tag":48,"props":1700,"children":1701},{},[1702,1704,1709,1711,1717,1719,1724,1726,1731],{"type":45,"value":1703},"A ",{"type":40,"tag":66,"props":1705,"children":1707},{"className":1706},[],[1708],{"type":45,"value":1635},{"type":45,"value":1710}," of ",{"type":40,"tag":66,"props":1712,"children":1714},{"className":1713},[],[1715],{"type":45,"value":1716},"\"0\"",{"type":45,"value":1718}," means the service is down or not being scraped. Empty\n",{"type":40,"tag":66,"props":1720,"children":1722},{"className":1721},[],[1723],{"type":45,"value":1480},{"type":45,"value":1725}," array means the metric is absent — see Failure Mode 3 in\n",{"type":40,"tag":66,"props":1727,"children":1729},{"className":1728},[],[1730],{"type":45,"value":837},{"type":45,"value":201},{"type":40,"tag":183,"props":1733,"children":1735},{"id":1734},"step-3-query-error-rates",[1736],{"type":45,"value":1737},"Step 3: Query Error Rates",{"type":40,"tag":48,"props":1739,"children":1740},{},[1741],{"type":45,"value":1742},"Query the HTTP 5xx error rate over the relevant time window to establish\nwhether an error spike exists and when it began.",{"type":40,"tag":75,"props":1744,"children":1746},{"className":77,"code":1745,"language":79,"meta":80,"style":80},"# HTTP 5xx error rate (range query for trend)\ngcx metrics query -d \u003Cprom-uid> \\\n  'rate(http_requests_total{job=\"\u003Cservice-name>\",status=~\"5..\"}[5m])' \\\n  --from now-1h --to now --step 1m -o json\n\n# Visualize the trend\ngcx metrics query -d \u003Cprom-uid> \\\n  'rate(http_requests_total{job=\"\u003Cservice-name>\",status=~\"5..\"}[5m])' \\\n  --from now-1h --to now --step 1m -o graph\n\n# Error ratio (errors \u002F total)\ngcx metrics query -d \u003Cprom-uid> \\\n  'rate(http_requests_total{job=\"\u003Cservice-name>\",status=~\"5..\"}[5m]) \u002F rate(http_requests_total{job=\"\u003Cservice-name>\"}[5m])' \\\n  --from now-1h --to now --step 1m -o json\n\n# Break down by status code to identify 500 vs 503 vs 504\ngcx metrics query -d \u003Cprom-uid> \\\n  'sum by(status) (rate(http_requests_total{job=\"\u003Cservice-name>\"}[5m]))' \\\n  --from now-1h --to now --step 1m -o json\n",[1747],{"type":40,"tag":66,"props":1748,"children":1749},{"__ignoreMap":80},[1750,1758,1797,1818,1859,1866,1874,1913,1932,1968,1975,1983,2022,2043,2079,2087,2096,2136,2157],{"type":40,"tag":86,"props":1751,"children":1752},{"class":88,"line":89},[1753],{"type":40,"tag":86,"props":1754,"children":1755},{"style":93},[1756],{"type":45,"value":1757},"# HTTP 5xx error rate (range query for trend)\n",{"type":40,"tag":86,"props":1759,"children":1760},{"class":88,"line":99},[1761,1765,1769,1773,1777,1781,1785,1789,1793],{"type":40,"tag":86,"props":1762,"children":1763},{"style":103},[1764],{"type":45,"value":106},{"type":40,"tag":86,"props":1766,"children":1767},{"style":109},[1768],{"type":45,"value":929},{"type":40,"tag":86,"props":1770,"children":1771},{"style":109},[1772],{"type":45,"value":934},{"type":40,"tag":86,"props":1774,"children":1775},{"style":109},[1776],{"type":45,"value":939},{"type":40,"tag":86,"props":1778,"children":1779},{"style":156},[1780],{"type":45,"value":159},{"type":40,"tag":86,"props":1782,"children":1783},{"style":109},[1784],{"type":45,"value":948},{"type":40,"tag":86,"props":1786,"children":1787},{"style":167},[1788],{"type":45,"value":953},{"type":40,"tag":86,"props":1790,"children":1791},{"style":156},[1792],{"type":45,"value":958},{"type":40,"tag":86,"props":1794,"children":1795},{"style":167},[1796],{"type":45,"value":404},{"type":40,"tag":86,"props":1798,"children":1799},{"class":88,"line":120},[1800,1805,1810,1814],{"type":40,"tag":86,"props":1801,"children":1802},{"style":156},[1803],{"type":45,"value":1804},"  '",{"type":40,"tag":86,"props":1806,"children":1807},{"style":109},[1808],{"type":45,"value":1809},"rate(http_requests_total{job=\"\u003Cservice-name>\",status=~\"5..\"}[5m])",{"type":40,"tag":86,"props":1811,"children":1812},{"style":156},[1813],{"type":45,"value":973},{"type":40,"tag":86,"props":1815,"children":1816},{"style":167},[1817],{"type":45,"value":404},{"type":40,"tag":86,"props":1819,"children":1820},{"class":88,"line":130},[1821,1826,1831,1836,1841,1846,1851,1855],{"type":40,"tag":86,"props":1822,"children":1823},{"style":109},[1824],{"type":45,"value":1825},"  --from",{"type":40,"tag":86,"props":1827,"children":1828},{"style":109},[1829],{"type":45,"value":1830}," now-1h",{"type":40,"tag":86,"props":1832,"children":1833},{"style":109},[1834],{"type":45,"value":1835}," --to",{"type":40,"tag":86,"props":1837,"children":1838},{"style":109},[1839],{"type":45,"value":1840}," now",{"type":40,"tag":86,"props":1842,"children":1843},{"style":109},[1844],{"type":45,"value":1845}," --step",{"type":40,"tag":86,"props":1847,"children":1848},{"style":109},[1849],{"type":45,"value":1850}," 1m",{"type":40,"tag":86,"props":1852,"children":1853},{"style":109},[1854],{"type":45,"value":238},{"type":40,"tag":86,"props":1856,"children":1857},{"style":109},[1858],{"type":45,"value":243},{"type":40,"tag":86,"props":1860,"children":1861},{"class":88,"line":139},[1862],{"type":40,"tag":86,"props":1863,"children":1864},{"emptyLinePlaceholder":124},[1865],{"type":45,"value":127},{"type":40,"tag":86,"props":1867,"children":1868},{"class":88,"line":294},[1869],{"type":40,"tag":86,"props":1870,"children":1871},{"style":93},[1872],{"type":45,"value":1873},"# Visualize the trend\n",{"type":40,"tag":86,"props":1875,"children":1876},{"class":88,"line":327},[1877,1881,1885,1889,1893,1897,1901,1905,1909],{"type":40,"tag":86,"props":1878,"children":1879},{"style":103},[1880],{"type":45,"value":106},{"type":40,"tag":86,"props":1882,"children":1883},{"style":109},[1884],{"type":45,"value":929},{"type":40,"tag":86,"props":1886,"children":1887},{"style":109},[1888],{"type":45,"value":934},{"type":40,"tag":86,"props":1890,"children":1891},{"style":109},[1892],{"type":45,"value":939},{"type":40,"tag":86,"props":1894,"children":1895},{"style":156},[1896],{"type":45,"value":159},{"type":40,"tag":86,"props":1898,"children":1899},{"style":109},[1900],{"type":45,"value":948},{"type":40,"tag":86,"props":1902,"children":1903},{"style":167},[1904],{"type":45,"value":953},{"type":40,"tag":86,"props":1906,"children":1907},{"style":156},[1908],{"type":45,"value":958},{"type":40,"tag":86,"props":1910,"children":1911},{"style":167},[1912],{"type":45,"value":404},{"type":40,"tag":86,"props":1914,"children":1915},{"class":88,"line":335},[1916,1920,1924,1928],{"type":40,"tag":86,"props":1917,"children":1918},{"style":156},[1919],{"type":45,"value":1804},{"type":40,"tag":86,"props":1921,"children":1922},{"style":109},[1923],{"type":45,"value":1809},{"type":40,"tag":86,"props":1925,"children":1926},{"style":156},[1927],{"type":45,"value":973},{"type":40,"tag":86,"props":1929,"children":1930},{"style":167},[1931],{"type":45,"value":404},{"type":40,"tag":86,"props":1933,"children":1934},{"class":88,"line":344},[1935,1939,1943,1947,1951,1955,1959,1963],{"type":40,"tag":86,"props":1936,"children":1937},{"style":109},[1938],{"type":45,"value":1825},{"type":40,"tag":86,"props":1940,"children":1941},{"style":109},[1942],{"type":45,"value":1830},{"type":40,"tag":86,"props":1944,"children":1945},{"style":109},[1946],{"type":45,"value":1835},{"type":40,"tag":86,"props":1948,"children":1949},{"style":109},[1950],{"type":45,"value":1840},{"type":40,"tag":86,"props":1952,"children":1953},{"style":109},[1954],{"type":45,"value":1845},{"type":40,"tag":86,"props":1956,"children":1957},{"style":109},[1958],{"type":45,"value":1850},{"type":40,"tag":86,"props":1960,"children":1961},{"style":109},[1962],{"type":45,"value":238},{"type":40,"tag":86,"props":1964,"children":1965},{"style":109},[1966],{"type":45,"value":1967}," graph\n",{"type":40,"tag":86,"props":1969,"children":1970},{"class":88,"line":407},[1971],{"type":40,"tag":86,"props":1972,"children":1973},{"emptyLinePlaceholder":124},[1974],{"type":45,"value":127},{"type":40,"tag":86,"props":1976,"children":1977},{"class":88,"line":441},[1978],{"type":40,"tag":86,"props":1979,"children":1980},{"style":93},[1981],{"type":45,"value":1982},"# Error ratio (errors \u002F total)\n",{"type":40,"tag":86,"props":1984,"children":1985},{"class":88,"line":498},[1986,1990,1994,1998,2002,2006,2010,2014,2018],{"type":40,"tag":86,"props":1987,"children":1988},{"style":103},[1989],{"type":45,"value":106},{"type":40,"tag":86,"props":1991,"children":1992},{"style":109},[1993],{"type":45,"value":929},{"type":40,"tag":86,"props":1995,"children":1996},{"style":109},[1997],{"type":45,"value":934},{"type":40,"tag":86,"props":1999,"children":2000},{"style":109},[2001],{"type":45,"value":939},{"type":40,"tag":86,"props":2003,"children":2004},{"style":156},[2005],{"type":45,"value":159},{"type":40,"tag":86,"props":2007,"children":2008},{"style":109},[2009],{"type":45,"value":948},{"type":40,"tag":86,"props":2011,"children":2012},{"style":167},[2013],{"type":45,"value":953},{"type":40,"tag":86,"props":2015,"children":2016},{"style":156},[2017],{"type":45,"value":958},{"type":40,"tag":86,"props":2019,"children":2020},{"style":167},[2021],{"type":45,"value":404},{"type":40,"tag":86,"props":2023,"children":2025},{"class":88,"line":2024},13,[2026,2030,2035,2039],{"type":40,"tag":86,"props":2027,"children":2028},{"style":156},[2029],{"type":45,"value":1804},{"type":40,"tag":86,"props":2031,"children":2032},{"style":109},[2033],{"type":45,"value":2034},"rate(http_requests_total{job=\"\u003Cservice-name>\",status=~\"5..\"}[5m]) \u002F rate(http_requests_total{job=\"\u003Cservice-name>\"}[5m])",{"type":40,"tag":86,"props":2036,"children":2037},{"style":156},[2038],{"type":45,"value":973},{"type":40,"tag":86,"props":2040,"children":2041},{"style":167},[2042],{"type":45,"value":404},{"type":40,"tag":86,"props":2044,"children":2046},{"class":88,"line":2045},14,[2047,2051,2055,2059,2063,2067,2071,2075],{"type":40,"tag":86,"props":2048,"children":2049},{"style":109},[2050],{"type":45,"value":1825},{"type":40,"tag":86,"props":2052,"children":2053},{"style":109},[2054],{"type":45,"value":1830},{"type":40,"tag":86,"props":2056,"children":2057},{"style":109},[2058],{"type":45,"value":1835},{"type":40,"tag":86,"props":2060,"children":2061},{"style":109},[2062],{"type":45,"value":1840},{"type":40,"tag":86,"props":2064,"children":2065},{"style":109},[2066],{"type":45,"value":1845},{"type":40,"tag":86,"props":2068,"children":2069},{"style":109},[2070],{"type":45,"value":1850},{"type":40,"tag":86,"props":2072,"children":2073},{"style":109},[2074],{"type":45,"value":238},{"type":40,"tag":86,"props":2076,"children":2077},{"style":109},[2078],{"type":45,"value":243},{"type":40,"tag":86,"props":2080,"children":2082},{"class":88,"line":2081},15,[2083],{"type":40,"tag":86,"props":2084,"children":2085},{"emptyLinePlaceholder":124},[2086],{"type":45,"value":127},{"type":40,"tag":86,"props":2088,"children":2090},{"class":88,"line":2089},16,[2091],{"type":40,"tag":86,"props":2092,"children":2093},{"style":93},[2094],{"type":45,"value":2095},"# Break down by status code to identify 500 vs 503 vs 504\n",{"type":40,"tag":86,"props":2097,"children":2099},{"class":88,"line":2098},17,[2100,2104,2108,2112,2116,2120,2124,2128,2132],{"type":40,"tag":86,"props":2101,"children":2102},{"style":103},[2103],{"type":45,"value":106},{"type":40,"tag":86,"props":2105,"children":2106},{"style":109},[2107],{"type":45,"value":929},{"type":40,"tag":86,"props":2109,"children":2110},{"style":109},[2111],{"type":45,"value":934},{"type":40,"tag":86,"props":2113,"children":2114},{"style":109},[2115],{"type":45,"value":939},{"type":40,"tag":86,"props":2117,"children":2118},{"style":156},[2119],{"type":45,"value":159},{"type":40,"tag":86,"props":2121,"children":2122},{"style":109},[2123],{"type":45,"value":948},{"type":40,"tag":86,"props":2125,"children":2126},{"style":167},[2127],{"type":45,"value":953},{"type":40,"tag":86,"props":2129,"children":2130},{"style":156},[2131],{"type":45,"value":958},{"type":40,"tag":86,"props":2133,"children":2134},{"style":167},[2135],{"type":45,"value":404},{"type":40,"tag":86,"props":2137,"children":2139},{"class":88,"line":2138},18,[2140,2144,2149,2153],{"type":40,"tag":86,"props":2141,"children":2142},{"style":156},[2143],{"type":45,"value":1804},{"type":40,"tag":86,"props":2145,"children":2146},{"style":109},[2147],{"type":45,"value":2148},"sum by(status) (rate(http_requests_total{job=\"\u003Cservice-name>\"}[5m]))",{"type":40,"tag":86,"props":2150,"children":2151},{"style":156},[2152],{"type":45,"value":973},{"type":40,"tag":86,"props":2154,"children":2155},{"style":167},[2156],{"type":45,"value":404},{"type":40,"tag":86,"props":2158,"children":2160},{"class":88,"line":2159},19,[2161,2165,2169,2173,2177,2181,2185,2189],{"type":40,"tag":86,"props":2162,"children":2163},{"style":109},[2164],{"type":45,"value":1825},{"type":40,"tag":86,"props":2166,"children":2167},{"style":109},[2168],{"type":45,"value":1830},{"type":40,"tag":86,"props":2170,"children":2171},{"style":109},[2172],{"type":45,"value":1835},{"type":40,"tag":86,"props":2174,"children":2175},{"style":109},[2176],{"type":45,"value":1840},{"type":40,"tag":86,"props":2178,"children":2179},{"style":109},[2180],{"type":45,"value":1845},{"type":40,"tag":86,"props":2182,"children":2183},{"style":109},[2184],{"type":45,"value":1850},{"type":40,"tag":86,"props":2186,"children":2187},{"style":109},[2188],{"type":45,"value":238},{"type":40,"tag":86,"props":2190,"children":2191},{"style":109},[2192],{"type":45,"value":243},{"type":40,"tag":48,"props":2194,"children":2195},{},[2196],{"type":40,"tag":528,"props":2197,"children":2198},{},[2199],{"type":45,"value":2200},"Expected output shape (matrix for range queries):",{"type":40,"tag":75,"props":2202,"children":2204},{"className":535,"code":2203,"language":537,"meta":80,"style":80},"{\n  \"status\": \"success\",\n  \"data\": {\n    \"resultType\": \"matrix\",\n    \"result\": [\n      {\n        \"metric\": {\"job\": \"\u003Cservice-name>\", \"status\": \"\u003Ccode>\"},\n        \"values\": [[\u003Ctimestamp>, \"\u003Crate>\"], ...]\n      }\n    ]\n  }\n}\n",[2205],{"type":40,"tag":66,"props":2206,"children":2207},{"__ignoreMap":80},[2208,2215,2250,2273,2309,2332,2340,2429,2489,2497,2504,2511],{"type":40,"tag":86,"props":2209,"children":2210},{"class":88,"line":89},[2211],{"type":40,"tag":86,"props":2212,"children":2213},{"style":156},[2214],{"type":45,"value":549},{"type":40,"tag":86,"props":2216,"children":2217},{"class":88,"line":99},[2218,2222,2226,2230,2234,2238,2242,2246],{"type":40,"tag":86,"props":2219,"children":2220},{"style":156},[2221],{"type":45,"value":557},{"type":40,"tag":86,"props":2223,"children":2224},{"style":560},[2225],{"type":45,"value":1379},{"type":40,"tag":86,"props":2227,"children":2228},{"style":156},[2229],{"type":45,"value":433},{"type":40,"tag":86,"props":2231,"children":2232},{"style":156},[2233],{"type":45,"value":572},{"type":40,"tag":86,"props":2235,"children":2236},{"style":156},[2237],{"type":45,"value":423},{"type":40,"tag":86,"props":2239,"children":2240},{"style":109},[2241],{"type":45,"value":1396},{"type":40,"tag":86,"props":2243,"children":2244},{"style":156},[2245],{"type":45,"value":433},{"type":40,"tag":86,"props":2247,"children":2248},{"style":156},[2249],{"type":45,"value":1405},{"type":40,"tag":86,"props":2251,"children":2252},{"class":88,"line":120},[2253,2257,2261,2265,2269],{"type":40,"tag":86,"props":2254,"children":2255},{"style":156},[2256],{"type":45,"value":557},{"type":40,"tag":86,"props":2258,"children":2259},{"style":560},[2260],{"type":45,"value":1417},{"type":40,"tag":86,"props":2262,"children":2263},{"style":156},[2264],{"type":45,"value":433},{"type":40,"tag":86,"props":2266,"children":2267},{"style":156},[2268],{"type":45,"value":572},{"type":40,"tag":86,"props":2270,"children":2271},{"style":156},[2272],{"type":45,"value":1430},{"type":40,"tag":86,"props":2274,"children":2275},{"class":88,"line":130},[2276,2280,2284,2288,2292,2296,2301,2305],{"type":40,"tag":86,"props":2277,"children":2278},{"style":156},[2279],{"type":45,"value":1438},{"type":40,"tag":86,"props":2281,"children":2282},{"style":103},[2283],{"type":45,"value":1443},{"type":40,"tag":86,"props":2285,"children":2286},{"style":156},[2287],{"type":45,"value":433},{"type":40,"tag":86,"props":2289,"children":2290},{"style":156},[2291],{"type":45,"value":572},{"type":40,"tag":86,"props":2293,"children":2294},{"style":156},[2295],{"type":45,"value":423},{"type":40,"tag":86,"props":2297,"children":2298},{"style":109},[2299],{"type":45,"value":2300},"matrix",{"type":40,"tag":86,"props":2302,"children":2303},{"style":156},[2304],{"type":45,"value":433},{"type":40,"tag":86,"props":2306,"children":2307},{"style":156},[2308],{"type":45,"value":1405},{"type":40,"tag":86,"props":2310,"children":2311},{"class":88,"line":139},[2312,2316,2320,2324,2328],{"type":40,"tag":86,"props":2313,"children":2314},{"style":156},[2315],{"type":45,"value":1438},{"type":40,"tag":86,"props":2317,"children":2318},{"style":103},[2319],{"type":45,"value":1480},{"type":40,"tag":86,"props":2321,"children":2322},{"style":156},[2323],{"type":45,"value":433},{"type":40,"tag":86,"props":2325,"children":2326},{"style":156},[2327],{"type":45,"value":572},{"type":40,"tag":86,"props":2329,"children":2330},{"style":156},[2331],{"type":45,"value":577},{"type":40,"tag":86,"props":2333,"children":2334},{"class":88,"line":294},[2335],{"type":40,"tag":86,"props":2336,"children":2337},{"style":156},[2338],{"type":45,"value":2339},"      {\n",{"type":40,"tag":86,"props":2341,"children":2342},{"class":88,"line":327},[2343,2348,2352,2356,2360,2364,2368,2372,2376,2380,2384,2388,2392,2396,2400,2404,2408,2412,2416,2421,2425],{"type":40,"tag":86,"props":2344,"children":2345},{"style":156},[2346],{"type":45,"value":2347},"        \"",{"type":40,"tag":86,"props":2349,"children":2350},{"style":1507},[2351],{"type":45,"value":1510},{"type":40,"tag":86,"props":2353,"children":2354},{"style":156},[2355],{"type":45,"value":433},{"type":40,"tag":86,"props":2357,"children":2358},{"style":156},[2359],{"type":45,"value":572},{"type":40,"tag":86,"props":2361,"children":2362},{"style":156},[2363],{"type":45,"value":1523},{"type":40,"tag":86,"props":2365,"children":2366},{"style":156},[2367],{"type":45,"value":433},{"type":40,"tag":86,"props":2369,"children":2370},{"style":1530},[2371],{"type":45,"value":1566},{"type":40,"tag":86,"props":2373,"children":2374},{"style":156},[2375],{"type":45,"value":433},{"type":40,"tag":86,"props":2377,"children":2378},{"style":156},[2379],{"type":45,"value":572},{"type":40,"tag":86,"props":2381,"children":2382},{"style":156},[2383],{"type":45,"value":423},{"type":40,"tag":86,"props":2385,"children":2386},{"style":109},[2387],{"type":45,"value":1583},{"type":40,"tag":86,"props":2389,"children":2390},{"style":156},[2391],{"type":45,"value":433},{"type":40,"tag":86,"props":2393,"children":2394},{"style":156},[2395],{"type":45,"value":620},{"type":40,"tag":86,"props":2397,"children":2398},{"style":156},[2399],{"type":45,"value":423},{"type":40,"tag":86,"props":2401,"children":2402},{"style":1530},[2403],{"type":45,"value":1379},{"type":40,"tag":86,"props":2405,"children":2406},{"style":156},[2407],{"type":45,"value":433},{"type":40,"tag":86,"props":2409,"children":2410},{"style":156},[2411],{"type":45,"value":572},{"type":40,"tag":86,"props":2413,"children":2414},{"style":156},[2415],{"type":45,"value":423},{"type":40,"tag":86,"props":2417,"children":2418},{"style":109},[2419],{"type":45,"value":2420},"\u003Ccode>",{"type":40,"tag":86,"props":2422,"children":2423},{"style":156},[2424],{"type":45,"value":433},{"type":40,"tag":86,"props":2426,"children":2427},{"style":156},[2428],{"type":45,"value":698},{"type":40,"tag":86,"props":2430,"children":2431},{"class":88,"line":335},[2432,2436,2441,2445,2449,2454,2458,2462,2466,2471,2475,2480,2484],{"type":40,"tag":86,"props":2433,"children":2434},{"style":156},[2435],{"type":45,"value":2347},{"type":40,"tag":86,"props":2437,"children":2438},{"style":1507},[2439],{"type":45,"value":2440},"values",{"type":40,"tag":86,"props":2442,"children":2443},{"style":156},[2444],{"type":45,"value":433},{"type":40,"tag":86,"props":2446,"children":2447},{"style":156},[2448],{"type":45,"value":572},{"type":40,"tag":86,"props":2450,"children":2451},{"style":156},[2452],{"type":45,"value":2453}," [[",{"type":40,"tag":86,"props":2455,"children":2456},{"style":167},[2457],{"type":45,"value":1653},{"type":40,"tag":86,"props":2459,"children":2460},{"style":156},[2461],{"type":45,"value":620},{"type":40,"tag":86,"props":2463,"children":2464},{"style":156},[2465],{"type":45,"value":423},{"type":40,"tag":86,"props":2467,"children":2468},{"style":109},[2469],{"type":45,"value":2470},"\u003Crate>",{"type":40,"tag":86,"props":2472,"children":2473},{"style":156},[2474],{"type":45,"value":433},{"type":40,"tag":86,"props":2476,"children":2477},{"style":156},[2478],{"type":45,"value":2479},"],",{"type":40,"tag":86,"props":2481,"children":2482},{"style":167},[2483],{"type":45,"value":693},{"type":40,"tag":86,"props":2485,"children":2486},{"style":156},[2487],{"type":45,"value":2488},"]\n",{"type":40,"tag":86,"props":2490,"children":2491},{"class":88,"line":344},[2492],{"type":40,"tag":86,"props":2493,"children":2494},{"style":156},[2495],{"type":45,"value":2496},"      }\n",{"type":40,"tag":86,"props":2498,"children":2499},{"class":88,"line":407},[2500],{"type":40,"tag":86,"props":2501,"children":2502},{"style":156},[2503],{"type":45,"value":1683},{"type":40,"tag":86,"props":2505,"children":2506},{"class":88,"line":441},[2507],{"type":40,"tag":86,"props":2508,"children":2509},{"style":156},[2510],{"type":45,"value":1691},{"type":40,"tag":86,"props":2512,"children":2513},{"class":88,"line":498},[2514],{"type":40,"tag":86,"props":2515,"children":2516},{"style":156},[2517],{"type":45,"value":811},{"type":40,"tag":48,"props":2519,"children":2520},{},[2521],{"type":45,"value":2522},"Note the timestamp where the rate increases — this is the incident start time.\nUse this window in subsequent steps.",{"type":40,"tag":183,"props":2524,"children":2526},{"id":2525},"step-4-query-latency",[2527],{"type":45,"value":2528},"Step 4: Query Latency",{"type":40,"tag":48,"props":2530,"children":2531},{},[2532],{"type":45,"value":2533},"Query request latency to determine whether the service is slow (latency issue)\nor failing fast (error issue). High latency often precedes error spikes.",{"type":40,"tag":75,"props":2535,"children":2537},{"className":77,"code":2536,"language":79,"meta":80,"style":80},"# P50\u002FP95\u002FP99 latency from histogram\ngcx metrics query -d \u003Cprom-uid> \\\n  'histogram_quantile(0.95, rate(http_request_duration_seconds_bucket{job=\"\u003Cservice-name>\"}[5m]))' \\\n  --from now-1h --to now --step 1m -o json\n\n# Visualize P95 latency trend\ngcx metrics query -d \u003Cprom-uid> \\\n  'histogram_quantile(0.95, rate(http_request_duration_seconds_bucket{job=\"\u003Cservice-name>\"}[5m]))' \\\n  --from now-1h --to now --step 1m -o graph\n\n# Average latency as a simpler signal if histograms are unavailable\ngcx metrics query -d \u003Cprom-uid> \\\n  'rate(http_request_duration_seconds_sum{job=\"\u003Cservice-name>\"}[5m]) \u002F rate(http_request_duration_seconds_count{job=\"\u003Cservice-name>\"}[5m])' \\\n  --from now-1h --to now --step 1m -o json\n\n# Latency by endpoint (if label available)\ngcx metrics query -d \u003Cprom-uid> \\\n  'histogram_quantile(0.95, sum by(le, handler) (rate(http_request_duration_seconds_bucket{job=\"\u003Cservice-name>\"}[5m])))' \\\n  --from now-1h --to now --step 1m -o json\n",[2538],{"type":40,"tag":66,"props":2539,"children":2540},{"__ignoreMap":80},[2541,2549,2588,2608,2643,2650,2658,2697,2716,2751,2758,2766,2805,2825,2860,2867,2875,2914,2934],{"type":40,"tag":86,"props":2542,"children":2543},{"class":88,"line":89},[2544],{"type":40,"tag":86,"props":2545,"children":2546},{"style":93},[2547],{"type":45,"value":2548},"# P50\u002FP95\u002FP99 latency from histogram\n",{"type":40,"tag":86,"props":2550,"children":2551},{"class":88,"line":99},[2552,2556,2560,2564,2568,2572,2576,2580,2584],{"type":40,"tag":86,"props":2553,"children":2554},{"style":103},[2555],{"type":45,"value":106},{"type":40,"tag":86,"props":2557,"children":2558},{"style":109},[2559],{"type":45,"value":929},{"type":40,"tag":86,"props":2561,"children":2562},{"style":109},[2563],{"type":45,"value":934},{"type":40,"tag":86,"props":2565,"children":2566},{"style":109},[2567],{"type":45,"value":939},{"type":40,"tag":86,"props":2569,"children":2570},{"style":156},[2571],{"type":45,"value":159},{"type":40,"tag":86,"props":2573,"children":2574},{"style":109},[2575],{"type":45,"value":948},{"type":40,"tag":86,"props":2577,"children":2578},{"style":167},[2579],{"type":45,"value":953},{"type":40,"tag":86,"props":2581,"children":2582},{"style":156},[2583],{"type":45,"value":958},{"type":40,"tag":86,"props":2585,"children":2586},{"style":167},[2587],{"type":45,"value":404},{"type":40,"tag":86,"props":2589,"children":2590},{"class":88,"line":120},[2591,2595,2600,2604],{"type":40,"tag":86,"props":2592,"children":2593},{"style":156},[2594],{"type":45,"value":1804},{"type":40,"tag":86,"props":2596,"children":2597},{"style":109},[2598],{"type":45,"value":2599},"histogram_quantile(0.95, rate(http_request_duration_seconds_bucket{job=\"\u003Cservice-name>\"}[5m]))",{"type":40,"tag":86,"props":2601,"children":2602},{"style":156},[2603],{"type":45,"value":973},{"type":40,"tag":86,"props":2605,"children":2606},{"style":167},[2607],{"type":45,"value":404},{"type":40,"tag":86,"props":2609,"children":2610},{"class":88,"line":130},[2611,2615,2619,2623,2627,2631,2635,2639],{"type":40,"tag":86,"props":2612,"children":2613},{"style":109},[2614],{"type":45,"value":1825},{"type":40,"tag":86,"props":2616,"children":2617},{"style":109},[2618],{"type":45,"value":1830},{"type":40,"tag":86,"props":2620,"children":2621},{"style":109},[2622],{"type":45,"value":1835},{"type":40,"tag":86,"props":2624,"children":2625},{"style":109},[2626],{"type":45,"value":1840},{"type":40,"tag":86,"props":2628,"children":2629},{"style":109},[2630],{"type":45,"value":1845},{"type":40,"tag":86,"props":2632,"children":2633},{"style":109},[2634],{"type":45,"value":1850},{"type":40,"tag":86,"props":2636,"children":2637},{"style":109},[2638],{"type":45,"value":238},{"type":40,"tag":86,"props":2640,"children":2641},{"style":109},[2642],{"type":45,"value":243},{"type":40,"tag":86,"props":2644,"children":2645},{"class":88,"line":139},[2646],{"type":40,"tag":86,"props":2647,"children":2648},{"emptyLinePlaceholder":124},[2649],{"type":45,"value":127},{"type":40,"tag":86,"props":2651,"children":2652},{"class":88,"line":294},[2653],{"type":40,"tag":86,"props":2654,"children":2655},{"style":93},[2656],{"type":45,"value":2657},"# Visualize P95 latency trend\n",{"type":40,"tag":86,"props":2659,"children":2660},{"class":88,"line":327},[2661,2665,2669,2673,2677,2681,2685,2689,2693],{"type":40,"tag":86,"props":2662,"children":2663},{"style":103},[2664],{"type":45,"value":106},{"type":40,"tag":86,"props":2666,"children":2667},{"style":109},[2668],{"type":45,"value":929},{"type":40,"tag":86,"props":2670,"children":2671},{"style":109},[2672],{"type":45,"value":934},{"type":40,"tag":86,"props":2674,"children":2675},{"style":109},[2676],{"type":45,"value":939},{"type":40,"tag":86,"props":2678,"children":2679},{"style":156},[2680],{"type":45,"value":159},{"type":40,"tag":86,"props":2682,"children":2683},{"style":109},[2684],{"type":45,"value":948},{"type":40,"tag":86,"props":2686,"children":2687},{"style":167},[2688],{"type":45,"value":953},{"type":40,"tag":86,"props":2690,"children":2691},{"style":156},[2692],{"type":45,"value":958},{"type":40,"tag":86,"props":2694,"children":2695},{"style":167},[2696],{"type":45,"value":404},{"type":40,"tag":86,"props":2698,"children":2699},{"class":88,"line":335},[2700,2704,2708,2712],{"type":40,"tag":86,"props":2701,"children":2702},{"style":156},[2703],{"type":45,"value":1804},{"type":40,"tag":86,"props":2705,"children":2706},{"style":109},[2707],{"type":45,"value":2599},{"type":40,"tag":86,"props":2709,"children":2710},{"style":156},[2711],{"type":45,"value":973},{"type":40,"tag":86,"props":2713,"children":2714},{"style":167},[2715],{"type":45,"value":404},{"type":40,"tag":86,"props":2717,"children":2718},{"class":88,"line":344},[2719,2723,2727,2731,2735,2739,2743,2747],{"type":40,"tag":86,"props":2720,"children":2721},{"style":109},[2722],{"type":45,"value":1825},{"type":40,"tag":86,"props":2724,"children":2725},{"style":109},[2726],{"type":45,"value":1830},{"type":40,"tag":86,"props":2728,"children":2729},{"style":109},[2730],{"type":45,"value":1835},{"type":40,"tag":86,"props":2732,"children":2733},{"style":109},[2734],{"type":45,"value":1840},{"type":40,"tag":86,"props":2736,"children":2737},{"style":109},[2738],{"type":45,"value":1845},{"type":40,"tag":86,"props":2740,"children":2741},{"style":109},[2742],{"type":45,"value":1850},{"type":40,"tag":86,"props":2744,"children":2745},{"style":109},[2746],{"type":45,"value":238},{"type":40,"tag":86,"props":2748,"children":2749},{"style":109},[2750],{"type":45,"value":1967},{"type":40,"tag":86,"props":2752,"children":2753},{"class":88,"line":407},[2754],{"type":40,"tag":86,"props":2755,"children":2756},{"emptyLinePlaceholder":124},[2757],{"type":45,"value":127},{"type":40,"tag":86,"props":2759,"children":2760},{"class":88,"line":441},[2761],{"type":40,"tag":86,"props":2762,"children":2763},{"style":93},[2764],{"type":45,"value":2765},"# Average latency as a simpler signal if histograms are unavailable\n",{"type":40,"tag":86,"props":2767,"children":2768},{"class":88,"line":498},[2769,2773,2777,2781,2785,2789,2793,2797,2801],{"type":40,"tag":86,"props":2770,"children":2771},{"style":103},[2772],{"type":45,"value":106},{"type":40,"tag":86,"props":2774,"children":2775},{"style":109},[2776],{"type":45,"value":929},{"type":40,"tag":86,"props":2778,"children":2779},{"style":109},[2780],{"type":45,"value":934},{"type":40,"tag":86,"props":2782,"children":2783},{"style":109},[2784],{"type":45,"value":939},{"type":40,"tag":86,"props":2786,"children":2787},{"style":156},[2788],{"type":45,"value":159},{"type":40,"tag":86,"props":2790,"children":2791},{"style":109},[2792],{"type":45,"value":948},{"type":40,"tag":86,"props":2794,"children":2795},{"style":167},[2796],{"type":45,"value":953},{"type":40,"tag":86,"props":2798,"children":2799},{"style":156},[2800],{"type":45,"value":958},{"type":40,"tag":86,"props":2802,"children":2803},{"style":167},[2804],{"type":45,"value":404},{"type":40,"tag":86,"props":2806,"children":2807},{"class":88,"line":2024},[2808,2812,2817,2821],{"type":40,"tag":86,"props":2809,"children":2810},{"style":156},[2811],{"type":45,"value":1804},{"type":40,"tag":86,"props":2813,"children":2814},{"style":109},[2815],{"type":45,"value":2816},"rate(http_request_duration_seconds_sum{job=\"\u003Cservice-name>\"}[5m]) \u002F rate(http_request_duration_seconds_count{job=\"\u003Cservice-name>\"}[5m])",{"type":40,"tag":86,"props":2818,"children":2819},{"style":156},[2820],{"type":45,"value":973},{"type":40,"tag":86,"props":2822,"children":2823},{"style":167},[2824],{"type":45,"value":404},{"type":40,"tag":86,"props":2826,"children":2827},{"class":88,"line":2045},[2828,2832,2836,2840,2844,2848,2852,2856],{"type":40,"tag":86,"props":2829,"children":2830},{"style":109},[2831],{"type":45,"value":1825},{"type":40,"tag":86,"props":2833,"children":2834},{"style":109},[2835],{"type":45,"value":1830},{"type":40,"tag":86,"props":2837,"children":2838},{"style":109},[2839],{"type":45,"value":1835},{"type":40,"tag":86,"props":2841,"children":2842},{"style":109},[2843],{"type":45,"value":1840},{"type":40,"tag":86,"props":2845,"children":2846},{"style":109},[2847],{"type":45,"value":1845},{"type":40,"tag":86,"props":2849,"children":2850},{"style":109},[2851],{"type":45,"value":1850},{"type":40,"tag":86,"props":2853,"children":2854},{"style":109},[2855],{"type":45,"value":238},{"type":40,"tag":86,"props":2857,"children":2858},{"style":109},[2859],{"type":45,"value":243},{"type":40,"tag":86,"props":2861,"children":2862},{"class":88,"line":2081},[2863],{"type":40,"tag":86,"props":2864,"children":2865},{"emptyLinePlaceholder":124},[2866],{"type":45,"value":127},{"type":40,"tag":86,"props":2868,"children":2869},{"class":88,"line":2089},[2870],{"type":40,"tag":86,"props":2871,"children":2872},{"style":93},[2873],{"type":45,"value":2874},"# Latency by endpoint (if label available)\n",{"type":40,"tag":86,"props":2876,"children":2877},{"class":88,"line":2098},[2878,2882,2886,2890,2894,2898,2902,2906,2910],{"type":40,"tag":86,"props":2879,"children":2880},{"style":103},[2881],{"type":45,"value":106},{"type":40,"tag":86,"props":2883,"children":2884},{"style":109},[2885],{"type":45,"value":929},{"type":40,"tag":86,"props":2887,"children":2888},{"style":109},[2889],{"type":45,"value":934},{"type":40,"tag":86,"props":2891,"children":2892},{"style":109},[2893],{"type":45,"value":939},{"type":40,"tag":86,"props":2895,"children":2896},{"style":156},[2897],{"type":45,"value":159},{"type":40,"tag":86,"props":2899,"children":2900},{"style":109},[2901],{"type":45,"value":948},{"type":40,"tag":86,"props":2903,"children":2904},{"style":167},[2905],{"type":45,"value":953},{"type":40,"tag":86,"props":2907,"children":2908},{"style":156},[2909],{"type":45,"value":958},{"type":40,"tag":86,"props":2911,"children":2912},{"style":167},[2913],{"type":45,"value":404},{"type":40,"tag":86,"props":2915,"children":2916},{"class":88,"line":2138},[2917,2921,2926,2930],{"type":40,"tag":86,"props":2918,"children":2919},{"style":156},[2920],{"type":45,"value":1804},{"type":40,"tag":86,"props":2922,"children":2923},{"style":109},[2924],{"type":45,"value":2925},"histogram_quantile(0.95, sum by(le, handler) (rate(http_request_duration_seconds_bucket{job=\"\u003Cservice-name>\"}[5m])))",{"type":40,"tag":86,"props":2927,"children":2928},{"style":156},[2929],{"type":45,"value":973},{"type":40,"tag":86,"props":2931,"children":2932},{"style":167},[2933],{"type":45,"value":404},{"type":40,"tag":86,"props":2935,"children":2936},{"class":88,"line":2159},[2937,2941,2945,2949,2953,2957,2961,2965],{"type":40,"tag":86,"props":2938,"children":2939},{"style":109},[2940],{"type":45,"value":1825},{"type":40,"tag":86,"props":2942,"children":2943},{"style":109},[2944],{"type":45,"value":1830},{"type":40,"tag":86,"props":2946,"children":2947},{"style":109},[2948],{"type":45,"value":1835},{"type":40,"tag":86,"props":2950,"children":2951},{"style":109},[2952],{"type":45,"value":1840},{"type":40,"tag":86,"props":2954,"children":2955},{"style":109},[2956],{"type":45,"value":1845},{"type":40,"tag":86,"props":2958,"children":2959},{"style":109},[2960],{"type":45,"value":1850},{"type":40,"tag":86,"props":2962,"children":2963},{"style":109},[2964],{"type":45,"value":238},{"type":40,"tag":86,"props":2966,"children":2967},{"style":109},[2968],{"type":45,"value":243},{"type":40,"tag":48,"props":2970,"children":2971},{},[2972],{"type":40,"tag":528,"props":2973,"children":2974},{},[2975],{"type":45,"value":532},{"type":40,"tag":75,"props":2977,"children":2979},{"className":535,"code":2978,"language":537,"meta":80,"style":80},"{\n  \"status\": \"success\",\n  \"data\": {\n    \"resultType\": \"matrix\",\n    \"result\": [\n      {\n        \"metric\": {\"job\": \"\u003Cservice-name>\"},\n        \"values\": [[\u003Ctimestamp>, \"\u003Cseconds>\"], ...]\n      }\n    ]\n  }\n}\n",[2980],{"type":40,"tag":66,"props":2981,"children":2982},{"__ignoreMap":80},[2983,2990,3025,3048,3083,3106,3113,3168,3224,3231,3238,3245],{"type":40,"tag":86,"props":2984,"children":2985},{"class":88,"line":89},[2986],{"type":40,"tag":86,"props":2987,"children":2988},{"style":156},[2989],{"type":45,"value":549},{"type":40,"tag":86,"props":2991,"children":2992},{"class":88,"line":99},[2993,2997,3001,3005,3009,3013,3017,3021],{"type":40,"tag":86,"props":2994,"children":2995},{"style":156},[2996],{"type":45,"value":557},{"type":40,"tag":86,"props":2998,"children":2999},{"style":560},[3000],{"type":45,"value":1379},{"type":40,"tag":86,"props":3002,"children":3003},{"style":156},[3004],{"type":45,"value":433},{"type":40,"tag":86,"props":3006,"children":3007},{"style":156},[3008],{"type":45,"value":572},{"type":40,"tag":86,"props":3010,"children":3011},{"style":156},[3012],{"type":45,"value":423},{"type":40,"tag":86,"props":3014,"children":3015},{"style":109},[3016],{"type":45,"value":1396},{"type":40,"tag":86,"props":3018,"children":3019},{"style":156},[3020],{"type":45,"value":433},{"type":40,"tag":86,"props":3022,"children":3023},{"style":156},[3024],{"type":45,"value":1405},{"type":40,"tag":86,"props":3026,"children":3027},{"class":88,"line":120},[3028,3032,3036,3040,3044],{"type":40,"tag":86,"props":3029,"children":3030},{"style":156},[3031],{"type":45,"value":557},{"type":40,"tag":86,"props":3033,"children":3034},{"style":560},[3035],{"type":45,"value":1417},{"type":40,"tag":86,"props":3037,"children":3038},{"style":156},[3039],{"type":45,"value":433},{"type":40,"tag":86,"props":3041,"children":3042},{"style":156},[3043],{"type":45,"value":572},{"type":40,"tag":86,"props":3045,"children":3046},{"style":156},[3047],{"type":45,"value":1430},{"type":40,"tag":86,"props":3049,"children":3050},{"class":88,"line":130},[3051,3055,3059,3063,3067,3071,3075,3079],{"type":40,"tag":86,"props":3052,"children":3053},{"style":156},[3054],{"type":45,"value":1438},{"type":40,"tag":86,"props":3056,"children":3057},{"style":103},[3058],{"type":45,"value":1443},{"type":40,"tag":86,"props":3060,"children":3061},{"style":156},[3062],{"type":45,"value":433},{"type":40,"tag":86,"props":3064,"children":3065},{"style":156},[3066],{"type":45,"value":572},{"type":40,"tag":86,"props":3068,"children":3069},{"style":156},[3070],{"type":45,"value":423},{"type":40,"tag":86,"props":3072,"children":3073},{"style":109},[3074],{"type":45,"value":2300},{"type":40,"tag":86,"props":3076,"children":3077},{"style":156},[3078],{"type":45,"value":433},{"type":40,"tag":86,"props":3080,"children":3081},{"style":156},[3082],{"type":45,"value":1405},{"type":40,"tag":86,"props":3084,"children":3085},{"class":88,"line":139},[3086,3090,3094,3098,3102],{"type":40,"tag":86,"props":3087,"children":3088},{"style":156},[3089],{"type":45,"value":1438},{"type":40,"tag":86,"props":3091,"children":3092},{"style":103},[3093],{"type":45,"value":1480},{"type":40,"tag":86,"props":3095,"children":3096},{"style":156},[3097],{"type":45,"value":433},{"type":40,"tag":86,"props":3099,"children":3100},{"style":156},[3101],{"type":45,"value":572},{"type":40,"tag":86,"props":3103,"children":3104},{"style":156},[3105],{"type":45,"value":577},{"type":40,"tag":86,"props":3107,"children":3108},{"class":88,"line":294},[3109],{"type":40,"tag":86,"props":3110,"children":3111},{"style":156},[3112],{"type":45,"value":2339},{"type":40,"tag":86,"props":3114,"children":3115},{"class":88,"line":327},[3116,3120,3124,3128,3132,3136,3140,3144,3148,3152,3156,3160,3164],{"type":40,"tag":86,"props":3117,"children":3118},{"style":156},[3119],{"type":45,"value":2347},{"type":40,"tag":86,"props":3121,"children":3122},{"style":1507},[3123],{"type":45,"value":1510},{"type":40,"tag":86,"props":3125,"children":3126},{"style":156},[3127],{"type":45,"value":433},{"type":40,"tag":86,"props":3129,"children":3130},{"style":156},[3131],{"type":45,"value":572},{"type":40,"tag":86,"props":3133,"children":3134},{"style":156},[3135],{"type":45,"value":1523},{"type":40,"tag":86,"props":3137,"children":3138},{"style":156},[3139],{"type":45,"value":433},{"type":40,"tag":86,"props":3141,"children":3142},{"style":1530},[3143],{"type":45,"value":1566},{"type":40,"tag":86,"props":3145,"children":3146},{"style":156},[3147],{"type":45,"value":433},{"type":40,"tag":86,"props":3149,"children":3150},{"style":156},[3151],{"type":45,"value":572},{"type":40,"tag":86,"props":3153,"children":3154},{"style":156},[3155],{"type":45,"value":423},{"type":40,"tag":86,"props":3157,"children":3158},{"style":109},[3159],{"type":45,"value":1583},{"type":40,"tag":86,"props":3161,"children":3162},{"style":156},[3163],{"type":45,"value":433},{"type":40,"tag":86,"props":3165,"children":3166},{"style":156},[3167],{"type":45,"value":698},{"type":40,"tag":86,"props":3169,"children":3170},{"class":88,"line":335},[3171,3175,3179,3183,3187,3191,3195,3199,3203,3208,3212,3216,3220],{"type":40,"tag":86,"props":3172,"children":3173},{"style":156},[3174],{"type":45,"value":2347},{"type":40,"tag":86,"props":3176,"children":3177},{"style":1507},[3178],{"type":45,"value":2440},{"type":40,"tag":86,"props":3180,"children":3181},{"style":156},[3182],{"type":45,"value":433},{"type":40,"tag":86,"props":3184,"children":3185},{"style":156},[3186],{"type":45,"value":572},{"type":40,"tag":86,"props":3188,"children":3189},{"style":156},[3190],{"type":45,"value":2453},{"type":40,"tag":86,"props":3192,"children":3193},{"style":167},[3194],{"type":45,"value":1653},{"type":40,"tag":86,"props":3196,"children":3197},{"style":156},[3198],{"type":45,"value":620},{"type":40,"tag":86,"props":3200,"children":3201},{"style":156},[3202],{"type":45,"value":423},{"type":40,"tag":86,"props":3204,"children":3205},{"style":109},[3206],{"type":45,"value":3207},"\u003Cseconds>",{"type":40,"tag":86,"props":3209,"children":3210},{"style":156},[3211],{"type":45,"value":433},{"type":40,"tag":86,"props":3213,"children":3214},{"style":156},[3215],{"type":45,"value":2479},{"type":40,"tag":86,"props":3217,"children":3218},{"style":167},[3219],{"type":45,"value":693},{"type":40,"tag":86,"props":3221,"children":3222},{"style":156},[3223],{"type":45,"value":2488},{"type":40,"tag":86,"props":3225,"children":3226},{"class":88,"line":344},[3227],{"type":40,"tag":86,"props":3228,"children":3229},{"style":156},[3230],{"type":45,"value":2496},{"type":40,"tag":86,"props":3232,"children":3233},{"class":88,"line":407},[3234],{"type":40,"tag":86,"props":3235,"children":3236},{"style":156},[3237],{"type":45,"value":1683},{"type":40,"tag":86,"props":3239,"children":3240},{"class":88,"line":441},[3241],{"type":40,"tag":86,"props":3242,"children":3243},{"style":156},[3244],{"type":45,"value":1691},{"type":40,"tag":86,"props":3246,"children":3247},{"class":88,"line":498},[3248],{"type":40,"tag":86,"props":3249,"children":3250},{"style":156},[3251],{"type":45,"value":811},{"type":40,"tag":48,"props":3253,"children":3254},{},[3255],{"type":45,"value":3256},"Compare the latency onset time with the error onset time from Step 3. If\nlatency rose before errors, a dependency or resource constraint is likely.",{"type":40,"tag":183,"props":3258,"children":3260},{"id":3259},"step-5-correlate-logs",[3261],{"type":45,"value":3262},"Step 5: Correlate Logs",{"type":40,"tag":48,"props":3264,"children":3265},{},[3266],{"type":45,"value":3267},"Query Loki for error logs in the time window identified in Steps 3 and 4.\nLogs provide the specific error messages, stack traces, and context that\nmetrics cannot.",{"type":40,"tag":75,"props":3269,"children":3271},{"className":77,"code":3270,"language":79,"meta":80,"style":80},"# Error logs for the service in the incident window\ngcx logs query -d \u003Cloki-uid> \\\n  '{job=\"\u003Cservice-name>\"} |= \"error\"' \\\n  --from now-1h --to now -o json\n\n# JSON-parsed logs with level filter (if structured logging)\ngcx logs query -d \u003Cloki-uid> \\\n  '{job=\"\u003Cservice-name>\"} | json | level=\"error\"' \\\n  --from now-1h --to now -o json\n\n# Error rate from logs (count over time)\ngcx logs query -d \u003Cloki-uid> \\\n  'count_over_time({job=\"\u003Cservice-name>\"} |= \"error\" [5m])' \\\n  --from now-1h --to now --step 1m -o json\n\n# Grep for specific error patterns\ngcx logs query -d \u003Cloki-uid> \\\n  '{job=\"\u003Cservice-name>\"} |~ \"timeout|connection refused|OOM|panic\"' \\\n  --from now-1h --to now -o json\n",[3272],{"type":40,"tag":66,"props":3273,"children":3274},{"__ignoreMap":80},[3275,3283,3322,3342,3369,3376,3384,3423,3443,3470,3477,3485,3524,3544,3579,3586,3594,3633,3653],{"type":40,"tag":86,"props":3276,"children":3277},{"class":88,"line":89},[3278],{"type":40,"tag":86,"props":3279,"children":3280},{"style":93},[3281],{"type":45,"value":3282},"# Error logs for the service in the incident window\n",{"type":40,"tag":86,"props":3284,"children":3285},{"class":88,"line":99},[3286,3290,3294,3298,3302,3306,3310,3314,3318],{"type":40,"tag":86,"props":3287,"children":3288},{"style":103},[3289],{"type":45,"value":106},{"type":40,"tag":86,"props":3291,"children":3292},{"style":109},[3293],{"type":45,"value":1172},{"type":40,"tag":86,"props":3295,"children":3296},{"style":109},[3297],{"type":45,"value":934},{"type":40,"tag":86,"props":3299,"children":3300},{"style":109},[3301],{"type":45,"value":939},{"type":40,"tag":86,"props":3303,"children":3304},{"style":156},[3305],{"type":45,"value":159},{"type":40,"tag":86,"props":3307,"children":3308},{"style":109},[3309],{"type":45,"value":1189},{"type":40,"tag":86,"props":3311,"children":3312},{"style":167},[3313],{"type":45,"value":953},{"type":40,"tag":86,"props":3315,"children":3316},{"style":156},[3317],{"type":45,"value":958},{"type":40,"tag":86,"props":3319,"children":3320},{"style":167},[3321],{"type":45,"value":404},{"type":40,"tag":86,"props":3323,"children":3324},{"class":88,"line":120},[3325,3329,3334,3338],{"type":40,"tag":86,"props":3326,"children":3327},{"style":156},[3328],{"type":45,"value":1804},{"type":40,"tag":86,"props":3330,"children":3331},{"style":109},[3332],{"type":45,"value":3333},"{job=\"\u003Cservice-name>\"} |= \"error\"",{"type":40,"tag":86,"props":3335,"children":3336},{"style":156},[3337],{"type":45,"value":973},{"type":40,"tag":86,"props":3339,"children":3340},{"style":167},[3341],{"type":45,"value":404},{"type":40,"tag":86,"props":3343,"children":3344},{"class":88,"line":130},[3345,3349,3353,3357,3361,3365],{"type":40,"tag":86,"props":3346,"children":3347},{"style":109},[3348],{"type":45,"value":1825},{"type":40,"tag":86,"props":3350,"children":3351},{"style":109},[3352],{"type":45,"value":1830},{"type":40,"tag":86,"props":3354,"children":3355},{"style":109},[3356],{"type":45,"value":1835},{"type":40,"tag":86,"props":3358,"children":3359},{"style":109},[3360],{"type":45,"value":1840},{"type":40,"tag":86,"props":3362,"children":3363},{"style":109},[3364],{"type":45,"value":238},{"type":40,"tag":86,"props":3366,"children":3367},{"style":109},[3368],{"type":45,"value":243},{"type":40,"tag":86,"props":3370,"children":3371},{"class":88,"line":139},[3372],{"type":40,"tag":86,"props":3373,"children":3374},{"emptyLinePlaceholder":124},[3375],{"type":45,"value":127},{"type":40,"tag":86,"props":3377,"children":3378},{"class":88,"line":294},[3379],{"type":40,"tag":86,"props":3380,"children":3381},{"style":93},[3382],{"type":45,"value":3383},"# JSON-parsed logs with level filter (if structured logging)\n",{"type":40,"tag":86,"props":3385,"children":3386},{"class":88,"line":327},[3387,3391,3395,3399,3403,3407,3411,3415,3419],{"type":40,"tag":86,"props":3388,"children":3389},{"style":103},[3390],{"type":45,"value":106},{"type":40,"tag":86,"props":3392,"children":3393},{"style":109},[3394],{"type":45,"value":1172},{"type":40,"tag":86,"props":3396,"children":3397},{"style":109},[3398],{"type":45,"value":934},{"type":40,"tag":86,"props":3400,"children":3401},{"style":109},[3402],{"type":45,"value":939},{"type":40,"tag":86,"props":3404,"children":3405},{"style":156},[3406],{"type":45,"value":159},{"type":40,"tag":86,"props":3408,"children":3409},{"style":109},[3410],{"type":45,"value":1189},{"type":40,"tag":86,"props":3412,"children":3413},{"style":167},[3414],{"type":45,"value":953},{"type":40,"tag":86,"props":3416,"children":3417},{"style":156},[3418],{"type":45,"value":958},{"type":40,"tag":86,"props":3420,"children":3421},{"style":167},[3422],{"type":45,"value":404},{"type":40,"tag":86,"props":3424,"children":3425},{"class":88,"line":335},[3426,3430,3435,3439],{"type":40,"tag":86,"props":3427,"children":3428},{"style":156},[3429],{"type":45,"value":1804},{"type":40,"tag":86,"props":3431,"children":3432},{"style":109},[3433],{"type":45,"value":3434},"{job=\"\u003Cservice-name>\"} | json | level=\"error\"",{"type":40,"tag":86,"props":3436,"children":3437},{"style":156},[3438],{"type":45,"value":973},{"type":40,"tag":86,"props":3440,"children":3441},{"style":167},[3442],{"type":45,"value":404},{"type":40,"tag":86,"props":3444,"children":3445},{"class":88,"line":344},[3446,3450,3454,3458,3462,3466],{"type":40,"tag":86,"props":3447,"children":3448},{"style":109},[3449],{"type":45,"value":1825},{"type":40,"tag":86,"props":3451,"children":3452},{"style":109},[3453],{"type":45,"value":1830},{"type":40,"tag":86,"props":3455,"children":3456},{"style":109},[3457],{"type":45,"value":1835},{"type":40,"tag":86,"props":3459,"children":3460},{"style":109},[3461],{"type":45,"value":1840},{"type":40,"tag":86,"props":3463,"children":3464},{"style":109},[3465],{"type":45,"value":238},{"type":40,"tag":86,"props":3467,"children":3468},{"style":109},[3469],{"type":45,"value":243},{"type":40,"tag":86,"props":3471,"children":3472},{"class":88,"line":407},[3473],{"type":40,"tag":86,"props":3474,"children":3475},{"emptyLinePlaceholder":124},[3476],{"type":45,"value":127},{"type":40,"tag":86,"props":3478,"children":3479},{"class":88,"line":441},[3480],{"type":40,"tag":86,"props":3481,"children":3482},{"style":93},[3483],{"type":45,"value":3484},"# Error rate from logs (count over time)\n",{"type":40,"tag":86,"props":3486,"children":3487},{"class":88,"line":498},[3488,3492,3496,3500,3504,3508,3512,3516,3520],{"type":40,"tag":86,"props":3489,"children":3490},{"style":103},[3491],{"type":45,"value":106},{"type":40,"tag":86,"props":3493,"children":3494},{"style":109},[3495],{"type":45,"value":1172},{"type":40,"tag":86,"props":3497,"children":3498},{"style":109},[3499],{"type":45,"value":934},{"type":40,"tag":86,"props":3501,"children":3502},{"style":109},[3503],{"type":45,"value":939},{"type":40,"tag":86,"props":3505,"children":3506},{"style":156},[3507],{"type":45,"value":159},{"type":40,"tag":86,"props":3509,"children":3510},{"style":109},[3511],{"type":45,"value":1189},{"type":40,"tag":86,"props":3513,"children":3514},{"style":167},[3515],{"type":45,"value":953},{"type":40,"tag":86,"props":3517,"children":3518},{"style":156},[3519],{"type":45,"value":958},{"type":40,"tag":86,"props":3521,"children":3522},{"style":167},[3523],{"type":45,"value":404},{"type":40,"tag":86,"props":3525,"children":3526},{"class":88,"line":2024},[3527,3531,3536,3540],{"type":40,"tag":86,"props":3528,"children":3529},{"style":156},[3530],{"type":45,"value":1804},{"type":40,"tag":86,"props":3532,"children":3533},{"style":109},[3534],{"type":45,"value":3535},"count_over_time({job=\"\u003Cservice-name>\"} |= \"error\" [5m])",{"type":40,"tag":86,"props":3537,"children":3538},{"style":156},[3539],{"type":45,"value":973},{"type":40,"tag":86,"props":3541,"children":3542},{"style":167},[3543],{"type":45,"value":404},{"type":40,"tag":86,"props":3545,"children":3546},{"class":88,"line":2045},[3547,3551,3555,3559,3563,3567,3571,3575],{"type":40,"tag":86,"props":3548,"children":3549},{"style":109},[3550],{"type":45,"value":1825},{"type":40,"tag":86,"props":3552,"children":3553},{"style":109},[3554],{"type":45,"value":1830},{"type":40,"tag":86,"props":3556,"children":3557},{"style":109},[3558],{"type":45,"value":1835},{"type":40,"tag":86,"props":3560,"children":3561},{"style":109},[3562],{"type":45,"value":1840},{"type":40,"tag":86,"props":3564,"children":3565},{"style":109},[3566],{"type":45,"value":1845},{"type":40,"tag":86,"props":3568,"children":3569},{"style":109},[3570],{"type":45,"value":1850},{"type":40,"tag":86,"props":3572,"children":3573},{"style":109},[3574],{"type":45,"value":238},{"type":40,"tag":86,"props":3576,"children":3577},{"style":109},[3578],{"type":45,"value":243},{"type":40,"tag":86,"props":3580,"children":3581},{"class":88,"line":2081},[3582],{"type":40,"tag":86,"props":3583,"children":3584},{"emptyLinePlaceholder":124},[3585],{"type":45,"value":127},{"type":40,"tag":86,"props":3587,"children":3588},{"class":88,"line":2089},[3589],{"type":40,"tag":86,"props":3590,"children":3591},{"style":93},[3592],{"type":45,"value":3593},"# Grep for specific error patterns\n",{"type":40,"tag":86,"props":3595,"children":3596},{"class":88,"line":2098},[3597,3601,3605,3609,3613,3617,3621,3625,3629],{"type":40,"tag":86,"props":3598,"children":3599},{"style":103},[3600],{"type":45,"value":106},{"type":40,"tag":86,"props":3602,"children":3603},{"style":109},[3604],{"type":45,"value":1172},{"type":40,"tag":86,"props":3606,"children":3607},{"style":109},[3608],{"type":45,"value":934},{"type":40,"tag":86,"props":3610,"children":3611},{"style":109},[3612],{"type":45,"value":939},{"type":40,"tag":86,"props":3614,"children":3615},{"style":156},[3616],{"type":45,"value":159},{"type":40,"tag":86,"props":3618,"children":3619},{"style":109},[3620],{"type":45,"value":1189},{"type":40,"tag":86,"props":3622,"children":3623},{"style":167},[3624],{"type":45,"value":953},{"type":40,"tag":86,"props":3626,"children":3627},{"style":156},[3628],{"type":45,"value":958},{"type":40,"tag":86,"props":3630,"children":3631},{"style":167},[3632],{"type":45,"value":404},{"type":40,"tag":86,"props":3634,"children":3635},{"class":88,"line":2138},[3636,3640,3645,3649],{"type":40,"tag":86,"props":3637,"children":3638},{"style":156},[3639],{"type":45,"value":1804},{"type":40,"tag":86,"props":3641,"children":3642},{"style":109},[3643],{"type":45,"value":3644},"{job=\"\u003Cservice-name>\"} |~ \"timeout|connection refused|OOM|panic\"",{"type":40,"tag":86,"props":3646,"children":3647},{"style":156},[3648],{"type":45,"value":973},{"type":40,"tag":86,"props":3650,"children":3651},{"style":167},[3652],{"type":45,"value":404},{"type":40,"tag":86,"props":3654,"children":3655},{"class":88,"line":2159},[3656,3660,3664,3668,3672,3676],{"type":40,"tag":86,"props":3657,"children":3658},{"style":109},[3659],{"type":45,"value":1825},{"type":40,"tag":86,"props":3661,"children":3662},{"style":109},[3663],{"type":45,"value":1830},{"type":40,"tag":86,"props":3665,"children":3666},{"style":109},[3667],{"type":45,"value":1835},{"type":40,"tag":86,"props":3669,"children":3670},{"style":109},[3671],{"type":45,"value":1840},{"type":40,"tag":86,"props":3673,"children":3674},{"style":109},[3675],{"type":45,"value":238},{"type":40,"tag":86,"props":3677,"children":3678},{"style":109},[3679],{"type":45,"value":243},{"type":40,"tag":48,"props":3681,"children":3682},{},[3683],{"type":40,"tag":528,"props":3684,"children":3685},{},[3686],{"type":45,"value":3687},"Expected output shape (streams):",{"type":40,"tag":75,"props":3689,"children":3691},{"className":535,"code":3690,"language":537,"meta":80,"style":80},"{\n  \"status\": \"success\",\n  \"data\": {\n    \"resultType\": \"streams\",\n    \"result\": [\n      {\n        \"stream\": {\"job\": \"\u003Cservice-name>\"},\n        \"values\": [\n          {\n            \"timestamp\": \"\u003Cns-timestamp>\",\n            \"line\": \"\u003Clog-line>\",\n            \"structuredMetadata\": {\"detected_level\": \"error\"},\n            \"parsed\": {\"status\": \"500\"}\n          }\n        ]\n      }\n    ]\n  }\n}\n",[3692],{"type":40,"tag":66,"props":3693,"children":3694},{"__ignoreMap":80},[3695,3702,3737,3760,3796,3819,3826,3882,3905,3913,3951,3987,4046,4103,4111,4119,4126,4133,4140],{"type":40,"tag":86,"props":3696,"children":3697},{"class":88,"line":89},[3698],{"type":40,"tag":86,"props":3699,"children":3700},{"style":156},[3701],{"type":45,"value":549},{"type":40,"tag":86,"props":3703,"children":3704},{"class":88,"line":99},[3705,3709,3713,3717,3721,3725,3729,3733],{"type":40,"tag":86,"props":3706,"children":3707},{"style":156},[3708],{"type":45,"value":557},{"type":40,"tag":86,"props":3710,"children":3711},{"style":560},[3712],{"type":45,"value":1379},{"type":40,"tag":86,"props":3714,"children":3715},{"style":156},[3716],{"type":45,"value":433},{"type":40,"tag":86,"props":3718,"children":3719},{"style":156},[3720],{"type":45,"value":572},{"type":40,"tag":86,"props":3722,"children":3723},{"style":156},[3724],{"type":45,"value":423},{"type":40,"tag":86,"props":3726,"children":3727},{"style":109},[3728],{"type":45,"value":1396},{"type":40,"tag":86,"props":3730,"children":3731},{"style":156},[3732],{"type":45,"value":433},{"type":40,"tag":86,"props":3734,"children":3735},{"style":156},[3736],{"type":45,"value":1405},{"type":40,"tag":86,"props":3738,"children":3739},{"class":88,"line":120},[3740,3744,3748,3752,3756],{"type":40,"tag":86,"props":3741,"children":3742},{"style":156},[3743],{"type":45,"value":557},{"type":40,"tag":86,"props":3745,"children":3746},{"style":560},[3747],{"type":45,"value":1417},{"type":40,"tag":86,"props":3749,"children":3750},{"style":156},[3751],{"type":45,"value":433},{"type":40,"tag":86,"props":3753,"children":3754},{"style":156},[3755],{"type":45,"value":572},{"type":40,"tag":86,"props":3757,"children":3758},{"style":156},[3759],{"type":45,"value":1430},{"type":40,"tag":86,"props":3761,"children":3762},{"class":88,"line":130},[3763,3767,3771,3775,3779,3783,3788,3792],{"type":40,"tag":86,"props":3764,"children":3765},{"style":156},[3766],{"type":45,"value":1438},{"type":40,"tag":86,"props":3768,"children":3769},{"style":103},[3770],{"type":45,"value":1443},{"type":40,"tag":86,"props":3772,"children":3773},{"style":156},[3774],{"type":45,"value":433},{"type":40,"tag":86,"props":3776,"children":3777},{"style":156},[3778],{"type":45,"value":572},{"type":40,"tag":86,"props":3780,"children":3781},{"style":156},[3782],{"type":45,"value":423},{"type":40,"tag":86,"props":3784,"children":3785},{"style":109},[3786],{"type":45,"value":3787},"streams",{"type":40,"tag":86,"props":3789,"children":3790},{"style":156},[3791],{"type":45,"value":433},{"type":40,"tag":86,"props":3793,"children":3794},{"style":156},[3795],{"type":45,"value":1405},{"type":40,"tag":86,"props":3797,"children":3798},{"class":88,"line":139},[3799,3803,3807,3811,3815],{"type":40,"tag":86,"props":3800,"children":3801},{"style":156},[3802],{"type":45,"value":1438},{"type":40,"tag":86,"props":3804,"children":3805},{"style":103},[3806],{"type":45,"value":1480},{"type":40,"tag":86,"props":3808,"children":3809},{"style":156},[3810],{"type":45,"value":433},{"type":40,"tag":86,"props":3812,"children":3813},{"style":156},[3814],{"type":45,"value":572},{"type":40,"tag":86,"props":3816,"children":3817},{"style":156},[3818],{"type":45,"value":577},{"type":40,"tag":86,"props":3820,"children":3821},{"class":88,"line":294},[3822],{"type":40,"tag":86,"props":3823,"children":3824},{"style":156},[3825],{"type":45,"value":2339},{"type":40,"tag":86,"props":3827,"children":3828},{"class":88,"line":327},[3829,3833,3838,3842,3846,3850,3854,3858,3862,3866,3870,3874,3878],{"type":40,"tag":86,"props":3830,"children":3831},{"style":156},[3832],{"type":45,"value":2347},{"type":40,"tag":86,"props":3834,"children":3835},{"style":1507},[3836],{"type":45,"value":3837},"stream",{"type":40,"tag":86,"props":3839,"children":3840},{"style":156},[3841],{"type":45,"value":433},{"type":40,"tag":86,"props":3843,"children":3844},{"style":156},[3845],{"type":45,"value":572},{"type":40,"tag":86,"props":3847,"children":3848},{"style":156},[3849],{"type":45,"value":1523},{"type":40,"tag":86,"props":3851,"children":3852},{"style":156},[3853],{"type":45,"value":433},{"type":40,"tag":86,"props":3855,"children":3856},{"style":1530},[3857],{"type":45,"value":1566},{"type":40,"tag":86,"props":3859,"children":3860},{"style":156},[3861],{"type":45,"value":433},{"type":40,"tag":86,"props":3863,"children":3864},{"style":156},[3865],{"type":45,"value":572},{"type":40,"tag":86,"props":3867,"children":3868},{"style":156},[3869],{"type":45,"value":423},{"type":40,"tag":86,"props":3871,"children":3872},{"style":109},[3873],{"type":45,"value":1583},{"type":40,"tag":86,"props":3875,"children":3876},{"style":156},[3877],{"type":45,"value":433},{"type":40,"tag":86,"props":3879,"children":3880},{"style":156},[3881],{"type":45,"value":698},{"type":40,"tag":86,"props":3883,"children":3884},{"class":88,"line":335},[3885,3889,3893,3897,3901],{"type":40,"tag":86,"props":3886,"children":3887},{"style":156},[3888],{"type":45,"value":2347},{"type":40,"tag":86,"props":3890,"children":3891},{"style":1507},[3892],{"type":45,"value":2440},{"type":40,"tag":86,"props":3894,"children":3895},{"style":156},[3896],{"type":45,"value":433},{"type":40,"tag":86,"props":3898,"children":3899},{"style":156},[3900],{"type":45,"value":572},{"type":40,"tag":86,"props":3902,"children":3903},{"style":156},[3904],{"type":45,"value":577},{"type":40,"tag":86,"props":3906,"children":3907},{"class":88,"line":344},[3908],{"type":40,"tag":86,"props":3909,"children":3910},{"style":156},[3911],{"type":45,"value":3912},"          {\n",{"type":40,"tag":86,"props":3914,"children":3915},{"class":88,"line":407},[3916,3921,3926,3930,3934,3938,3943,3947],{"type":40,"tag":86,"props":3917,"children":3918},{"style":156},[3919],{"type":45,"value":3920},"            \"",{"type":40,"tag":86,"props":3922,"children":3923},{"style":1530},[3924],{"type":45,"value":3925},"timestamp",{"type":40,"tag":86,"props":3927,"children":3928},{"style":156},[3929],{"type":45,"value":433},{"type":40,"tag":86,"props":3931,"children":3932},{"style":156},[3933],{"type":45,"value":572},{"type":40,"tag":86,"props":3935,"children":3936},{"style":156},[3937],{"type":45,"value":423},{"type":40,"tag":86,"props":3939,"children":3940},{"style":109},[3941],{"type":45,"value":3942},"\u003Cns-timestamp>",{"type":40,"tag":86,"props":3944,"children":3945},{"style":156},[3946],{"type":45,"value":433},{"type":40,"tag":86,"props":3948,"children":3949},{"style":156},[3950],{"type":45,"value":1405},{"type":40,"tag":86,"props":3952,"children":3953},{"class":88,"line":441},[3954,3958,3962,3966,3970,3974,3979,3983],{"type":40,"tag":86,"props":3955,"children":3956},{"style":156},[3957],{"type":45,"value":3920},{"type":40,"tag":86,"props":3959,"children":3960},{"style":1530},[3961],{"type":45,"value":88},{"type":40,"tag":86,"props":3963,"children":3964},{"style":156},[3965],{"type":45,"value":433},{"type":40,"tag":86,"props":3967,"children":3968},{"style":156},[3969],{"type":45,"value":572},{"type":40,"tag":86,"props":3971,"children":3972},{"style":156},[3973],{"type":45,"value":423},{"type":40,"tag":86,"props":3975,"children":3976},{"style":109},[3977],{"type":45,"value":3978},"\u003Clog-line>",{"type":40,"tag":86,"props":3980,"children":3981},{"style":156},[3982],{"type":45,"value":433},{"type":40,"tag":86,"props":3984,"children":3985},{"style":156},[3986],{"type":45,"value":1405},{"type":40,"tag":86,"props":3988,"children":3989},{"class":88,"line":498},[3990,3994,3999,4003,4007,4011,4015,4021,4025,4029,4033,4038,4042],{"type":40,"tag":86,"props":3991,"children":3992},{"style":156},[3993],{"type":45,"value":3920},{"type":40,"tag":86,"props":3995,"children":3996},{"style":1530},[3997],{"type":45,"value":3998},"structuredMetadata",{"type":40,"tag":86,"props":4000,"children":4001},{"style":156},[4002],{"type":45,"value":433},{"type":40,"tag":86,"props":4004,"children":4005},{"style":156},[4006],{"type":45,"value":572},{"type":40,"tag":86,"props":4008,"children":4009},{"style":156},[4010],{"type":45,"value":1523},{"type":40,"tag":86,"props":4012,"children":4013},{"style":156},[4014],{"type":45,"value":433},{"type":40,"tag":86,"props":4016,"children":4018},{"style":4017},"--shiki-light:#916B53;--shiki-default:#916B53;--shiki-dark:#916B53",[4019],{"type":45,"value":4020},"detected_level",{"type":40,"tag":86,"props":4022,"children":4023},{"style":156},[4024],{"type":45,"value":433},{"type":40,"tag":86,"props":4026,"children":4027},{"style":156},[4028],{"type":45,"value":572},{"type":40,"tag":86,"props":4030,"children":4031},{"style":156},[4032],{"type":45,"value":423},{"type":40,"tag":86,"props":4034,"children":4035},{"style":109},[4036],{"type":45,"value":4037},"error",{"type":40,"tag":86,"props":4039,"children":4040},{"style":156},[4041],{"type":45,"value":433},{"type":40,"tag":86,"props":4043,"children":4044},{"style":156},[4045],{"type":45,"value":698},{"type":40,"tag":86,"props":4047,"children":4048},{"class":88,"line":2024},[4049,4053,4058,4062,4066,4070,4074,4078,4082,4086,4090,4095,4099],{"type":40,"tag":86,"props":4050,"children":4051},{"style":156},[4052],{"type":45,"value":3920},{"type":40,"tag":86,"props":4054,"children":4055},{"style":1530},[4056],{"type":45,"value":4057},"parsed",{"type":40,"tag":86,"props":4059,"children":4060},{"style":156},[4061],{"type":45,"value":433},{"type":40,"tag":86,"props":4063,"children":4064},{"style":156},[4065],{"type":45,"value":572},{"type":40,"tag":86,"props":4067,"children":4068},{"style":156},[4069],{"type":45,"value":1523},{"type":40,"tag":86,"props":4071,"children":4072},{"style":156},[4073],{"type":45,"value":433},{"type":40,"tag":86,"props":4075,"children":4076},{"style":4017},[4077],{"type":45,"value":1379},{"type":40,"tag":86,"props":4079,"children":4080},{"style":156},[4081],{"type":45,"value":433},{"type":40,"tag":86,"props":4083,"children":4084},{"style":156},[4085],{"type":45,"value":572},{"type":40,"tag":86,"props":4087,"children":4088},{"style":156},[4089],{"type":45,"value":423},{"type":40,"tag":86,"props":4091,"children":4092},{"style":109},[4093],{"type":45,"value":4094},"500",{"type":40,"tag":86,"props":4096,"children":4097},{"style":156},[4098],{"type":45,"value":433},{"type":40,"tag":86,"props":4100,"children":4101},{"style":156},[4102],{"type":45,"value":811},{"type":40,"tag":86,"props":4104,"children":4105},{"class":88,"line":2045},[4106],{"type":40,"tag":86,"props":4107,"children":4108},{"style":156},[4109],{"type":45,"value":4110},"          }\n",{"type":40,"tag":86,"props":4112,"children":4113},{"class":88,"line":2081},[4114],{"type":40,"tag":86,"props":4115,"children":4116},{"style":156},[4117],{"type":45,"value":4118},"        ]\n",{"type":40,"tag":86,"props":4120,"children":4121},{"class":88,"line":2089},[4122],{"type":40,"tag":86,"props":4123,"children":4124},{"style":156},[4125],{"type":45,"value":2496},{"type":40,"tag":86,"props":4127,"children":4128},{"class":88,"line":2098},[4129],{"type":40,"tag":86,"props":4130,"children":4131},{"style":156},[4132],{"type":45,"value":1683},{"type":40,"tag":86,"props":4134,"children":4135},{"class":88,"line":2138},[4136],{"type":40,"tag":86,"props":4137,"children":4138},{"style":156},[4139],{"type":45,"value":1691},{"type":40,"tag":86,"props":4141,"children":4142},{"class":88,"line":2159},[4143],{"type":40,"tag":86,"props":4144,"children":4145},{"style":156},[4146],{"type":45,"value":811},{"type":40,"tag":48,"props":4148,"children":4149},{},[4150,4155,4157,4163,4165,4170,4172,4177,4179,4184,4186,4192,4194,4200,4202,4208],{"type":40,"tag":66,"props":4151,"children":4153},{"className":4152},[],[4154],{"type":45,"value":3837},{"type":45,"value":4156}," holds indexed labels only (valid inside ",{"type":40,"tag":66,"props":4158,"children":4160},{"className":4159},[],[4161],{"type":45,"value":4162},"{...}",{"type":45,"value":4164},"). ",{"type":40,"tag":66,"props":4166,"children":4168},{"className":4167},[],[4169],{"type":45,"value":3998},{"type":45,"value":4171},"\n(per-line, e.g. ",{"type":40,"tag":66,"props":4173,"children":4175},{"className":4174},[],[4176],{"type":45,"value":4020},{"type":45,"value":4178},") and ",{"type":40,"tag":66,"props":4180,"children":4182},{"className":4181},[],[4183],{"type":45,"value":4057},{"type":45,"value":4185}," (from ",{"type":40,"tag":66,"props":4187,"children":4189},{"className":4188},[],[4190],{"type":45,"value":4191},"| json",{"type":45,"value":4193}," \u002F ",{"type":40,"tag":66,"props":4195,"children":4197},{"className":4196},[],[4198],{"type":45,"value":4199},"| logfmt",{"type":45,"value":4201},") are\npresent only when the line has them, and are usable only after a pipe — not in a\n",{"type":40,"tag":66,"props":4203,"children":4205},{"className":4204},[],[4206],{"type":45,"value":4207},"{}",{"type":45,"value":4209}," selector.",{"type":40,"tag":841,"props":4211,"children":4212},{},[4213,4246],{"type":40,"tag":48,"props":4214,"children":4215},{},[4216,4221,4223,4228,4230,4236,4238,4244],{"type":40,"tag":528,"props":4217,"children":4218},{},[4219],{"type":45,"value":4220},"LogQL pitfall",{"type":45,"value":4222},": Loki requires at least one non-empty label matcher in the\nstream selector. ",{"type":40,"tag":66,"props":4224,"children":4226},{"className":4225},[],[4227],{"type":45,"value":4207},{"type":45,"value":4229}," and ",{"type":40,"tag":66,"props":4231,"children":4233},{"className":4232},[],[4234],{"type":45,"value":4235},"{} |~ \"pattern\"",{"type":45,"value":4237}," will be rejected. Always include\nat least one label, e.g., ",{"type":40,"tag":66,"props":4239,"children":4241},{"className":4240},[],[4242],{"type":45,"value":4243},"{job=~\".+\"}",{"type":45,"value":4245}," as a catch-all.",{"type":40,"tag":48,"props":4247,"children":4248},{},[4249,4254,4256,4262,4264,4269,4271,4276,4278,4284,4286,4292,4294,4300,4302,4307,4309,4315,4317,4322,4323,4328,4330,4336,4338,4344,4346,4352],{"type":40,"tag":528,"props":4250,"children":4251},{},[4252],{"type":45,"value":4253},"Label-kind pitfall",{"type":45,"value":4255},": only ",{"type":40,"tag":4257,"props":4258,"children":4259},"em",{},[4260],{"type":45,"value":4261},"indexed",{"type":45,"value":4263}," labels are valid inside ",{"type":40,"tag":66,"props":4265,"children":4267},{"className":4266},[],[4268],{"type":45,"value":4162},{"type":45,"value":4270},". Loki's\nstructured metadata (e.g. its auto-added ",{"type":40,"tag":66,"props":4272,"children":4274},{"className":4273},[],[4275],{"type":45,"value":4020},{"type":45,"value":4277},") and parsed fields\nare NOT — ",{"type":40,"tag":66,"props":4279,"children":4281},{"className":4280},[],[4282],{"type":45,"value":4283},"{detected_level=\"error\"}",{"type":45,"value":4285}," returns zero streams silently. Filter\nthem after a pipe: ",{"type":40,"tag":66,"props":4287,"children":4289},{"className":4288},[],[4290],{"type":45,"value":4291},"{job=\"app\"} | detected_level=\"error\"",{"type":45,"value":4293},". In ",{"type":40,"tag":66,"props":4295,"children":4297},{"className":4296},[],[4298],{"type":45,"value":4299},"gcx logs query",{"type":45,"value":4301},"\noutput, indexed labels are in the ",{"type":40,"tag":66,"props":4303,"children":4305},{"className":4304},[],[4306],{"type":45,"value":3837},{"type":45,"value":4308}," map \u002F ",{"type":40,"tag":66,"props":4310,"children":4312},{"className":4311},[],[4313],{"type":45,"value":4314},"STREAM",{"type":45,"value":4316}," column; structured\nmetadata and parsed labels are in per-entry ",{"type":40,"tag":66,"props":4318,"children":4320},{"className":4319},[],[4321],{"type":45,"value":3998},{"type":45,"value":4193},{"type":40,"tag":66,"props":4324,"children":4326},{"className":4325},[],[4327],{"type":45,"value":4057},{"type":45,"value":4329},"\n(",{"type":40,"tag":66,"props":4331,"children":4333},{"className":4332},[],[4334],{"type":45,"value":4335},"-o json",{"type":45,"value":4337},") or ",{"type":40,"tag":66,"props":4339,"children":4341},{"className":4340},[],[4342],{"type":45,"value":4343},"DETAILS",{"type":45,"value":4345}," (",{"type":40,"tag":66,"props":4347,"children":4349},{"className":4348},[],[4350],{"type":45,"value":4351},"-o table",{"type":45,"value":4353},").",{"type":40,"tag":48,"props":4355,"children":4356},{},[4357],{"type":45,"value":4358},"Look for:",{"type":40,"tag":4360,"props":4361,"children":4362},"ul",{},[4363,4369,4374,4379],{"type":40,"tag":4364,"props":4365,"children":4366},"li",{},[4367],{"type":45,"value":4368},"Repeated error messages pointing to a specific code path or dependency",{"type":40,"tag":4364,"props":4370,"children":4371},{},[4372],{"type":45,"value":4373},"Timestamps of first error matching the metric spike time from Step 3",{"type":40,"tag":4364,"props":4375,"children":4376},{},[4377],{"type":45,"value":4378},"Stack traces or panic messages that identify the root cause",{"type":40,"tag":4364,"props":4380,"children":4381},{},[4382],{"type":45,"value":4383},"Upstream service names in error messages (database, external APIs)",{"type":40,"tag":183,"props":4385,"children":4387},{"id":4386},"step-5b-correlate-traces-if-tempo-is-available",[4388],{"type":45,"value":4389},"Step 5b: Correlate Traces (if Tempo is available)",{"type":40,"tag":48,"props":4391,"children":4392},{},[4393],{"type":45,"value":4394},"If a Tempo datasource exists, search for traces matching the incident window.\nTraces show individual request paths and identify slow or failing spans.",{"type":40,"tag":75,"props":4396,"children":4398},{"className":77,"code":4397,"language":79,"meta":80,"style":80},"# Check for Tempo datasources\ngcx datasources list -t tempo -o json\n\n# Search for error traces in the incident window\ngcx traces query -d \u003Ctempo-uid> '{ status = error }' --from now-1h --to now\n\n# Search by service name\ngcx traces query -d \u003Ctempo-uid> '{ resource.service.name = \"\u003Cservice-name>\" }' --from now-1h --to now\n\n# Search for slow traces (duration > 1s)\ngcx traces query -d \u003Ctempo-uid> \\\n  '{ resource.service.name = \"\u003Cservice-name>\" && duration > 1s }' \\\n  --from now-1h --to now\n\n# Fetch a specific trace by ID for analysis (from search results or log trace IDs)\n# Always use --llm so Tempo returns its token-efficient LLM trace encoding.\ngcx traces get -d \u003Ctempo-uid> \u003Ctrace-id> --llm -o json\n",[4399],{"type":40,"tag":66,"props":4400,"children":4401},{"__ignoreMap":80},[4402,4410,4442,4449,4457,4525,4532,4540,4604,4611,4619,4658,4678,4697,4704,4712,4720],{"type":40,"tag":86,"props":4403,"children":4404},{"class":88,"line":89},[4405],{"type":40,"tag":86,"props":4406,"children":4407},{"style":93},[4408],{"type":45,"value":4409},"# Check for Tempo datasources\n",{"type":40,"tag":86,"props":4411,"children":4412},{"class":88,"line":99},[4413,4417,4421,4425,4429,4434,4438],{"type":40,"tag":86,"props":4414,"children":4415},{"style":103},[4416],{"type":45,"value":106},{"type":40,"tag":86,"props":4418,"children":4419},{"style":109},[4420],{"type":45,"value":228},{"type":40,"tag":86,"props":4422,"children":4423},{"style":109},[4424],{"type":45,"value":233},{"type":40,"tag":86,"props":4426,"children":4427},{"style":109},[4428],{"type":45,"value":278},{"type":40,"tag":86,"props":4430,"children":4431},{"style":109},[4432],{"type":45,"value":4433}," tempo",{"type":40,"tag":86,"props":4435,"children":4436},{"style":109},[4437],{"type":45,"value":238},{"type":40,"tag":86,"props":4439,"children":4440},{"style":109},[4441],{"type":45,"value":243},{"type":40,"tag":86,"props":4443,"children":4444},{"class":88,"line":120},[4445],{"type":40,"tag":86,"props":4446,"children":4447},{"emptyLinePlaceholder":124},[4448],{"type":45,"value":127},{"type":40,"tag":86,"props":4450,"children":4451},{"class":88,"line":130},[4452],{"type":40,"tag":86,"props":4453,"children":4454},{"style":93},[4455],{"type":45,"value":4456},"# Search for error traces in the incident window\n",{"type":40,"tag":86,"props":4458,"children":4459},{"class":88,"line":139},[4460,4464,4469,4473,4477,4481,4486,4490,4494,4498,4503,4507,4512,4516,4520],{"type":40,"tag":86,"props":4461,"children":4462},{"style":103},[4463],{"type":45,"value":106},{"type":40,"tag":86,"props":4465,"children":4466},{"style":109},[4467],{"type":45,"value":4468}," traces",{"type":40,"tag":86,"props":4470,"children":4471},{"style":109},[4472],{"type":45,"value":934},{"type":40,"tag":86,"props":4474,"children":4475},{"style":109},[4476],{"type":45,"value":939},{"type":40,"tag":86,"props":4478,"children":4479},{"style":156},[4480],{"type":45,"value":159},{"type":40,"tag":86,"props":4482,"children":4483},{"style":109},[4484],{"type":45,"value":4485},"tempo-ui",{"type":40,"tag":86,"props":4487,"children":4488},{"style":167},[4489],{"type":45,"value":953},{"type":40,"tag":86,"props":4491,"children":4492},{"style":156},[4493],{"type":45,"value":958},{"type":40,"tag":86,"props":4495,"children":4496},{"style":156},[4497],{"type":45,"value":963},{"type":40,"tag":86,"props":4499,"children":4500},{"style":109},[4501],{"type":45,"value":4502},"{ status = error }",{"type":40,"tag":86,"props":4504,"children":4505},{"style":156},[4506],{"type":45,"value":973},{"type":40,"tag":86,"props":4508,"children":4509},{"style":109},[4510],{"type":45,"value":4511}," --from",{"type":40,"tag":86,"props":4513,"children":4514},{"style":109},[4515],{"type":45,"value":1830},{"type":40,"tag":86,"props":4517,"children":4518},{"style":109},[4519],{"type":45,"value":1835},{"type":40,"tag":86,"props":4521,"children":4522},{"style":109},[4523],{"type":45,"value":4524}," now\n",{"type":40,"tag":86,"props":4526,"children":4527},{"class":88,"line":294},[4528],{"type":40,"tag":86,"props":4529,"children":4530},{"emptyLinePlaceholder":124},[4531],{"type":45,"value":127},{"type":40,"tag":86,"props":4533,"children":4534},{"class":88,"line":327},[4535],{"type":40,"tag":86,"props":4536,"children":4537},{"style":93},[4538],{"type":45,"value":4539},"# Search by service name\n",{"type":40,"tag":86,"props":4541,"children":4542},{"class":88,"line":335},[4543,4547,4551,4555,4559,4563,4567,4571,4575,4579,4584,4588,4592,4596,4600],{"type":40,"tag":86,"props":4544,"children":4545},{"style":103},[4546],{"type":45,"value":106},{"type":40,"tag":86,"props":4548,"children":4549},{"style":109},[4550],{"type":45,"value":4468},{"type":40,"tag":86,"props":4552,"children":4553},{"style":109},[4554],{"type":45,"value":934},{"type":40,"tag":86,"props":4556,"children":4557},{"style":109},[4558],{"type":45,"value":939},{"type":40,"tag":86,"props":4560,"children":4561},{"style":156},[4562],{"type":45,"value":159},{"type":40,"tag":86,"props":4564,"children":4565},{"style":109},[4566],{"type":45,"value":4485},{"type":40,"tag":86,"props":4568,"children":4569},{"style":167},[4570],{"type":45,"value":953},{"type":40,"tag":86,"props":4572,"children":4573},{"style":156},[4574],{"type":45,"value":958},{"type":40,"tag":86,"props":4576,"children":4577},{"style":156},[4578],{"type":45,"value":963},{"type":40,"tag":86,"props":4580,"children":4581},{"style":109},[4582],{"type":45,"value":4583},"{ resource.service.name = \"\u003Cservice-name>\" }",{"type":40,"tag":86,"props":4585,"children":4586},{"style":156},[4587],{"type":45,"value":973},{"type":40,"tag":86,"props":4589,"children":4590},{"style":109},[4591],{"type":45,"value":4511},{"type":40,"tag":86,"props":4593,"children":4594},{"style":109},[4595],{"type":45,"value":1830},{"type":40,"tag":86,"props":4597,"children":4598},{"style":109},[4599],{"type":45,"value":1835},{"type":40,"tag":86,"props":4601,"children":4602},{"style":109},[4603],{"type":45,"value":4524},{"type":40,"tag":86,"props":4605,"children":4606},{"class":88,"line":344},[4607],{"type":40,"tag":86,"props":4608,"children":4609},{"emptyLinePlaceholder":124},[4610],{"type":45,"value":127},{"type":40,"tag":86,"props":4612,"children":4613},{"class":88,"line":407},[4614],{"type":40,"tag":86,"props":4615,"children":4616},{"style":93},[4617],{"type":45,"value":4618},"# Search for slow traces (duration > 1s)\n",{"type":40,"tag":86,"props":4620,"children":4621},{"class":88,"line":441},[4622,4626,4630,4634,4638,4642,4646,4650,4654],{"type":40,"tag":86,"props":4623,"children":4624},{"style":103},[4625],{"type":45,"value":106},{"type":40,"tag":86,"props":4627,"children":4628},{"style":109},[4629],{"type":45,"value":4468},{"type":40,"tag":86,"props":4631,"children":4632},{"style":109},[4633],{"type":45,"value":934},{"type":40,"tag":86,"props":4635,"children":4636},{"style":109},[4637],{"type":45,"value":939},{"type":40,"tag":86,"props":4639,"children":4640},{"style":156},[4641],{"type":45,"value":159},{"type":40,"tag":86,"props":4643,"children":4644},{"style":109},[4645],{"type":45,"value":4485},{"type":40,"tag":86,"props":4647,"children":4648},{"style":167},[4649],{"type":45,"value":953},{"type":40,"tag":86,"props":4651,"children":4652},{"style":156},[4653],{"type":45,"value":958},{"type":40,"tag":86,"props":4655,"children":4656},{"style":167},[4657],{"type":45,"value":404},{"type":40,"tag":86,"props":4659,"children":4660},{"class":88,"line":498},[4661,4665,4670,4674],{"type":40,"tag":86,"props":4662,"children":4663},{"style":156},[4664],{"type":45,"value":1804},{"type":40,"tag":86,"props":4666,"children":4667},{"style":109},[4668],{"type":45,"value":4669},"{ resource.service.name = \"\u003Cservice-name>\" && duration > 1s }",{"type":40,"tag":86,"props":4671,"children":4672},{"style":156},[4673],{"type":45,"value":973},{"type":40,"tag":86,"props":4675,"children":4676},{"style":167},[4677],{"type":45,"value":404},{"type":40,"tag":86,"props":4679,"children":4680},{"class":88,"line":2024},[4681,4685,4689,4693],{"type":40,"tag":86,"props":4682,"children":4683},{"style":109},[4684],{"type":45,"value":1825},{"type":40,"tag":86,"props":4686,"children":4687},{"style":109},[4688],{"type":45,"value":1830},{"type":40,"tag":86,"props":4690,"children":4691},{"style":109},[4692],{"type":45,"value":1835},{"type":40,"tag":86,"props":4694,"children":4695},{"style":109},[4696],{"type":45,"value":4524},{"type":40,"tag":86,"props":4698,"children":4699},{"class":88,"line":2045},[4700],{"type":40,"tag":86,"props":4701,"children":4702},{"emptyLinePlaceholder":124},[4703],{"type":45,"value":127},{"type":40,"tag":86,"props":4705,"children":4706},{"class":88,"line":2081},[4707],{"type":40,"tag":86,"props":4708,"children":4709},{"style":93},[4710],{"type":45,"value":4711},"# Fetch a specific trace by ID for analysis (from search results or log trace IDs)\n",{"type":40,"tag":86,"props":4713,"children":4714},{"class":88,"line":2089},[4715],{"type":40,"tag":86,"props":4716,"children":4717},{"style":93},[4718],{"type":45,"value":4719},"# Always use --llm so Tempo returns its token-efficient LLM trace encoding.\n",{"type":40,"tag":86,"props":4721,"children":4722},{"class":88,"line":2098},[4723,4727,4731,4736,4740,4744,4748,4752,4756,4760,4765,4769,4773,4778,4782],{"type":40,"tag":86,"props":4724,"children":4725},{"style":103},[4726],{"type":45,"value":106},{"type":40,"tag":86,"props":4728,"children":4729},{"style":109},[4730],{"type":45,"value":4468},{"type":40,"tag":86,"props":4732,"children":4733},{"style":109},[4734],{"type":45,"value":4735}," get",{"type":40,"tag":86,"props":4737,"children":4738},{"style":109},[4739],{"type":45,"value":939},{"type":40,"tag":86,"props":4741,"children":4742},{"style":156},[4743],{"type":45,"value":159},{"type":40,"tag":86,"props":4745,"children":4746},{"style":109},[4747],{"type":45,"value":4485},{"type":40,"tag":86,"props":4749,"children":4750},{"style":167},[4751],{"type":45,"value":953},{"type":40,"tag":86,"props":4753,"children":4754},{"style":156},[4755],{"type":45,"value":958},{"type":40,"tag":86,"props":4757,"children":4758},{"style":156},[4759],{"type":45,"value":159},{"type":40,"tag":86,"props":4761,"children":4762},{"style":109},[4763],{"type":45,"value":4764},"trace-i",{"type":40,"tag":86,"props":4766,"children":4767},{"style":167},[4768],{"type":45,"value":953},{"type":40,"tag":86,"props":4770,"children":4771},{"style":156},[4772],{"type":45,"value":958},{"type":40,"tag":86,"props":4774,"children":4775},{"style":109},[4776],{"type":45,"value":4777}," --llm",{"type":40,"tag":86,"props":4779,"children":4780},{"style":109},[4781],{"type":45,"value":238},{"type":40,"tag":86,"props":4783,"children":4784},{"style":109},[4785],{"type":45,"value":243},{"type":40,"tag":48,"props":4787,"children":4788},{},[4789,4794,4796,4802,4804,4810],{"type":40,"tag":528,"props":4790,"children":4791},{},[4792],{"type":45,"value":4793},"TraceQL attribute scoping",{"type":45,"value":4795},": Tempo requires scoped attribute names. Use\n",{"type":40,"tag":66,"props":4797,"children":4799},{"className":4798},[],[4800],{"type":45,"value":4801},"resource.",{"type":45,"value":4803}," for resource-level attributes and ",{"type":40,"tag":66,"props":4805,"children":4807},{"className":4806},[],[4808],{"type":45,"value":4809},"span.",{"type":45,"value":4811}," for span-level:",{"type":40,"tag":4360,"props":4813,"children":4814},{},[4815,4834],{"type":40,"tag":4364,"props":4816,"children":4817},{},[4818,4824,4826,4832],{"type":40,"tag":66,"props":4819,"children":4821},{"className":4820},[],[4822],{"type":45,"value":4823},"resource.service.name",{"type":45,"value":4825}," (not ",{"type":40,"tag":66,"props":4827,"children":4829},{"className":4828},[],[4830],{"type":45,"value":4831},"service.name",{"type":45,"value":4833},")",{"type":40,"tag":4364,"props":4835,"children":4836},{},[4837,4843,4844,4850],{"type":40,"tag":66,"props":4838,"children":4840},{"className":4839},[],[4841],{"type":45,"value":4842},"span.http.status_code",{"type":45,"value":4825},{"type":40,"tag":66,"props":4845,"children":4847},{"className":4846},[],[4848],{"type":45,"value":4849},"http.status_code",{"type":45,"value":4833},{"type":40,"tag":48,"props":4852,"children":4853},{},[4854,4855,4860,4862,4868,4870,4875,4877,4883,4884,4890,4892,4898,4900,4906],{"type":45,"value":987},{"type":40,"tag":66,"props":4856,"children":4858},{"className":4857},[],[4859],{"type":45,"value":629},{"type":45,"value":4861}," (unscoped) for the span name, ",{"type":40,"tag":66,"props":4863,"children":4865},{"className":4864},[],[4866],{"type":45,"value":4867},"duration",{"type":45,"value":4869}," for span duration,\nand ",{"type":40,"tag":66,"props":4871,"children":4873},{"className":4872},[],[4874],{"type":45,"value":1379},{"type":45,"value":4876}," for span status. Use ",{"type":40,"tag":66,"props":4878,"children":4880},{"className":4879},[],[4881],{"type":45,"value":4882},"trace:rootService",{"type":45,"value":4229},{"type":40,"tag":66,"props":4885,"children":4887},{"className":4886},[],[4888],{"type":45,"value":4889},"trace:rootName",{"type":45,"value":4891},"\nfor root span attributes (not ",{"type":40,"tag":66,"props":4893,"children":4895},{"className":4894},[],[4896],{"type":45,"value":4897},"rootServiceName",{"type":45,"value":4899}," or ",{"type":40,"tag":66,"props":4901,"children":4903},{"className":4902},[],[4904],{"type":45,"value":4905},"rootTraceName",{"type":45,"value":4353},{"type":40,"tag":48,"props":4908,"children":4909},{},[4910,4912,4918],{"type":45,"value":4911},"When inspecting trace bodies, use ",{"type":40,"tag":66,"props":4913,"children":4915},{"className":4914},[],[4916],{"type":45,"value":4917},"gcx traces get \u003Ctrace-id> --llm -o json",{"type":45,"value":4919},". Do not fetch the\nOTLP-shaped default trace and manually compact it unless the user explicitly\nneeds raw trace JSON for schema\u002Fdebugging work.",{"type":40,"tag":48,"props":4921,"children":4922},{},[4923],{"type":45,"value":4924},"Discover available labels and values:",{"type":40,"tag":75,"props":4926,"children":4928},{"className":77,"code":4927,"language":79,"meta":80,"style":80},"gcx traces labels -d \u003Ctempo-uid>\n# For agent workflows, request Tempo's compact LLM label-value encoding.\ngcx traces tags -d \u003Ctempo-uid> -l resource.service.name --llm -o json\n",[4929],{"type":40,"tag":66,"props":4930,"children":4931},{"__ignoreMap":80},[4932,4967,4975],{"type":40,"tag":86,"props":4933,"children":4934},{"class":88,"line":89},[4935,4939,4943,4947,4951,4955,4959,4963],{"type":40,"tag":86,"props":4936,"children":4937},{"style":103},[4938],{"type":45,"value":106},{"type":40,"tag":86,"props":4940,"children":4941},{"style":109},[4942],{"type":45,"value":4468},{"type":40,"tag":86,"props":4944,"children":4945},{"style":109},[4946],{"type":45,"value":1107},{"type":40,"tag":86,"props":4948,"children":4949},{"style":109},[4950],{"type":45,"value":939},{"type":40,"tag":86,"props":4952,"children":4953},{"style":156},[4954],{"type":45,"value":159},{"type":40,"tag":86,"props":4956,"children":4957},{"style":109},[4958],{"type":45,"value":4485},{"type":40,"tag":86,"props":4960,"children":4961},{"style":167},[4962],{"type":45,"value":953},{"type":40,"tag":86,"props":4964,"children":4965},{"style":156},[4966],{"type":45,"value":175},{"type":40,"tag":86,"props":4968,"children":4969},{"class":88,"line":99},[4970],{"type":40,"tag":86,"props":4971,"children":4972},{"style":93},[4973],{"type":45,"value":4974},"# For agent workflows, request Tempo's compact LLM label-value encoding.\n",{"type":40,"tag":86,"props":4976,"children":4977},{"class":88,"line":120},[4978,4982,4986,4991,4995,4999,5003,5007,5011,5015,5020,5024,5028],{"type":40,"tag":86,"props":4979,"children":4980},{"style":103},[4981],{"type":45,"value":106},{"type":40,"tag":86,"props":4983,"children":4984},{"style":109},[4985],{"type":45,"value":4468},{"type":40,"tag":86,"props":4987,"children":4988},{"style":109},[4989],{"type":45,"value":4990}," tags",{"type":40,"tag":86,"props":4992,"children":4993},{"style":109},[4994],{"type":45,"value":939},{"type":40,"tag":86,"props":4996,"children":4997},{"style":156},[4998],{"type":45,"value":159},{"type":40,"tag":86,"props":5000,"children":5001},{"style":109},[5002],{"type":45,"value":4485},{"type":40,"tag":86,"props":5004,"children":5005},{"style":167},[5006],{"type":45,"value":953},{"type":40,"tag":86,"props":5008,"children":5009},{"style":156},[5010],{"type":45,"value":958},{"type":40,"tag":86,"props":5012,"children":5013},{"style":109},[5014],{"type":45,"value":1132},{"type":40,"tag":86,"props":5016,"children":5017},{"style":109},[5018],{"type":45,"value":5019}," resource.service.name",{"type":40,"tag":86,"props":5021,"children":5022},{"style":109},[5023],{"type":45,"value":4777},{"type":40,"tag":86,"props":5025,"children":5026},{"style":109},[5027],{"type":45,"value":238},{"type":40,"tag":86,"props":5029,"children":5030},{"style":109},[5031],{"type":45,"value":243},{"type":40,"tag":841,"props":5033,"children":5034},{},[5035],{"type":40,"tag":48,"props":5036,"children":5037},{},[5038,5043,5045,5051,5053,5059,5061,5067],{"type":40,"tag":528,"props":5039,"children":5040},{},[5041],{"type":45,"value":5042},"Common mistake",{"type":45,"value":5044},": ",{"type":40,"tag":66,"props":5046,"children":5048},{"className":5047},[],[5049],{"type":45,"value":5050},"gcx traces labels -l service.name",{"type":45,"value":5052}," will fail — Tempo\nparses the dot as an identifier boundary. Always fully qualify:\n",{"type":40,"tag":66,"props":5054,"children":5056},{"className":5055},[],[5057],{"type":45,"value":5058},"-l resource.service.name",{"type":45,"value":5060},", not ",{"type":40,"tag":66,"props":5062,"children":5064},{"className":5063},[],[5065],{"type":45,"value":5066},"-l service.name",{"type":45,"value":201},{"type":40,"tag":48,"props":5069,"children":5070},{},[5071,5073,5083],{"type":45,"value":5072},"See ",{"type":40,"tag":5074,"props":5075,"children":5077},"a",{"href":5076},"references\u002Ftraceql-patterns.md",[5078],{"type":40,"tag":66,"props":5079,"children":5081},{"className":5080},[],[5082],{"type":45,"value":5076},{"type":45,"value":5084}," for full\nTraceQL syntax reference.",{"type":40,"tag":183,"props":5086,"children":5088},{"id":5087},"step-6-check-related-dashboards-and-resources",[5089],{"type":45,"value":5090},"Step 6: Check Related Dashboards and Resources",{"type":40,"tag":48,"props":5092,"children":5093},{},[5094],{"type":45,"value":5095},"Check whether relevant dashboards exist that give broader context, and inspect\nrelated Grafana resources that may explain the issue (e.g., alert rules that\nare firing).",{"type":40,"tag":75,"props":5097,"children":5099},{"className":77,"code":5098,"language":79,"meta":80,"style":80},"# List all alert rules to find any firing for this service\ngcx alert rules list -o json | jq '.[] | .rules[]? | select(.labels.job == \"\u003Cservice-name>\")'\n\n# Pull dashboards locally to inspect their panel queries\ngcx resources pull dashboards -o json\n\n# List available resources to find service-specific dashboards\ngcx resources get dashboards -o json | jq '.items[] | select(.metadata.name | test(\"\u003Cservice-name>\"; \"i\"))'\n\n# If a relevant dashboard UID is known, get it directly\ngcx resources get dashboards\u002F\u003Cdashboard-uid> -o json\n",[5100],{"type":40,"tag":66,"props":5101,"children":5102},{"__ignoreMap":80},[5103,5111,5163,5170,5178,5208,5215,5223,5271,5278,5286],{"type":40,"tag":86,"props":5104,"children":5105},{"class":88,"line":89},[5106],{"type":40,"tag":86,"props":5107,"children":5108},{"style":93},[5109],{"type":45,"value":5110},"# List all alert rules to find any firing for this service\n",{"type":40,"tag":86,"props":5112,"children":5113},{"class":88,"line":99},[5114,5118,5123,5128,5132,5136,5140,5144,5149,5153,5158],{"type":40,"tag":86,"props":5115,"children":5116},{"style":103},[5117],{"type":45,"value":106},{"type":40,"tag":86,"props":5119,"children":5120},{"style":109},[5121],{"type":45,"value":5122}," alert",{"type":40,"tag":86,"props":5124,"children":5125},{"style":109},[5126],{"type":45,"value":5127}," rules",{"type":40,"tag":86,"props":5129,"children":5130},{"style":109},[5131],{"type":45,"value":233},{"type":40,"tag":86,"props":5133,"children":5134},{"style":109},[5135],{"type":45,"value":238},{"type":40,"tag":86,"props":5137,"children":5138},{"style":109},[5139],{"type":45,"value":384},{"type":40,"tag":86,"props":5141,"children":5142},{"style":156},[5143],{"type":45,"value":399},{"type":40,"tag":86,"props":5145,"children":5146},{"style":103},[5147],{"type":45,"value":5148}," jq",{"type":40,"tag":86,"props":5150,"children":5151},{"style":156},[5152],{"type":45,"value":963},{"type":40,"tag":86,"props":5154,"children":5155},{"style":109},[5156],{"type":45,"value":5157},".[] | .rules[]? | select(.labels.job == \"\u003Cservice-name>\")",{"type":40,"tag":86,"props":5159,"children":5160},{"style":156},[5161],{"type":45,"value":5162},"'\n",{"type":40,"tag":86,"props":5164,"children":5165},{"class":88,"line":120},[5166],{"type":40,"tag":86,"props":5167,"children":5168},{"emptyLinePlaceholder":124},[5169],{"type":45,"value":127},{"type":40,"tag":86,"props":5171,"children":5172},{"class":88,"line":130},[5173],{"type":40,"tag":86,"props":5174,"children":5175},{"style":93},[5176],{"type":45,"value":5177},"# Pull dashboards locally to inspect their panel queries\n",{"type":40,"tag":86,"props":5179,"children":5180},{"class":88,"line":139},[5181,5185,5190,5195,5200,5204],{"type":40,"tag":86,"props":5182,"children":5183},{"style":103},[5184],{"type":45,"value":106},{"type":40,"tag":86,"props":5186,"children":5187},{"style":109},[5188],{"type":45,"value":5189}," resources",{"type":40,"tag":86,"props":5191,"children":5192},{"style":109},[5193],{"type":45,"value":5194}," pull",{"type":40,"tag":86,"props":5196,"children":5197},{"style":109},[5198],{"type":45,"value":5199}," dashboards",{"type":40,"tag":86,"props":5201,"children":5202},{"style":109},[5203],{"type":45,"value":238},{"type":40,"tag":86,"props":5205,"children":5206},{"style":109},[5207],{"type":45,"value":243},{"type":40,"tag":86,"props":5209,"children":5210},{"class":88,"line":294},[5211],{"type":40,"tag":86,"props":5212,"children":5213},{"emptyLinePlaceholder":124},[5214],{"type":45,"value":127},{"type":40,"tag":86,"props":5216,"children":5217},{"class":88,"line":327},[5218],{"type":40,"tag":86,"props":5219,"children":5220},{"style":93},[5221],{"type":45,"value":5222},"# List available resources to find service-specific dashboards\n",{"type":40,"tag":86,"props":5224,"children":5225},{"class":88,"line":335},[5226,5230,5234,5238,5242,5246,5250,5254,5258,5262,5267],{"type":40,"tag":86,"props":5227,"children":5228},{"style":103},[5229],{"type":45,"value":106},{"type":40,"tag":86,"props":5231,"children":5232},{"style":109},[5233],{"type":45,"value":5189},{"type":40,"tag":86,"props":5235,"children":5236},{"style":109},[5237],{"type":45,"value":4735},{"type":40,"tag":86,"props":5239,"children":5240},{"style":109},[5241],{"type":45,"value":5199},{"type":40,"tag":86,"props":5243,"children":5244},{"style":109},[5245],{"type":45,"value":238},{"type":40,"tag":86,"props":5247,"children":5248},{"style":109},[5249],{"type":45,"value":384},{"type":40,"tag":86,"props":5251,"children":5252},{"style":156},[5253],{"type":45,"value":399},{"type":40,"tag":86,"props":5255,"children":5256},{"style":103},[5257],{"type":45,"value":5148},{"type":40,"tag":86,"props":5259,"children":5260},{"style":156},[5261],{"type":45,"value":963},{"type":40,"tag":86,"props":5263,"children":5264},{"style":109},[5265],{"type":45,"value":5266},".items[] | select(.metadata.name | test(\"\u003Cservice-name>\"; \"i\"))",{"type":40,"tag":86,"props":5268,"children":5269},{"style":156},[5270],{"type":45,"value":5162},{"type":40,"tag":86,"props":5272,"children":5273},{"class":88,"line":344},[5274],{"type":40,"tag":86,"props":5275,"children":5276},{"emptyLinePlaceholder":124},[5277],{"type":45,"value":127},{"type":40,"tag":86,"props":5279,"children":5280},{"class":88,"line":407},[5281],{"type":40,"tag":86,"props":5282,"children":5283},{"style":93},[5284],{"type":45,"value":5285},"# If a relevant dashboard UID is known, get it directly\n",{"type":40,"tag":86,"props":5287,"children":5288},{"class":88,"line":441},[5289,5293,5297,5301,5306,5311,5316,5320,5324,5328],{"type":40,"tag":86,"props":5290,"children":5291},{"style":103},[5292],{"type":45,"value":106},{"type":40,"tag":86,"props":5294,"children":5295},{"style":109},[5296],{"type":45,"value":5189},{"type":40,"tag":86,"props":5298,"children":5299},{"style":109},[5300],{"type":45,"value":4735},{"type":40,"tag":86,"props":5302,"children":5303},{"style":109},[5304],{"type":45,"value":5305}," dashboards\u002F",{"type":40,"tag":86,"props":5307,"children":5308},{"style":156},[5309],{"type":45,"value":5310},"\u003C",{"type":40,"tag":86,"props":5312,"children":5313},{"style":109},[5314],{"type":45,"value":5315},"dashboard-ui",{"type":40,"tag":86,"props":5317,"children":5318},{"style":167},[5319],{"type":45,"value":953},{"type":40,"tag":86,"props":5321,"children":5322},{"style":156},[5323],{"type":45,"value":958},{"type":40,"tag":86,"props":5325,"children":5326},{"style":109},[5327],{"type":45,"value":238},{"type":40,"tag":86,"props":5329,"children":5330},{"style":109},[5331],{"type":45,"value":243},{"type":40,"tag":5333,"props":5334,"children":5336},"h4",{"id":5335},"capture-a-visual-snapshot-of-a-relevant-dashboard",[5337],{"type":45,"value":5338},"Capture a visual snapshot of a relevant dashboard",{"type":40,"tag":48,"props":5340,"children":5341},{},[5342],{"type":45,"value":5343},"If a relevant dashboard UID is known, capture a PNG snapshot to visually\ninspect panel layout and current state. This is especially useful when\ndiagnosing layout regressions, missing data, or anomalous panel values.",{"type":40,"tag":75,"props":5345,"children":5347},{"className":77,"code":5346,"language":79,"meta":80,"style":80},"# First, discover which template variables the dashboard uses so you can\n# pin them to the values relevant to the incident being debugged\ngcx resources get dashboards\u002F\u003Cdashboard-uid> -ojson | \\\n  jq '.spec.templating.list[] | {name, type, current: .current.value}'\n\n# Capture a full dashboard snapshot with variables matching the incident context\n# (requires grafana-image-renderer plugin on the Grafana instance)\ngcx dashboards snapshot \u003Cdashboard-uid> --output-dir .\u002Fdebug-snapshots \\\n  --var cluster=\u003Ccluster> --var job=\u003Cservice-name> --since 1h\n\n# Capture the incident time window explicitly\ngcx dashboards snapshot \u003Cdashboard-uid> --from now-1h --to now \\\n  --var cluster=\u003Ccluster> --var job=\u003Cservice-name> --output-dir .\u002Fdebug-snapshots\n\n# Capture a specific panel (find panel IDs: .spec.panels[].id in the dashboard JSON)\ngcx dashboards snapshot \u003Cdashboard-uid> --panel \u003Cpanel-id> \\\n  --output-dir .\u002Fdebug-snapshots\n\n# If stuck with flags: gcx dashboards snapshot --help\n",[5348],{"type":40,"tag":66,"props":5349,"children":5350},{"__ignoreMap":80},[5351,5359,5367,5415,5436,5443,5451,5459,5505,5573,5580,5588,5639,5699,5706,5714,5771,5783,5790],{"type":40,"tag":86,"props":5352,"children":5353},{"class":88,"line":89},[5354],{"type":40,"tag":86,"props":5355,"children":5356},{"style":93},[5357],{"type":45,"value":5358},"# First, discover which template variables the dashboard uses so you can\n",{"type":40,"tag":86,"props":5360,"children":5361},{"class":88,"line":99},[5362],{"type":40,"tag":86,"props":5363,"children":5364},{"style":93},[5365],{"type":45,"value":5366},"# pin them to the values relevant to the incident being debugged\n",{"type":40,"tag":86,"props":5368,"children":5369},{"class":88,"line":120},[5370,5374,5378,5382,5386,5390,5394,5398,5402,5407,5411],{"type":40,"tag":86,"props":5371,"children":5372},{"style":103},[5373],{"type":45,"value":106},{"type":40,"tag":86,"props":5375,"children":5376},{"style":109},[5377],{"type":45,"value":5189},{"type":40,"tag":86,"props":5379,"children":5380},{"style":109},[5381],{"type":45,"value":4735},{"type":40,"tag":86,"props":5383,"children":5384},{"style":109},[5385],{"type":45,"value":5305},{"type":40,"tag":86,"props":5387,"children":5388},{"style":156},[5389],{"type":45,"value":5310},{"type":40,"tag":86,"props":5391,"children":5392},{"style":109},[5393],{"type":45,"value":5315},{"type":40,"tag":86,"props":5395,"children":5396},{"style":167},[5397],{"type":45,"value":953},{"type":40,"tag":86,"props":5399,"children":5400},{"style":156},[5401],{"type":45,"value":958},{"type":40,"tag":86,"props":5403,"children":5404},{"style":109},[5405],{"type":45,"value":5406}," -ojson",{"type":40,"tag":86,"props":5408,"children":5409},{"style":156},[5410],{"type":45,"value":399},{"type":40,"tag":86,"props":5412,"children":5413},{"style":167},[5414],{"type":45,"value":404},{"type":40,"tag":86,"props":5416,"children":5417},{"class":88,"line":130},[5418,5423,5427,5432],{"type":40,"tag":86,"props":5419,"children":5420},{"style":103},[5421],{"type":45,"value":5422},"  jq",{"type":40,"tag":86,"props":5424,"children":5425},{"style":156},[5426],{"type":45,"value":963},{"type":40,"tag":86,"props":5428,"children":5429},{"style":109},[5430],{"type":45,"value":5431},".spec.templating.list[] | {name, type, current: .current.value}",{"type":40,"tag":86,"props":5433,"children":5434},{"style":156},[5435],{"type":45,"value":5162},{"type":40,"tag":86,"props":5437,"children":5438},{"class":88,"line":139},[5439],{"type":40,"tag":86,"props":5440,"children":5441},{"emptyLinePlaceholder":124},[5442],{"type":45,"value":127},{"type":40,"tag":86,"props":5444,"children":5445},{"class":88,"line":294},[5446],{"type":40,"tag":86,"props":5447,"children":5448},{"style":93},[5449],{"type":45,"value":5450},"# Capture a full dashboard snapshot with variables matching the incident context\n",{"type":40,"tag":86,"props":5452,"children":5453},{"class":88,"line":327},[5454],{"type":40,"tag":86,"props":5455,"children":5456},{"style":93},[5457],{"type":45,"value":5458},"# (requires grafana-image-renderer plugin on the Grafana instance)\n",{"type":40,"tag":86,"props":5460,"children":5461},{"class":88,"line":335},[5462,5466,5470,5475,5479,5483,5487,5491,5496,5501],{"type":40,"tag":86,"props":5463,"children":5464},{"style":103},[5465],{"type":45,"value":106},{"type":40,"tag":86,"props":5467,"children":5468},{"style":109},[5469],{"type":45,"value":5199},{"type":40,"tag":86,"props":5471,"children":5472},{"style":109},[5473],{"type":45,"value":5474}," snapshot",{"type":40,"tag":86,"props":5476,"children":5477},{"style":156},[5478],{"type":45,"value":159},{"type":40,"tag":86,"props":5480,"children":5481},{"style":109},[5482],{"type":45,"value":5315},{"type":40,"tag":86,"props":5484,"children":5485},{"style":167},[5486],{"type":45,"value":953},{"type":40,"tag":86,"props":5488,"children":5489},{"style":156},[5490],{"type":45,"value":958},{"type":40,"tag":86,"props":5492,"children":5493},{"style":109},[5494],{"type":45,"value":5495}," --output-dir",{"type":40,"tag":86,"props":5497,"children":5498},{"style":109},[5499],{"type":45,"value":5500}," .\u002Fdebug-snapshots",{"type":40,"tag":86,"props":5502,"children":5503},{"style":167},[5504],{"type":45,"value":404},{"type":40,"tag":86,"props":5506,"children":5507},{"class":88,"line":344},[5508,5513,5518,5522,5527,5532,5536,5541,5546,5550,5555,5559,5563,5568],{"type":40,"tag":86,"props":5509,"children":5510},{"style":109},[5511],{"type":45,"value":5512},"  --var",{"type":40,"tag":86,"props":5514,"children":5515},{"style":109},[5516],{"type":45,"value":5517}," cluster=",{"type":40,"tag":86,"props":5519,"children":5520},{"style":156},[5521],{"type":45,"value":5310},{"type":40,"tag":86,"props":5523,"children":5524},{"style":109},[5525],{"type":45,"value":5526},"cluste",{"type":40,"tag":86,"props":5528,"children":5529},{"style":167},[5530],{"type":45,"value":5531},"r",{"type":40,"tag":86,"props":5533,"children":5534},{"style":156},[5535],{"type":45,"value":958},{"type":40,"tag":86,"props":5537,"children":5538},{"style":109},[5539],{"type":45,"value":5540}," --var",{"type":40,"tag":86,"props":5542,"children":5543},{"style":109},[5544],{"type":45,"value":5545}," job=",{"type":40,"tag":86,"props":5547,"children":5548},{"style":156},[5549],{"type":45,"value":5310},{"type":40,"tag":86,"props":5551,"children":5552},{"style":109},[5553],{"type":45,"value":5554},"service-nam",{"type":40,"tag":86,"props":5556,"children":5557},{"style":167},[5558],{"type":45,"value":170},{"type":40,"tag":86,"props":5560,"children":5561},{"style":156},[5562],{"type":45,"value":958},{"type":40,"tag":86,"props":5564,"children":5565},{"style":109},[5566],{"type":45,"value":5567}," --since",{"type":40,"tag":86,"props":5569,"children":5570},{"style":109},[5571],{"type":45,"value":5572}," 1h\n",{"type":40,"tag":86,"props":5574,"children":5575},{"class":88,"line":407},[5576],{"type":40,"tag":86,"props":5577,"children":5578},{"emptyLinePlaceholder":124},[5579],{"type":45,"value":127},{"type":40,"tag":86,"props":5581,"children":5582},{"class":88,"line":441},[5583],{"type":40,"tag":86,"props":5584,"children":5585},{"style":93},[5586],{"type":45,"value":5587},"# Capture the incident time window explicitly\n",{"type":40,"tag":86,"props":5589,"children":5590},{"class":88,"line":498},[5591,5595,5599,5603,5607,5611,5615,5619,5623,5627,5631,5635],{"type":40,"tag":86,"props":5592,"children":5593},{"style":103},[5594],{"type":45,"value":106},{"type":40,"tag":86,"props":5596,"children":5597},{"style":109},[5598],{"type":45,"value":5199},{"type":40,"tag":86,"props":5600,"children":5601},{"style":109},[5602],{"type":45,"value":5474},{"type":40,"tag":86,"props":5604,"children":5605},{"style":156},[5606],{"type":45,"value":159},{"type":40,"tag":86,"props":5608,"children":5609},{"style":109},[5610],{"type":45,"value":5315},{"type":40,"tag":86,"props":5612,"children":5613},{"style":167},[5614],{"type":45,"value":953},{"type":40,"tag":86,"props":5616,"children":5617},{"style":156},[5618],{"type":45,"value":958},{"type":40,"tag":86,"props":5620,"children":5621},{"style":109},[5622],{"type":45,"value":4511},{"type":40,"tag":86,"props":5624,"children":5625},{"style":109},[5626],{"type":45,"value":1830},{"type":40,"tag":86,"props":5628,"children":5629},{"style":109},[5630],{"type":45,"value":1835},{"type":40,"tag":86,"props":5632,"children":5633},{"style":109},[5634],{"type":45,"value":1840},{"type":40,"tag":86,"props":5636,"children":5637},{"style":167},[5638],{"type":45,"value":404},{"type":40,"tag":86,"props":5640,"children":5641},{"class":88,"line":2024},[5642,5646,5650,5654,5658,5662,5666,5670,5674,5678,5682,5686,5690,5694],{"type":40,"tag":86,"props":5643,"children":5644},{"style":109},[5645],{"type":45,"value":5512},{"type":40,"tag":86,"props":5647,"children":5648},{"style":109},[5649],{"type":45,"value":5517},{"type":40,"tag":86,"props":5651,"children":5652},{"style":156},[5653],{"type":45,"value":5310},{"type":40,"tag":86,"props":5655,"children":5656},{"style":109},[5657],{"type":45,"value":5526},{"type":40,"tag":86,"props":5659,"children":5660},{"style":167},[5661],{"type":45,"value":5531},{"type":40,"tag":86,"props":5663,"children":5664},{"style":156},[5665],{"type":45,"value":958},{"type":40,"tag":86,"props":5667,"children":5668},{"style":109},[5669],{"type":45,"value":5540},{"type":40,"tag":86,"props":5671,"children":5672},{"style":109},[5673],{"type":45,"value":5545},{"type":40,"tag":86,"props":5675,"children":5676},{"style":156},[5677],{"type":45,"value":5310},{"type":40,"tag":86,"props":5679,"children":5680},{"style":109},[5681],{"type":45,"value":5554},{"type":40,"tag":86,"props":5683,"children":5684},{"style":167},[5685],{"type":45,"value":170},{"type":40,"tag":86,"props":5687,"children":5688},{"style":156},[5689],{"type":45,"value":958},{"type":40,"tag":86,"props":5691,"children":5692},{"style":109},[5693],{"type":45,"value":5495},{"type":40,"tag":86,"props":5695,"children":5696},{"style":109},[5697],{"type":45,"value":5698}," .\u002Fdebug-snapshots\n",{"type":40,"tag":86,"props":5700,"children":5701},{"class":88,"line":2045},[5702],{"type":40,"tag":86,"props":5703,"children":5704},{"emptyLinePlaceholder":124},[5705],{"type":45,"value":127},{"type":40,"tag":86,"props":5707,"children":5708},{"class":88,"line":2081},[5709],{"type":40,"tag":86,"props":5710,"children":5711},{"style":93},[5712],{"type":45,"value":5713},"# Capture a specific panel (find panel IDs: .spec.panels[].id in the dashboard JSON)\n",{"type":40,"tag":86,"props":5715,"children":5716},{"class":88,"line":2089},[5717,5721,5725,5729,5733,5737,5741,5745,5750,5754,5759,5763,5767],{"type":40,"tag":86,"props":5718,"children":5719},{"style":103},[5720],{"type":45,"value":106},{"type":40,"tag":86,"props":5722,"children":5723},{"style":109},[5724],{"type":45,"value":5199},{"type":40,"tag":86,"props":5726,"children":5727},{"style":109},[5728],{"type":45,"value":5474},{"type":40,"tag":86,"props":5730,"children":5731},{"style":156},[5732],{"type":45,"value":159},{"type":40,"tag":86,"props":5734,"children":5735},{"style":109},[5736],{"type":45,"value":5315},{"type":40,"tag":86,"props":5738,"children":5739},{"style":167},[5740],{"type":45,"value":953},{"type":40,"tag":86,"props":5742,"children":5743},{"style":156},[5744],{"type":45,"value":958},{"type":40,"tag":86,"props":5746,"children":5747},{"style":109},[5748],{"type":45,"value":5749}," --panel",{"type":40,"tag":86,"props":5751,"children":5752},{"style":156},[5753],{"type":45,"value":159},{"type":40,"tag":86,"props":5755,"children":5756},{"style":109},[5757],{"type":45,"value":5758},"panel-i",{"type":40,"tag":86,"props":5760,"children":5761},{"style":167},[5762],{"type":45,"value":953},{"type":40,"tag":86,"props":5764,"children":5765},{"style":156},[5766],{"type":45,"value":958},{"type":40,"tag":86,"props":5768,"children":5769},{"style":167},[5770],{"type":45,"value":404},{"type":40,"tag":86,"props":5772,"children":5773},{"class":88,"line":2098},[5774,5779],{"type":40,"tag":86,"props":5775,"children":5776},{"style":109},[5777],{"type":45,"value":5778},"  --output-dir",{"type":40,"tag":86,"props":5780,"children":5781},{"style":109},[5782],{"type":45,"value":5698},{"type":40,"tag":86,"props":5784,"children":5785},{"class":88,"line":2138},[5786],{"type":40,"tag":86,"props":5787,"children":5788},{"emptyLinePlaceholder":124},[5789],{"type":45,"value":127},{"type":40,"tag":86,"props":5791,"children":5792},{"class":88,"line":2159},[5793],{"type":40,"tag":86,"props":5794,"children":5795},{"style":93},[5796],{"type":45,"value":5797},"# If stuck with flags: gcx dashboards snapshot --help\n",{"type":40,"tag":48,"props":5799,"children":5800},{},[5801],{"type":45,"value":5802},"Cross-reference with metrics and logs:",{"type":40,"tag":4360,"props":5804,"children":5805},{},[5806,5811,5816,5821],{"type":40,"tag":4364,"props":5807,"children":5808},{},[5809],{"type":45,"value":5810},"Are there alert rules in a firing or pending state for this service?",{"type":40,"tag":4364,"props":5812,"children":5813},{},[5814],{"type":45,"value":5815},"Do existing dashboards show additional signals (queue depth, DB connections,\nmemory pressure)?",{"type":40,"tag":4364,"props":5817,"children":5818},{},[5819],{"type":45,"value":5820},"Do dashboard panel queries reveal which metrics are being monitored?",{"type":40,"tag":4364,"props":5822,"children":5823},{},[5824],{"type":45,"value":5825},"Does the dashboard snapshot show unexpected panel states or missing data?",{"type":40,"tag":183,"props":5827,"children":5829},{"id":5828},"step-7-summarize-findings",[5830],{"type":45,"value":5831},"Step 7: Summarize Findings",{"type":40,"tag":48,"props":5833,"children":5834},{},[5835],{"type":45,"value":5836},"After completing Steps 1-6, synthesize the findings into a clear diagnostic\nsummary for the user.",{"type":40,"tag":48,"props":5838,"children":5839},{},[5840],{"type":45,"value":5841},"Structure the summary as:",{"type":40,"tag":75,"props":5843,"children":5847},{"className":5844,"code":5846,"language":45},[5845],"language-text","Service: \u003Cservice-name>\nTime window: \u003Cfrom> to \u003Cto>\nIncident start: \u003Ctimestamp from error rate onset>\n\nError signal:\n  - Error rate: \u003Ctrend description, not fabricated value>\n  - Status codes: \u003Cwhich codes are elevated>\n\nLatency signal:\n  - P95 latency: \u003Ctrend description>\n  - Latency onset: \u003Cbefore\u002Fafter\u002Fsame time as errors>\n\nLog evidence:\n  - Error pattern: \u003Crecurring message or exception>\n  - First occurrence: \u003Ctimestamp>\n  - Frequency: \u003Chow often in the window>\n\nRelated resources:\n  - Firing alerts: \u003Cnames or \"none found\">\n  - Relevant dashboards: \u003Cnames or UIDs>\n\nLikely root cause:\n  - \u003CPrimary hypothesis based on all signals>\n\nRecommended next actions:\n  1. \u003CSpecific action — check dependency, review deploy, inspect resource usage>\n  2. \u003CAdditional action>\n",[5848],{"type":40,"tag":66,"props":5849,"children":5850},{"__ignoreMap":80},[5851],{"type":45,"value":5846},{"type":40,"tag":48,"props":5853,"children":5854},{},[5855,5856,5862,5864,5869],{"type":45,"value":987},{"type":40,"tag":66,"props":5857,"children":5859},{"className":5858},[],[5860],{"type":45,"value":5861},"-o graph",{"type":45,"value":5863}," for any visualizations shared with the user. Use ",{"type":40,"tag":66,"props":5865,"children":5867},{"className":5866},[],[5868],{"type":45,"value":4335},{"type":45,"value":5870}," for\ndata retrieved for your own analysis.",{"type":40,"tag":5872,"props":5873,"children":5874},"hr",{},[],{"type":40,"tag":54,"props":5876,"children":5878},{"id":5877},"example-scenarios",[5879],{"type":45,"value":5880},"Example Scenarios",{"type":40,"tag":48,"props":5882,"children":5883},{},[5884,5886,5895],{"type":45,"value":5885},"For complete end-to-end command sequences mapped to the steps above, see\n",{"type":40,"tag":5074,"props":5887,"children":5889},{"href":5888},"references\u002Fexample-scenarios.md",[5890],{"type":40,"tag":66,"props":5891,"children":5893},{"className":5892},[],[5894],{"type":45,"value":5888},{"type":45,"value":572},{"type":40,"tag":4360,"props":5897,"children":5898},{},[5899,5909,5919],{"type":40,"tag":4364,"props":5900,"children":5901},{},[5902,5907],{"type":40,"tag":528,"props":5903,"children":5904},{},[5905],{"type":45,"value":5906},"Scenario 1: HTTP 500 error spike",{"type":45,"value":5908}," - error rate trend, status-code\nbreakdown, log correlation",{"type":40,"tag":4364,"props":5910,"children":5911},{},[5912,5917],{"type":40,"tag":528,"props":5913,"children":5914},{},[5915],{"type":45,"value":5916},"Scenario 2: Latency degradation",{"type":45,"value":5918}," - P95 trend, per-endpoint breakdown,\ndependency latency",{"type":40,"tag":4364,"props":5920,"children":5921},{},[5922,5927,5929,5934,5936,5942],{"type":40,"tag":528,"props":5923,"children":5924},{},[5925],{"type":45,"value":5926},"Scenario 3: Service down \u002F no data",{"type":45,"value":5928}," - ",{"type":40,"tag":66,"props":5930,"children":5932},{"className":5931},[],[5933],{"type":45,"value":968},{"type":45,"value":5935}," checks, ",{"type":40,"tag":66,"props":5937,"children":5939},{"className":5938},[],[5940],{"type":45,"value":5941},"absent()",{"type":45,"value":5943},", crash\nsignals in logs",{"type":40,"tag":48,"props":5945,"children":5946},{},[5947],{"type":45,"value":5948},"Read the matching scenario when starting an investigation of that shape;\notherwise follow the numbered workflow directly.",{"type":40,"tag":5872,"props":5950,"children":5951},{},[],{"type":40,"tag":54,"props":5953,"children":5955},{"id":5954},"references",[5956],{"type":45,"value":5957},"References",{"type":40,"tag":4360,"props":5959,"children":5960},{},[5961,5974,5987,6001],{"type":40,"tag":4364,"props":5962,"children":5963},{},[5964,5972],{"type":40,"tag":5074,"props":5965,"children":5966},{"href":5888},[5967],{"type":40,"tag":66,"props":5968,"children":5970},{"className":5969},[],[5971],{"type":45,"value":5888},{"type":45,"value":5973}," - Full\ncommand sequences for the three common scenarios (error spike, latency\ndegradation, service down).",{"type":40,"tag":4364,"props":5975,"children":5976},{},[5977,5985],{"type":40,"tag":5074,"props":5978,"children":5979},{"href":837},[5980],{"type":40,"tag":66,"props":5981,"children":5983},{"className":5982},[],[5984],{"type":45,"value":837},{"type":45,"value":5986}," — Recovery\npatterns for auth errors (401\u002F403), datasource not found, empty results,\nquery timeouts, and malformed PromQL\u002FLogQL syntax.",{"type":40,"tag":4364,"props":5988,"children":5989},{},[5990,5999],{"type":40,"tag":5074,"props":5991,"children":5993},{"href":5992},"references\u002Fquery-patterns.md",[5994],{"type":40,"tag":66,"props":5995,"children":5997},{"className":5996},[],[5998],{"type":45,"value":5992},{"type":45,"value":6000}," — Advanced\nquery patterns for Prometheus and Loki datasources, including time range\nformats, label\u002Fmetadata discovery workflows, output format reference, Loki\nseries limits, and indexed vs structured-metadata vs parsed label rules.",{"type":40,"tag":4364,"props":6002,"children":6003},{},[6004,6012,6014,6020,6021,6027],{"type":40,"tag":5074,"props":6005,"children":6006},{"href":5076},[6007],{"type":40,"tag":66,"props":6008,"children":6010},{"className":6009},[],[6011],{"type":45,"value":5076},{"type":45,"value":6013}," — TraceQL\nquery patterns for Tempo trace search, attribute scoping rules, and the\ndistinction between ",{"type":40,"tag":66,"props":6015,"children":6017},{"className":6016},[],[6018],{"type":45,"value":6019},"traces query",{"type":45,"value":4229},{"type":40,"tag":66,"props":6022,"children":6024},{"className":6023},[],[6025],{"type":45,"value":6026},"traces get",{"type":45,"value":201},{"type":40,"tag":6029,"props":6030,"children":6031},"style",{},[6032],{"type":45,"value":6033},"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":6035,"total":6132},[6036,6051,6067,6080,6095,6112,6119],{"slug":6037,"name":6037,"fn":6038,"description":6039,"org":6040,"tags":6041,"stars":23,"repoUrl":24,"updatedAt":6050},"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},[6042,6045,6046,6049],{"name":6043,"slug":6044,"type":15},"Agents","agents",{"name":9,"slug":8,"type":15},{"name":6047,"slug":6048,"type":15},"Monitoring","monitoring",{"name":13,"slug":14,"type":15},"2026-07-25T05:30:40.29622",{"slug":6052,"name":6052,"fn":6053,"description":6054,"org":6055,"tags":6056,"stars":23,"repoUrl":24,"updatedAt":6066},"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},[6057,6058,6059,6062,6065],{"name":6043,"slug":6044,"type":15},{"name":9,"slug":8,"type":15},{"name":6060,"slug":6061,"type":15},"Instrumentation","instrumentation",{"name":6063,"slug":6064,"type":15},"LLM","llm",{"name":13,"slug":14,"type":15},"2026-07-31T05:53:52.580237",{"slug":6068,"name":6068,"fn":6069,"description":6070,"org":6071,"tags":6072,"stars":23,"repoUrl":24,"updatedAt":6079},"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},[6073,6074,6077,6078],{"name":6043,"slug":6044,"type":15},{"name":6075,"slug":6076,"type":15},"Evals","evals",{"name":9,"slug":8,"type":15},{"name":13,"slug":14,"type":15},"2026-07-31T05:53:53.576347",{"slug":6081,"name":6081,"fn":6082,"description":6083,"org":6084,"tags":6085,"stars":23,"repoUrl":24,"updatedAt":6094},"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},[6086,6087,6088,6091],{"name":6043,"slug":6044,"type":15},{"name":9,"slug":8,"type":15},{"name":6089,"slug":6090,"type":15},"QA","qa",{"name":6092,"slug":6093,"type":15},"Testing","testing","2026-07-31T05:53:51.62785",{"slug":6096,"name":6096,"fn":6097,"description":6098,"org":6099,"tags":6100,"stars":23,"repoUrl":24,"updatedAt":6111},"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},[6101,6104,6107,6110],{"name":6102,"slug":6103,"type":15},"Dashboards","dashboards",{"name":6105,"slug":6106,"type":15},"Data Visualization","data-visualization",{"name":6108,"slug":6109,"type":15},"Design","design",{"name":9,"slug":8,"type":15},"2026-07-25T05:30:46.289717",{"slug":4,"name":4,"fn":5,"description":6,"org":6113,"tags":6114,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[6115,6116,6117,6118],{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"slug":6120,"name":6120,"fn":6121,"description":6122,"org":6123,"tags":6124,"stars":23,"repoUrl":24,"updatedAt":6131},"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},[6125,6126,6127,6130],{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},{"name":6128,"slug":6129,"type":15},"Graph Analysis","graph-analysis",{"name":13,"slug":14,"type":15},"2026-07-25T05:30:39.380934",24,{"items":6134,"total":6266},[6135,6152,6171,6190,6197,6205,6212,6219,6226,6233,6240,6254],{"slug":6136,"name":6136,"fn":6137,"description":6138,"org":6139,"tags":6140,"stars":6149,"repoUrl":6150,"updatedAt":6151},"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},[6141,6144,6147,6148],{"name":6142,"slug":6143,"type":15},"Distributed Tracing","distributed-tracing",{"name":6145,"slug":6146,"type":15},"Frontend","frontend",{"name":6047,"slug":6048,"type":15},{"name":13,"slug":14,"type":15},1103,"https:\u002F\u002Fgithub.com\u002Fgrafana\u002Ffaro-web-sdk","2026-07-12T07:43:24.63314",{"slug":6153,"name":6153,"fn":6154,"description":6155,"org":6156,"tags":6157,"stars":6168,"repoUrl":6169,"updatedAt":6170},"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},[6158,6161,6164,6167],{"name":6159,"slug":6160,"type":15},"API Development","api-development",{"name":6162,"slug":6163,"type":15},"Authentication","authentication",{"name":6165,"slug":6166,"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":6172,"name":6172,"fn":6173,"description":6174,"org":6175,"tags":6176,"stars":6168,"repoUrl":6169,"updatedAt":6189},"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},[6177,6180,6183,6184,6187],{"name":6178,"slug":6179,"type":15},"CSV","csv",{"name":6181,"slug":6182,"type":15},"Data Analysis","data-analysis",{"name":9,"slug":8,"type":15},{"name":6185,"slug":6186,"type":15},"GraphQL","graphql",{"name":6188,"slug":537,"type":15},"JSON","2026-07-15T05:34:05.773947",{"slug":6037,"name":6037,"fn":6038,"description":6039,"org":6191,"tags":6192,"stars":23,"repoUrl":24,"updatedAt":6050},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[6193,6194,6195,6196],{"name":6043,"slug":6044,"type":15},{"name":9,"slug":8,"type":15},{"name":6047,"slug":6048,"type":15},{"name":13,"slug":14,"type":15},{"slug":6052,"name":6052,"fn":6053,"description":6054,"org":6198,"tags":6199,"stars":23,"repoUrl":24,"updatedAt":6066},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[6200,6201,6202,6203,6204],{"name":6043,"slug":6044,"type":15},{"name":9,"slug":8,"type":15},{"name":6060,"slug":6061,"type":15},{"name":6063,"slug":6064,"type":15},{"name":13,"slug":14,"type":15},{"slug":6068,"name":6068,"fn":6069,"description":6070,"org":6206,"tags":6207,"stars":23,"repoUrl":24,"updatedAt":6079},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[6208,6209,6210,6211],{"name":6043,"slug":6044,"type":15},{"name":6075,"slug":6076,"type":15},{"name":9,"slug":8,"type":15},{"name":13,"slug":14,"type":15},{"slug":6081,"name":6081,"fn":6082,"description":6083,"org":6213,"tags":6214,"stars":23,"repoUrl":24,"updatedAt":6094},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[6215,6216,6217,6218],{"name":6043,"slug":6044,"type":15},{"name":9,"slug":8,"type":15},{"name":6089,"slug":6090,"type":15},{"name":6092,"slug":6093,"type":15},{"slug":6096,"name":6096,"fn":6097,"description":6098,"org":6220,"tags":6221,"stars":23,"repoUrl":24,"updatedAt":6111},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[6222,6223,6224,6225],{"name":6102,"slug":6103,"type":15},{"name":6105,"slug":6106,"type":15},{"name":6108,"slug":6109,"type":15},{"name":9,"slug":8,"type":15},{"slug":4,"name":4,"fn":5,"description":6,"org":6227,"tags":6228,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[6229,6230,6231,6232],{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"slug":6120,"name":6120,"fn":6121,"description":6122,"org":6234,"tags":6235,"stars":23,"repoUrl":24,"updatedAt":6131},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[6236,6237,6238,6239],{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},{"name":6128,"slug":6129,"type":15},{"name":13,"slug":14,"type":15},{"slug":106,"name":106,"fn":6241,"description":6242,"org":6243,"tags":6244,"stars":23,"repoUrl":24,"updatedAt":6253},"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},[6245,6248,6249,6250],{"name":6246,"slug":6247,"type":15},"CLI","cli",{"name":9,"slug":8,"type":15},{"name":6047,"slug":6048,"type":15},{"name":6251,"slug":6252,"type":15},"Operations","operations","2026-07-31T05:53:50.587304",{"slug":6255,"name":6255,"fn":6256,"description":6257,"org":6258,"tags":6259,"stars":23,"repoUrl":24,"updatedAt":6265},"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},[6260,6261,6262],{"name":6246,"slug":6247,"type":15},{"name":9,"slug":8,"type":15},{"name":6263,"slug":6264,"type":15},"Presentations","presentations","2026-07-25T05:30:45.282458",80]