[{"data":1,"prerenderedAt":1092},["ShallowReactive",2],{"content-\u002Fplugins\u002Faio-diagramming\u002Faio-grafana-diagram":3,"children-\u002Fplugins\u002Faio-diagramming\u002Faio-grafana-diagram":1091,"twin-\u002Fplugins\u002Faio-diagramming\u002Faio-grafana-diagram":1086},{"id":4,"title":5,"author":6,"body":7,"budget_tier":6,"build_tags":6,"created":6,"description":1082,"document_type":1083,"extension":1084,"game":6,"install":36,"investment_tier":6,"league":6,"meta":1085,"navigation":1086,"patch":6,"path":1087,"plugin":24,"profit_per_hour":6,"ratings":6,"seo":1088,"skills_count":6,"status":6,"stem":1089,"strategy_tier":6,"tags":6,"updated":6,"version":6,"weight":6,"__hash__":1090},"content\u002Fplugins\u002Faio-diagramming\u002Faio-grafana-diagram.md","aio-grafana-diagram",null,{"type":8,"value":9,"toc":1020},"minimark",[10,37,42,47,57,61,66,69,96,106,112,116,119,148,152,155,180,184,187,195,205,208,212,216,227,233,237,244,250,254,274,278,282,290,294,300,310,314,318,329,333,336,342,352,356,361,367,385,390,396,405,409,418,429,432,446,449,457,461,479,487,503,507,511,514,520,524,538,542,545,550,556,561,567,582,586,589,633,636,640,643,649,653,657,663,667,673,677,683,687,693,697,703,707,713,717,721,724,727,741,745,748,756,760,763,777,781,784,790,794,838,842,848,852,856,862,865,869,875,878,882,888,892,896,918,922,946,950,961,965,979,983],[11,12,13],"blockquote",{},[14,15,16,17,25,26,25,30,33,34],"p",{},"From plugin ",[18,19,21],"a",{"href":20},"\u002Fplugins\u002Faio-diagramming",[22,23,24],"strong",{},"aio-diagramming"," · ",[27,28,29],"code",{},"v1.0.2",[22,31,32],{},"Install:"," ",[27,35,36],{},"\u002Fplugin install aio-diagramming@aiocean-plugins",[38,39,41],"h1",{"id":40},"grafana-dashboard-diagram-generator","Grafana Dashboard Diagram Generator",[43,44,46],"h2",{"id":45},"environment","Environment",[48,49,50],"ul",{},[51,52,53,54],"li",{},"grafana-cli: !",[27,55,56],{},"which grafana-cli 2>\u002Fdev\u002Fnull || echo \"NOT INSTALLED\"",[43,58,60],{"id":59},"objective-workflow","Objective Workflow",[62,63,65],"h3",{"id":64},"phase-1-discover-analyze-codebase-architecture","Phase 1: DISCOVER — Analyze Codebase Architecture",[14,67,68],{},"Scan the project to identify system components:",[70,71,72,78,84,90],"ol",{},[51,73,74,77],{},[22,75,76],{},"Services",": Find service entry points, main files, Dockerfiles, docker-compose services",[51,79,80,83],{},[22,81,82],{},"APIs",": Identify HTTP routes, gRPC definitions, GraphQL schemas",[51,85,86,89],{},[22,87,88],{},"Data flows",": Trace database connections, message queues, cache layers, external API calls",[51,91,92,95],{},[22,93,94],{},"Infrastructure",": Load balancers, CDNs, monitoring endpoints from config\u002Finfra files",[97,98,104],"pre",{"className":99,"code":101,"language":102,"meta":103},[100],"language-bash","# Example discovery commands\nls docker-compose*.yml Dockerfile* k8s\u002F infra\u002F 2>\u002Fdev\u002Fnull\n# Look for service definitions, route handlers, DB connection strings\n","bash","",[27,105,101],{"__ignoreMap":103},[14,107,108,109],{},"Output a component inventory: ",[27,110,111],{},"[service_name, type, connections[], metrics_available[]]",[62,113,115],{"id":114},"phase-2-generate-create-mermaid-diagram-code","Phase 2: GENERATE — Create Mermaid Diagram Code",[14,117,118],{},"Based on discovered components, generate Mermaid syntax:",[70,120,121,136,139,142,145],{},[51,122,123,124,127,128,131,132,135],{},"Choose diagram type: ",[27,125,126],{},"graph LR"," (service flow), ",[27,129,130],{},"graph TB"," (layered arch), ",[27,133,134],{},"sequenceDiagram"," (request flow)",[51,137,138],{},"Create nodes with meaningful IDs matching metric naming conventions (underscores, no special chars)",[51,140,141],{},"Use subgraphs to group related services (Frontend, Backend, Data, Infrastructure)",[51,143,144],{},"Add edge labels for protocol\u002Frelationship types (HTTP, gRPC, TCP, pub\u002Fsub)",[51,146,147],{},"Keep to 10-15 nodes max for readability",[62,149,151],{"id":150},"phase-3-bind-map-metrics-to-diagram-nodes","Phase 3: BIND — Map Metrics to Diagram Nodes",[14,153,154],{},"For each node, identify and bind a relevant metric:",[70,156,157,160,167,174,177],{},[51,158,159],{},"Match node IDs to available Prometheus\u002Fdatasource metric aliases",[51,161,162,163,166],{},"Generate query targets with ",[27,164,165],{},"format: \"time_series\""," (required for diagram binding)",[51,168,169,170,173],{},"Ensure every query includes a ",[27,171,172],{},"time"," field — nodes without time series will not update",[51,175,176],{},"Set thresholds: Green (healthy), Yellow (degraded), Red (critical)",[51,178,179],{},"Use metric composites when a node health depends on multiple signals",[62,181,183],{"id":182},"phase-4-output-generate-importable-grafana-panel-json","Phase 4: OUTPUT — Generate Importable Grafana Panel JSON",[14,185,186],{},"Produce a complete panel JSON block ready to paste into a Grafana dashboard:",[97,188,193],{"className":189,"code":191,"language":192,"meta":103},[190],"language-json","{\n  \"type\": \"jdbranham-diagram-panel\",\n  \"title\": \"\u003Cgenerated title>\",\n  \"gridPos\": { \"h\": 8, \"w\": 12, \"x\": 0, \"y\": 0 },\n  \"targets\": [ \u002F* generated queries *\u002F ],\n  \"options\": { \"display\": { \"diagramDefinition\": \"\u003Cgenerated mermaid>\" } },\n  \"fieldConfig\": { \"defaults\": { \"thresholds\": { \u002F* generated thresholds *\u002F } } }\n}\n","json",[27,194,191],{"__ignoreMap":103},[14,196,197,198,204],{},"Also output the raw Mermaid code separately so the user can preview at ",[18,199,203],{"href":200,"rel":201},"https:\u002F\u002Fmermaid.live",[202],"nofollow","mermaid.live",".",[206,207],"hr",{},[43,209,211],{"id":210},"reference-material","Reference Material",[62,213,215],{"id":214},"installation","Installation",[14,217,218,219,222,223,226],{},"The ",[22,220,221],{},"grafana-diagram"," plugin (marketplace: ",[27,224,225],{},"jdbranham-diagram-panel",") enables dynamic, data-driven diagrams in Grafana using Mermaid.js syntax.",[97,228,231],{"className":229,"code":230,"language":102,"meta":103},[100],"grafana-cli plugins install jdbranham-diagram-panel\n# Restart Grafana after installation\n",[27,232,230],{"__ignoreMap":103},[62,234,236],{"id":235},"using-in-json-dashboard","Using in JSON Dashboard",[14,238,239,33,242],{},[22,240,241],{},"Panel type ID:",[27,243,225],{},[97,245,248],{"className":246,"code":247,"language":192,"meta":103},[190],"{\n  \"type\": \"jdbranham-diagram-panel\",\n  \"title\": \"Service Health Diagram\",\n  \"gridPos\": { \"h\": 8, \"w\": 12, \"x\": 0, \"y\": 0 },\n  \"targets\": [\n    {\n      \"datasource\": \"Prometheus\",\n      \"refId\": \"A\",\n      \"expr\": \"up{job=\\\"api\\\"}\",\n      \"legendFormat\": \"{{instance}}\"\n    }\n  ],\n  \"options\": {\n    \"display\": {\n      \"diagramDefinition\": \"graph LR\\n    api --> db\\n    api --> cache\"\n    }\n  }\n}\n",[27,249,247],{"__ignoreMap":103},[62,251,253],{"id":252},"adding-diagram-panel-via-ui","Adding Diagram Panel via UI",[70,255,256,263],{},[51,257,258,259,262],{},"Open dashboard > Click ",[22,260,261],{},"Add panel"," (+ button)",[51,264,265,266,269,270,273],{},"Search for ",[27,267,268],{},"diagram",", select ",[22,271,272],{},"Diagram"," (by jdbranham)",[62,275,277],{"id":276},"quick-start","Quick Start",[62,279,281],{"id":280},"basic-mermaid-diagram","Basic Mermaid Diagram",[97,283,288],{"className":284,"code":286,"language":287},[285],"language-text","graph LR\n    A --> B\n    B --> C\n    C --> A\n","text",[27,289,286],{"__ignoreMap":103},[62,291,293],{"id":292},"named-nodes-with-icons","Named Nodes with Icons",[97,295,298],{"className":296,"code":297,"language":287},[285],"graph LR\n    LB[Load Balancer] --> web1\n    web1 --> app1(fa:fa-check App1)\n    web1 --> app2(fa:fa-ban App2)\n    app1 --> DB[(Database)]\n",[27,299,297],{"__ignoreMap":103},[14,301,302,305,306,309],{},[22,303,304],{},"Icon prefix",": ",[27,307,308],{},"fa:fa-{icon-name}"," (Font Awesome 5)",[43,311,313],{"id":312},"data-binding-the-core-feature","Data Binding - The Core Feature",[62,315,317],{"id":316},"how-it-works","How It Works",[70,319,320,323,326],{},[51,321,322],{},"Define nodes with IDs in Mermaid syntax",[51,324,325],{},"Query returns metric series with aliases matching those IDs",[51,327,328],{},"Plugin matches series alias to node ID and applies color based on value\u002Fthresholds",[62,330,332],{"id":331},"character-replacement","Character Replacement",[14,334,335],{},"Special characters in metric names are auto-replaced with underscore:",[97,337,340],{"className":338,"code":339,"language":287},[285],"\" , ; = : { } \u002F\n",[27,341,339],{"__ignoreMap":103},[14,343,344,345,348,349],{},"Example: ",[27,346,347],{},"metric-name"," becomes ",[27,350,351],{},"metric_name",[62,353,355],{"id":354},"example-binding-metrics-to-nodes","Example: Binding Metrics to Nodes",[14,357,358],{},[22,359,360],{},"Mermaid Definition:",[97,362,365],{"className":363,"code":364,"language":287},[285],"graph LR\n    api --> auth\n    api --> db\n    auth --> user_db\n",[27,366,364],{"__ignoreMap":103},[14,368,369,33,372,375,376,375,379,375,382],{},[22,370,371],{},"Query aliases should be:",[27,373,374],{},"api",", ",[27,377,378],{},"auth",[27,380,381],{},"db",[27,383,384],{},"user_db",[14,386,387],{},[22,388,389],{},"Or use explicit names:",[97,391,394],{"className":392,"code":393,"language":287},[285],"graph LR\n    api_gateway[API Gateway] --> auth_service[Auth Service]\n",[27,395,393],{"__ignoreMap":103},[14,397,398,399,375,402],{},"Query aliases: ",[27,400,401],{},"api_gateway",[27,403,404],{},"auth_service",[62,406,408],{"id":407},"critical-time-field-required-for-mermaid-binding","Critical: Time Field Required for Mermaid Binding",[14,410,411,413,414,417],{},[27,412,225],{}," only binds\u002Fupdates nodes for series that include a ",[22,415,416],{},"time field",".\nIf your query returns only a single table value (no time column), stat cards may show data but Mermaid nodes will not update.",[14,419,420,421,424,425,428],{},"This comes from plugin behavior in ",[27,422,423],{},"getDiagramSeriesModel"," (",[27,426,427],{},"getTimeField(...)"," is required; series without time are skipped).",[14,430,431],{},"Use:",[48,433,434,438,443],{},[51,435,436],{},[27,437,165],{},[51,439,440,442],{},[27,441,172],{}," column in milliseconds",[51,444,445],{},"metric alias matching your Mermaid node ID\u002Ftext",[14,447,448],{},"MySQL example (working):",[97,450,455],{"className":451,"code":453,"language":454,"meta":103},[452],"language-sql","SELECT\n  FLOOR(UNIX_TIMESTAMP(Timestamp) \u002F 60) * 60 * 1000 as time,\n  COALESCE(\n    ROUND(\n      SUM(CASE WHEN StatusCode = 'Error' THEN 1 ELSE 0 END) * 100.0 \u002F NULLIF(COUNT(*), 0),\n      2\n    ),\n    0\n  ) as lambda_metric\nFROM otel.otel_traces\nWHERE $__timeFilter(Timestamp)\n  AND ServiceName LIKE 'orderfns%'\nGROUP BY time\nORDER BY time\n","sql",[27,456,453],{"__ignoreMap":103},[62,458,460],{"id":459},"textvalue-rendering-behavior","Text\u002FValue Rendering Behavior",[48,462,463,473,476],{},[51,464,465,468,469,472],{},[27,466,467],{},"{{value}}"," inside Mermaid labels is ",[22,470,471],{},"not"," a guaranteed templating mechanism.",[51,474,475],{},"Plugin appends metric value to a matched node when binding succeeds.",[51,477,478],{},"For reliable matching, use a dedicated metric node with alias text in quotes, e.g.:",[97,480,485],{"className":481,"code":483,"language":484,"meta":103},[482],"language-mermaid","graph LR\n  lambda --> metric_box[\"lambda_metric\"]\n","mermaid",[27,486,483],{"__ignoreMap":103},[48,488,489,496],{},[51,490,491,492,495],{},"Keep labels with special characters quoted, e.g. ",[27,493,494],{},"node[\"Error Rate (%)\"]",", to avoid Mermaid parse errors.",[51,497,498,499,502],{},"Avoid keeping empty\u002Fplaceholder targets (e.g. ",[27,500,501],{},"refId"," with no SQL); keep one clean target per metric to reduce ambiguity.",[43,504,506],{"id":505},"thresholds-and-colors","Thresholds and Colors",[62,508,510],{"id":509},"setting-thresholds","Setting Thresholds",[14,512,513],{},"In panel editor > Field options > Standard options > Thresholds:",[97,515,518],{"className":516,"code":517,"language":287},[285],"Green: 0-50\nYellow: 50-80\nRed: 80-100\n",[27,519,517],{"__ignoreMap":103},[62,521,523],{"id":522},"indicator-mode","Indicator Mode",[48,525,526,532],{},[51,527,528,531],{},[22,529,530],{},"Text color",": Colors the node text based on threshold",[51,533,534,537],{},[22,535,536],{},"Background color",": Fills the node shape with threshold color",[43,539,541],{"id":540},"metric-composites","Metric Composites",[14,543,544],{},"Combine multiple metrics for a single node. The \"worst\" threshold wins.",[14,546,547],{},[22,548,549],{},"Composite Definition in Panel Editor:",[97,551,554],{"className":552,"code":553,"language":287},[285],"Name: xyz\nMetrics: A-series, B-series\n",[27,555,553],{"__ignoreMap":103},[14,557,558],{},[22,559,560],{},"Diagram uses composite name:",[97,562,565],{"className":563,"code":564,"language":287},[285],"graph LR\n    xyz[Combined Status]\n",[27,566,564],{"__ignoreMap":103},[14,568,569,570,573,574,577,578,581],{},"If ",[27,571,572],{},"A-series"," is green but ",[27,575,576],{},"B-series"," is red, ",[27,579,580],{},"xyz"," shows red.",[43,583,585],{"id":584},"value-mapping","Value Mapping",[14,587,588],{},"Convert numeric values to text:",[590,591,592,605],"table",{},[593,594,595],"thead",{},[596,597,598,602],"tr",{},[599,600,601],"th",{},"Value",[599,603,604],{},"Text",[606,607,608,617,625],"tbody",{},[596,609,610,614],{},[611,612,613],"td",{},"0",[611,615,616],{},"OK",[596,618,619,622],{},[611,620,621],{},"1",[611,623,624],{},"WARN",[596,626,627,630],{},[611,628,629],{},"2",[611,631,632],{},"CRIT",[14,634,635],{},"Display: Node shows \"OK\" (green), \"WARN\" (yellow), \"CRIT\" (red)",[43,637,639],{"id":638},"using-grafana-variables","Using Grafana Variables",[14,641,642],{},"Variables in diagram are auto-replaced:",[97,644,647],{"className":645,"code":646,"language":287},[285],"graph LR\n    $server --> $database\n    $database --> $cache\n",[27,648,646],{"__ignoreMap":103},[43,650,652],{"id":651},"mermaid-syntax-reference","Mermaid Syntax Reference",[62,654,656],{"id":655},"flowchart-lrrltdbt","Flowchart (LR\u002FRL\u002FTD\u002FBT)",[97,658,661],{"className":659,"code":660,"language":287},[285],"graph LR\n    A[Start] --> B{Decision}\n    B -->|Yes| C[Action 1]\n    B -->|No| D[Action 2]\n    C --> E[End]\n    D --> E\n",[27,662,660],{"__ignoreMap":103},[62,664,666],{"id":665},"sequence-diagram","Sequence Diagram",[97,668,671],{"className":669,"code":670,"language":287},[285],"sequenceDiagram\n    User->>API: Request\n    API->>DB: Query\n    DB-->>API: Result\n    API-->>User: Response\n",[27,672,670],{"__ignoreMap":103},[62,674,676],{"id":675},"gantt-chart","Gantt Chart",[97,678,681],{"className":679,"code":680,"language":287},[285],"gantt\n    title Project Timeline\n    dateFormat  YYYY-MM-DD\n    section Design\n    Research     :a1, 2024-01-01, 7d\n    Prototype    :a2, after a1, 14d\n    section Dev\n    Backend     :b1, after a2, 21d\n    Frontend    :b2, after b1, 14d\n",[27,682,680],{"__ignoreMap":103},[62,684,686],{"id":685},"state-diagram","State Diagram",[97,688,691],{"className":689,"code":690,"language":287},[285],"stateDiagram-v2\n    [*] --> Idle\n    Idle --> Processing: Start\n    Processing --> Success: Complete\n    Processing --> Error: Fail\n    Success --> [*]\n    Error --> Idle: Retry\n",[27,692,690],{"__ignoreMap":103},[62,694,696],{"id":695},"entity-relationship-diagram","Entity Relationship Diagram",[97,698,701],{"className":699,"code":700,"language":287},[285],"erDiagram\n    USER ||--o{ ORDER : places\n    ORDER }|--|{ LINE_ITEM : contains\n    PRODUCT ||--o{ LINE_ITEM : \"included in\"\n",[27,702,700],{"__ignoreMap":103},[62,704,706],{"id":705},"journey-diagram","Journey Diagram",[97,708,711],{"className":709,"code":710,"language":287},[285],"journey\n    title User Checkout Flow\n    section Login\n      Enter credentials: 5: User\n      2FA prompt: 3: User\n    section Checkout\n      Add items: 5: User\n      Payment: 4: User, System\n",[27,712,710],{"__ignoreMap":103},[43,714,716],{"id":715},"advanced-features","Advanced Features",[62,718,720],{"id":719},"custom-theme","Custom Theme",[14,722,723],{},"Panel Editor > Display > Theme > Custom",[14,725,726],{},"Define colors for:",[48,728,729,732,735,738],{},[51,730,731],{},"Primary (lines\u002Farrows)",[51,733,734],{},"Fill (node background)",[51,736,737],{},"Font (text color)",[51,739,740],{},"Edge labels",[62,742,744],{"id":743},"css-override","CSS Override",[14,746,747],{},"Panel Editor > Display > CSS Override",[97,749,754],{"className":750,"code":752,"language":753,"meta":103},[751],"language-css",".node rect {\n  stroke-width: 3px;\n}\n.edgePath .path {\n  stroke-width: 3px;\n}\n","css",[27,755,752],{"__ignoreMap":103},[62,757,759],{"id":758},"field-overrides","Field Overrides",[14,761,762],{},"Per-series configuration:",[48,764,765,768,771,774],{},[51,766,767],{},"Different thresholds per metric",[51,769,770],{},"Custom decimal precision",[51,772,773],{},"Different aggregation (min\u002Fmax\u002Fmean\u002Flast\u002Fcurrent)",[51,775,776],{},"Custom units",[62,778,780],{"id":779},"link-metrics","Link Metrics",[14,782,783],{},"Link text to metric value in double quotes:",[97,785,788],{"className":786,"code":787,"language":287},[285],"graph LR\n    A[\"metric_A\"] --> B[\"metric_B\"]\n",[27,789,787],{"__ignoreMap":103},[43,791,793],{"id":792},"best-practices","Best Practices",[70,795,796,802,808,814,820,826,832],{},[51,797,798,801],{},[22,799,800],{},"Keep diagrams simple"," - Complex diagrams are hard to read",[51,803,804,807],{},[22,805,806],{},"Use meaningful node IDs"," - Match your metric naming convention",[51,809,810,813],{},[22,811,812],{},"Limit nodes"," - 10-15 nodes max for clarity",[51,815,816,819],{},[22,817,818],{},"Color consistently"," - Use same thresholds across all nodes",[51,821,822,825],{},[22,823,824],{},"Test with data"," - Verify metric aliases match node IDs exactly",[51,827,828,831],{},[22,829,830],{},"Use subgraphs"," - Group related components",[51,833,834,837],{},[22,835,836],{},"Label edges clearly"," - Show relationship types",[62,839,841],{"id":840},"subgraph-example","Subgraph Example",[97,843,846],{"className":844,"code":845,"language":287},[285],"graph TB\n    subgraph Frontend\n        FE1[Web App]\n        FE2[Mobile App]\n    end\n    subgraph Backend\n        API[API Gateway]\n        SVC[Service]\n    end\n    FE1 --> API\n    FE2 --> API\n    API --> SVC\n",[27,847,845],{"__ignoreMap":103},[43,849,851],{"id":850},"common-patterns","Common Patterns",[62,853,855],{"id":854},"service-health-monitor","Service Health Monitor",[97,857,860],{"className":858,"code":859,"language":287},[285],"graph LR\n    LB[Load Balancer]\n    LB --> S1[Server 1]\n    LB --> S2[Server 2]\n    LB --> S3[Server 3]\n    S1 --> DB[(Database)]\n    S2 --> DB\n    S3 --> DB\n",[27,861,859],{"__ignoreMap":103},[14,863,864],{},"Query: Ping\u002FHTTP status for each server and DB.",[62,866,868],{"id":867},"pipeline-status","Pipeline Status",[97,870,873],{"className":871,"code":872,"language":287},[285],"graph LR\n    GIT[Git] --> CI[CI\u002FCD]\n    CI --> STAGE[Staging]\n    STAGE --> PROD[Production]\n    PROD --> MONITOR[Monitoring]\n",[27,874,872],{"__ignoreMap":103},[14,876,877],{},"Query: Build\u002Fdeploy status metrics.",[62,879,881],{"id":880},"infrastructure-overview","Infrastructure Overview",[97,883,886],{"className":884,"code":885,"language":287},[285],"graph TB\n    subgraph \"Data Center A\"\n        LB1[LB]\n        APP1[App Cluster]\n    end\n    subgraph \"Data Center B\"\n        LB2[LB]\n        APP2[App Cluster]\n    end\n    LB1 --> DB[(Primary DB)]\n    LB2 --> DB\n    DB --> REPL[(Replica DB)]\n",[27,887,885],{"__ignoreMap":103},[43,889,891],{"id":890},"troubleshooting","Troubleshooting",[62,893,895],{"id":894},"nodes-not-colored","Nodes not colored?",[48,897,898,901,904,907,910],{},[51,899,900],{},"Check metric aliases exactly match node IDs (after character replacement)",[51,902,903],{},"Verify query returns data",[51,905,906],{},"Check thresholds are configured",[51,908,909],{},"Ensure time range has data",[51,911,912,913,915,916,166],{},"Ensure query has a ",[27,914,172],{}," field and panel target uses ",[27,917,165],{},[62,919,921],{"id":920},"diagram-not-rendering","Diagram not rendering?",[48,923,924,930,933,936],{},[51,925,926,927],{},"Validate Mermaid syntax at ",[18,928,203],{"href":200,"rel":929},[202],[51,931,932],{},"Check browser console for errors",[51,934,935],{},"Try simpler diagram first",[51,937,938,939,942,943,945],{},"Quote labels containing ",[27,940,941],{},"%",", parentheses, or punctuation (example: ",[27,944,494],{},")",[62,947,949],{"id":948},"wrong-colors-showing","Wrong colors showing?",[48,951,952,955,958],{},[51,953,954],{},"Verify threshold values",[51,956,957],{},"Check aggregation method (last\u002Fmax\u002Fmin)",[51,959,960],{},"Ensure numeric data types",[62,962,964],{"id":963},"stat-shows-data-but-mermaid-node-is-empty","Stat shows data but Mermaid node is empty?",[48,966,967,970,976],{},[51,968,969],{},"Stat panel can render table-only single values; diagram panel cannot bind those without time series.",[51,971,972,973,975],{},"Convert diagram query to time series (",[27,974,172],{}," + metric alias).",[51,977,978],{},"Confirm alias equals node ID\u002Ftext after replacement rules.",[43,980,982],{"id":981},"resources","Resources",[48,984,985,994,1003,1011],{},[51,986,987,305,990],{},[22,988,989],{},"Plugin",[18,991,992],{"href":992,"rel":993},"https:\u002F\u002Fgrafana.com\u002Fplugins\u002Fjdbranham-diagram-panel",[202],[51,995,996,305,999],{},[22,997,998],{},"Mermaid Docs",[18,1000,1001],{"href":1001,"rel":1002},"https:\u002F\u002Fmermaid.js.org\u002Fintro\u002F",[202],[51,1004,1005,305,1008],{},[22,1006,1007],{},"Mermaid Live Editor",[18,1009,200],{"href":200,"rel":1010},[202],[51,1012,1013,305,1016,309],{},[22,1014,1015],{},"Icons",[18,1017,1018],{"href":1018,"rel":1019},"https:\u002F\u002Ffontawesome.com\u002Ficons",[202],{"title":103,"searchDepth":1021,"depth":1021,"links":1022},2,[1023,1024,1031,1039,1046,1050,1051,1052,1053,1061,1067,1070,1075,1081],{"id":45,"depth":1021,"text":46},{"id":59,"depth":1021,"text":60,"children":1025},[1026,1028,1029,1030],{"id":64,"depth":1027,"text":65},3,{"id":114,"depth":1027,"text":115},{"id":150,"depth":1027,"text":151},{"id":182,"depth":1027,"text":183},{"id":210,"depth":1021,"text":211,"children":1032},[1033,1034,1035,1036,1037,1038],{"id":214,"depth":1027,"text":215},{"id":235,"depth":1027,"text":236},{"id":252,"depth":1027,"text":253},{"id":276,"depth":1027,"text":277},{"id":280,"depth":1027,"text":281},{"id":292,"depth":1027,"text":293},{"id":312,"depth":1021,"text":313,"children":1040},[1041,1042,1043,1044,1045],{"id":316,"depth":1027,"text":317},{"id":331,"depth":1027,"text":332},{"id":354,"depth":1027,"text":355},{"id":407,"depth":1027,"text":408},{"id":459,"depth":1027,"text":460},{"id":505,"depth":1021,"text":506,"children":1047},[1048,1049],{"id":509,"depth":1027,"text":510},{"id":522,"depth":1027,"text":523},{"id":540,"depth":1021,"text":541},{"id":584,"depth":1021,"text":585},{"id":638,"depth":1021,"text":639},{"id":651,"depth":1021,"text":652,"children":1054},[1055,1056,1057,1058,1059,1060],{"id":655,"depth":1027,"text":656},{"id":665,"depth":1027,"text":666},{"id":675,"depth":1027,"text":676},{"id":685,"depth":1027,"text":686},{"id":695,"depth":1027,"text":696},{"id":705,"depth":1027,"text":706},{"id":715,"depth":1021,"text":716,"children":1062},[1063,1064,1065,1066],{"id":719,"depth":1027,"text":720},{"id":743,"depth":1027,"text":744},{"id":758,"depth":1027,"text":759},{"id":779,"depth":1027,"text":780},{"id":792,"depth":1021,"text":793,"children":1068},[1069],{"id":840,"depth":1027,"text":841},{"id":850,"depth":1021,"text":851,"children":1071},[1072,1073,1074],{"id":854,"depth":1027,"text":855},{"id":867,"depth":1027,"text":868},{"id":880,"depth":1027,"text":881},{"id":890,"depth":1021,"text":891,"children":1076},[1077,1078,1079,1080],{"id":894,"depth":1027,"text":895},{"id":920,"depth":1027,"text":921},{"id":948,"depth":1027,"text":949},{"id":963,"depth":1027,"text":964},{"id":981,"depth":1021,"text":982},"Create Grafana diagrams for system visualization — analyzes codebase to auto-generate Mermaid diagrams with metric binding. For standalone Mermaid diagrams use aio-mermaid instead.","skill","md",{},true,"\u002Fplugins\u002Faio-diagramming\u002Faio-grafana-diagram",{"title":5,"description":1082},"plugins\u002Faio-diagramming\u002Faio-grafana-diagram","kSCO8Hy8j8GHnsFSlcfihYVmSZupj4vpI9CU2vh0-rw",[],1779712313198]