{
   "graphTooltip": 1,
   "panels": [
      {
         "collapsed": false,
         "gridPos": {
            "h": 1,
            "w": 24,
            "x": 0,
            "y": 0
         },
         "id": 1,
         "panels": [ ],
         "title": "Deployed Versions",
         "type": "row"
      },
      {
         "datasource": {
            "type": "datasource",
            "uid": "-- Mixed --"
         },
         "description": "Version number of each running instance",
         "fieldConfig": {
            "defaults": {
               "custom": {
                  "fillOpacity": 10,
                  "gradientMode": "hue",
                  "showPoints": "never"
               }
            }
         },
         "gridPos": {
            "h": 5,
            "w": 24,
            "x": 0,
            "y": 1
         },
         "id": 2,
         "interval": "5s",
         "options": {
            "legend": {
               "calcs": [ ],
               "displayMode": "list"
            }
         },
         "pluginVersion": "v11.0.0",
         "targets": [
            {
               "datasource": {
                  "type": "prometheus",
                  "uid": "$datasource"
               },
               "expr": "sum(istio_build{component=\"pilot\"}) by (tag)",
               "legendFormat": "Version ({{tag}})"
            }
         ],
         "title": "Pilot Versions",
         "type": "timeseries"
      },
      {
         "collapsed": false,
         "gridPos": {
            "h": 1,
            "w": 24,
            "x": 0,
            "y": 1
         },
         "id": 3,
         "panels": [ ],
         "title": "Resource Usage",
         "type": "row"
      },
      {
         "datasource": {
            "type": "datasource",
            "uid": "-- Mixed --"
         },
         "description": "Memory usage of each running instance",
         "fieldConfig": {
            "defaults": {
               "custom": {
                  "fillOpacity": 10,
                  "gradientMode": "hue",
                  "showPoints": "never"
               },
               "unit": "bytes"
            }
         },
         "gridPos": {
            "h": 10,
            "w": 6,
            "x": 0,
            "y": 2
         },
         "id": 4,
         "interval": "5s",
         "options": {
            "legend": {
               "calcs": [
                  "last",
                  "max"
               ],
               "displayMode": "table"
            }
         },
         "pluginVersion": "v11.0.0",
         "targets": [
            {
               "datasource": {
                  "type": "prometheus",
                  "uid": "$datasource"
               },
               "expr": "sum by (pod) (\n  container_memory_working_set_bytes{container=\"discovery\", pod=~\"istiod-.*\"}\n)",
               "legendFormat": "Container ({{pod}})"
            },
            {
               "datasource": {
                  "type": "prometheus",
                  "uid": "$datasource"
               },
               "expr": "sum by (pod) (\n  go_memstats_stack_inuse_bytes{app=\"istiod\"}\n)",
               "legendFormat": "Stack ({{pod}})"
            },
            {
               "datasource": {
                  "type": "prometheus",
                  "uid": "$datasource"
               },
               "expr": "sum by (pod) (\n  go_memstats_heap_inuse_bytes{app=\"istiod\"}\n)",
               "legendFormat": "Heap (In Use) ({{pod}})"
            },
            {
               "datasource": {
                  "type": "prometheus",
                  "uid": "$datasource"
               },
               "expr": "sum by (pod) (\n  go_memstats_heap_alloc_bytes{app=\"istiod\"}\n)",
               "legendFormat": "Heap (Allocated) ({{pod}})"
            }
         ],
         "title": "Memory Usage",
         "type": "timeseries"
      },
      {
         "datasource": {
            "type": "datasource",
            "uid": "-- Mixed --"
         },
         "description": "Details about memory allocations",
         "fieldConfig": {
            "defaults": {
               "custom": {
                  "fillOpacity": 10,
                  "gradientMode": "hue",
                  "showPoints": "never"
               },
               "unit": "Bps"
            },
            "overrides": [
               {
                  "matcher": {
                     "id": "byFrameRefID",
                     "options": "B"
                  },
                  "properties": [
                     {
                        "id": "custom.axisPlacement",
                        "value": "right"
                     },
                     {
                        "id": "unit",
                        "value": "c/s"
                     }
                  ]
               }
            ]
         },
         "gridPos": {
            "h": 10,
            "w": 6,
            "x": 6,
            "y": 2
         },
         "id": 5,
         "interval": "5s",
         "options": {
            "legend": {
               "calcs": [
                  "last",
                  "max"
               ],
               "displayMode": "table"
            }
         },
         "pluginVersion": "v11.0.0",
         "targets": [
            {
               "datasource": {
                  "type": "prometheus",
                  "uid": "$datasource"
               },
               "expr": "sum by (pod) (\n  rate(\n    go_memstats_alloc_bytes_total{app=\"istiod\"}\n  [$__rate_interval])\n)",
               "legendFormat": "Bytes ({{pod}})"
            },
            {
               "datasource": {
                  "type": "prometheus",
                  "uid": "$datasource"
               },
               "expr": "sum by (pod) (\n  rate(\n    go_memstats_mallocs_total{app=\"istiod\"}\n  [$__rate_interval])\n)",
               "legendFormat": "Objects ({{pod}})"
            }
         ],
         "title": "Memory Allocations",
         "type": "timeseries"
      },
      {
         "datasource": {
            "type": "datasource",
            "uid": "-- Mixed --"
         },
         "description": "CPU usage of each running instance",
         "fieldConfig": {
            "defaults": {
               "custom": {
                  "fillOpacity": 10,
                  "gradientMode": "hue",
                  "showPoints": "never"
               }
            }
         },
         "gridPos": {
            "h": 10,
            "w": 6,
            "x": 12,
            "y": 2
         },
         "id": 6,
         "interval": "5s",
         "options": {
            "legend": {
               "calcs": [
                  "last",
                  "max"
               ],
               "displayMode": "table"
            }
         },
         "pluginVersion": "v11.0.0",
         "targets": [
            {
               "datasource": {
                  "type": "prometheus",
                  "uid": "$datasource"
               },
               "expr": "sum by (pod) (\n  irate(\n    container_cpu_usage_seconds_total{container=\"discovery\", pod=~\"istiod-.*\"}\n  [$__rate_interval])\n)",
               "legendFormat": "Container ({{pod}})"
            }
         ],
         "title": "CPU Usage",
         "type": "timeseries"
      },
      {
         "datasource": {
            "type": "datasource",
            "uid": "-- Mixed --"
         },
         "description": "Goroutine count for each running instance",
         "fieldConfig": {
            "defaults": {
               "custom": {
                  "fillOpacity": 10,
                  "gradientMode": "hue",
                  "showPoints": "never"
               }
            }
         },
         "gridPos": {
            "h": 10,
            "w": 6,
            "x": 18,
            "y": 2
         },
         "id": 7,
         "interval": "5s",
         "options": {
            "legend": {
               "calcs": [
                  "last",
                  "max"
               ],
               "displayMode": "table"
            }
         },
         "pluginVersion": "v11.0.0",
         "targets": [
            {
               "datasource": {
                  "type": "prometheus",
                  "uid": "$datasource"
               },
               "expr": "sum by (pod) (\n  go_goroutines{app=\"istiod\"}\n)",
               "legendFormat": "Goroutines ({{pod}})"
            }
         ],
         "title": "Goroutines",
         "type": "timeseries"
      },
      {
         "collapsed": false,
         "gridPos": {
            "h": 1,
            "w": 24,
            "x": 0,
            "y": 3
         },
         "id": 8,
         "panels": [ ],
         "title": "Push Information",
         "type": "row"
      },
      {
         "datasource": {
            "type": "datasource",
            "uid": "-- Mixed --"
         },
         "fieldConfig": {
            "defaults": {
               "custom": {
                  "drawStyle": "bars",
                  "fillOpacity": 100,
                  "gradientMode": "none",
                  "showPoints": "never",
                  "stacking": {
                     "mode": "normal"
                  }
               },
               "unit": "ops"
            },
            "overrides": [
               {
                  "matcher": {
                     "id": "byName",
                     "options": "cds"
                  },
                  "properties": [
                     {
                        "id": "displayName",
                        "value": "Clusters"
                     }
                  ]
               },
               {
                  "matcher": {
                     "id": "byName",
                     "options": "eds"
                  },
                  "properties": [
                     {
                        "id": "displayName",
                        "value": "Endpoints"
                     }
                  ]
               },
               {
                  "matcher": {
                     "id": "byName",
                     "options": "lds"
                  },
                  "properties": [
                     {
                        "id": "displayName",
                        "value": "Listeners"
                     }
                  ]
               },
               {
                  "matcher": {
                     "id": "byName",
                     "options": "rds"
                  },
                  "properties": [
                     {
                        "id": "displayName",
                        "value": "Routes"
                     }
                  ]
               },
               {
                  "matcher": {
                     "id": "byName",
                     "options": "istio.io/debug"
                  },
                  "properties": [
                     {
                        "id": "displayName",
                        "value": "Debug"
                     }
                  ]
               },
               {
                  "matcher": {
                     "id": "byName",
                     "options": "wads"
                  },
                  "properties": [
                     {
                        "id": "displayName",
                        "value": "Authorization"
                     }
                  ]
               },
               {
                  "matcher": {
                     "id": "byName",
                     "options": "wds"
                  },
                  "properties": [
                     {
                        "id": "displayName",
                        "value": "Workloads"
                     }
                  ]
               }
            ]
         },
         "gridPos": {
            "h": 10,
            "w": 8,
            "x": 0,
            "y": 4
         },
         "id": 9,
         "interval": "15s",
         "options": {
            "legend": {
               "calcs": [ ],
               "displayMode": "list"
            }
         },
         "pluginVersion": "v11.0.0",
         "targets": [
            {
               "datasource": {
                  "type": "prometheus",
                  "uid": "$datasource"
               },
               "expr": "sum by (type) (\n  irate(\n    pilot_xds_pushes{}\n  [$__rate_interval])\n)",
               "legendFormat": "{{type}}"
            }
         ],
         "title": "XDS Pushes",
         "type": "timeseries"
      },
      {
         "datasource": {
            "type": "datasource",
            "uid": "-- Mixed --"
         },
         "description": "Size of each xDS push.\n",
         "fieldConfig": {
            "defaults": {
               "custom": {
                  "fillOpacity": 10,
                  "gradientMode": "hue",
                  "showPoints": "never"
               }
            }
         },
         "gridPos": {
            "h": 10,
            "w": 8,
            "x": 8,
            "y": 4
         },
         "id": 10,
         "interval": "5s",
         "options": {
            "legend": {
               "calcs": [
                  "last",
                  "max"
               ],
               "displayMode": "table"
            }
         },
         "pluginVersion": "v11.0.0",
         "targets": [
            {
               "datasource": {
                  "type": "prometheus",
                  "uid": "$datasource"
               },
               "expr": "sum by (type, event) (\n  rate(\n    pilot_k8s_reg_events{}\n  [$__rate_interval])\n)",
               "legendFormat": "{{event}} {{type}}"
            },
            {
               "datasource": {
                  "type": "prometheus",
                  "uid": "$datasource"
               },
               "expr": "sum by (type, event) (\n  rate(\n    pilot_k8s_cfg_events{}\n  [$__rate_interval])\n)",
               "legendFormat": "{{event}} {{type}}"
            },
            {
               "datasource": {
                  "type": "prometheus",
                  "uid": "$datasource"
               },
               "expr": "sum by (type) (\n  rate(\n    pilot_push_triggers{}\n  [$__rate_interval])\n)",
               "legendFormat": "Push {{type}}"
            }
         ],
         "title": "Events",
         "type": "timeseries"
      },
      {
         "datasource": {
            "type": "datasource",
            "uid": "-- Mixed --"
         },
         "description": "Total number of XDS connections\n",
         "fieldConfig": {
            "defaults": {
               "custom": {
                  "fillOpacity": 10,
                  "gradientMode": "hue",
                  "showPoints": "never"
               }
            }
         },
         "gridPos": {
            "h": 10,
            "w": 8,
            "x": 16,
            "y": 4
         },
         "id": 11,
         "interval": "5s",
         "options": {
            "legend": {
               "calcs": [
                  "last",
                  "max"
               ],
               "displayMode": "table"
            }
         },
         "pluginVersion": "v11.0.0",
         "targets": [
            {
               "datasource": {
                  "type": "prometheus",
                  "uid": "$datasource"
               },
               "expr": "sum(envoy_cluster_upstream_cx_active{cluster_name=\"xds-grpc\"})",
               "legendFormat": "Connections (client reported)"
            },
            {
               "datasource": {
                  "type": "prometheus",
                  "uid": "$datasource"
               },
               "expr": "sum(pilot_xds{})",
               "legendFormat": "Connections (server reported)"
            }
         ],
         "title": "Connections",
         "type": "timeseries"
      },
      {
         "datasource": {
            "type": "datasource",
            "uid": "-- Mixed --"
         },
         "description": "Number of push errors. Many of these are at least potentional fatal and should be explored in-depth via Istiod logs.\nNote: metrics here do not use rate() to avoid missing transition from \"No series\"; series are not reported if there are no errors at all.\n",
         "fieldConfig": {
            "defaults": {
               "custom": {
                  "fillOpacity": 10,
                  "gradientMode": "hue",
                  "showPoints": "never"
               }
            }
         },
         "gridPos": {
            "h": 10,
            "w": 8,
            "x": 0,
            "y": 14
         },
         "id": 12,
         "interval": "5s",
         "options": {
            "legend": {
               "calcs": [
                  "last",
                  "max"
               ],
               "displayMode": "table"
            }
         },
         "pluginVersion": "v11.0.0",
         "targets": [
            {
               "datasource": {
                  "type": "prometheus",
                  "uid": "$datasource"
               },
               "expr": "sum by (type) (\n  pilot_total_xds_rejects{}\n)",
               "legendFormat": "Rejected Config ({{type}})"
            },
            {
               "datasource": {
                  "type": "prometheus",
                  "uid": "$datasource"
               },
               "expr": "pilot_total_xds_internal_errors{}",
               "legendFormat": "Internal Errors"
            },
            {
               "datasource": {
                  "type": "prometheus",
                  "uid": "$datasource"
               },
               "expr": "pilot_xds_push_context_errors{}",
               "legendFormat": "Push Context Errors"
            }
         ],
         "title": "Push Errors",
         "type": "timeseries"
      },
      {
         "datasource": {
            "type": "datasource",
            "uid": "-- Mixed --"
         },
         "description": "Count of active and pending proxies managed by each instance.\nPending is expected to converge to zero.\n",
         "gridPos": {
            "h": 10,
            "w": 8,
            "x": 8,
            "y": 14
         },
         "id": 13,
         "interval": "1m",
         "options": {
            "calculation": {
               "xBuckets": {
                  "mode": "size",
                  "value": "1min"
               }
            },
            "cellGap": 0,
            "color": {
               "mode": "scheme",
               "scheme": "Spectral",
               "steps": 128
            },
            "yAxis": {
               "decimals": 0,
               "unit": "s"
            }
         },
         "pluginVersion": "v11.0.0",
         "targets": [
            {
               "datasource": {
                  "type": "prometheus",
                  "uid": "$datasource"
               },
               "expr": "sum(rate(pilot_xds_push_time_bucket{}[1m])) by (le)",
               "format": "heatmap",
               "legendFormat": "{{le}}"
            }
         ],
         "title": "Push Time",
         "type": "heatmap"
      },
      {
         "datasource": {
            "type": "datasource",
            "uid": "-- Mixed --"
         },
         "description": "Size of each xDS push.\n",
         "gridPos": {
            "h": 10,
            "w": 8,
            "x": 16,
            "y": 14
         },
         "id": 14,
         "interval": "1m",
         "options": {
            "calculation": {
               "xBuckets": {
                  "mode": "size",
                  "value": "1min"
               }
            },
            "cellGap": 0,
            "color": {
               "mode": "scheme",
               "scheme": "Spectral",
               "steps": 128
            },
            "yAxis": {
               "decimals": 0,
               "unit": "bytes"
            }
         },
         "pluginVersion": "v11.0.0",
         "targets": [
            {
               "datasource": {
                  "type": "prometheus",
                  "uid": "$datasource"
               },
               "expr": "sum(rate(pilot_xds_config_size_bytes_bucket{}[1m])) by (le)",
               "format": "heatmap",
               "legendFormat": "{{le}}"
            }
         ],
         "title": "Push Size",
         "type": "heatmap"
      },
      {
         "collapsed": false,
         "gridPos": {
            "h": 1,
            "w": 24,
            "x": 0,
            "y": 100
         },
         "id": 15,
         "panels": [ ],
         "title": "Webhooks",
         "type": "row"
      },
      {
         "datasource": {
            "type": "datasource",
            "uid": "-- Mixed --"
         },
         "description": "Rate of XDS push operations, by type. This is incremented on a per-proxy basis.\n",
         "fieldConfig": {
            "defaults": {
               "custom": {
                  "fillOpacity": 10,
                  "gradientMode": "hue",
                  "showPoints": "never"
               }
            }
         },
         "gridPos": {
            "h": 8,
            "w": 12,
            "x": 0,
            "y": 101
         },
         "id": 16,
         "interval": "5s",
         "options": {
            "legend": {
               "calcs": [ ],
               "displayMode": "list"
            }
         },
         "pluginVersion": "v11.0.0",
         "targets": [
            {
               "datasource": {
                  "type": "prometheus",
                  "uid": "$datasource"
               },
               "expr": "sum(\n  rate(\n    galley_validation_passed{}\n  [$__rate_interval])\n)",
               "legendFormat": "Success"
            },
            {
               "datasource": {
                  "type": "prometheus",
                  "uid": "$datasource"
               },
               "expr": "sum(\n  rate(\n    galley_validation_passed{}\n  [$__rate_interval])\n)",
               "legendFormat": "Failure"
            }
         ],
         "title": "Validation",
         "type": "timeseries"
      },
      {
         "datasource": {
            "type": "datasource",
            "uid": "-- Mixed --"
         },
         "description": "Size of each xDS push.\n",
         "fieldConfig": {
            "defaults": {
               "custom": {
                  "fillOpacity": 10,
                  "gradientMode": "hue",
                  "showPoints": "never"
               }
            }
         },
         "gridPos": {
            "h": 8,
            "w": 12,
            "x": 12,
            "y": 101
         },
         "id": 17,
         "interval": "5s",
         "options": {
            "legend": {
               "calcs": [ ],
               "displayMode": "list"
            }
         },
         "pluginVersion": "v11.0.0",
         "targets": [
            {
               "datasource": {
                  "type": "prometheus",
                  "uid": "$datasource"
               },
               "expr": "sum(\n  rate(\n    sidecar_injection_success_total{}\n  [$__rate_interval])\n)",
               "legendFormat": "Success"
            },
            {
               "datasource": {
                  "type": "prometheus",
                  "uid": "$datasource"
               },
               "expr": "sum(\n  rate(\n    sidecar_injection_failure_total{}\n  [$__rate_interval])\n)",
               "legendFormat": "Failure"
            }
         ],
         "title": "Injection",
         "type": "timeseries"
      }
   ],
   "refresh": "15s",
   "schemaVersion": 39,
   "templating": {
      "list": [
         {
            "name": "datasource",
            "query": "prometheus",
            "type": "datasource"
         }
      ]
   },
   "time": {
      "from": "now-30m",
      "to": "now"
   },
   "timezone": "utc",
   "title": "Istio Control Plane Dashboard",
   "uid": "1813f692a8e4ac77155348d4c7d2fba8"
}
