{
  "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 potential 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": "istio-control-plane"
}
