diff --git a/Dockerfile b/Dockerfile
index 7a6deb668..139818b03 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -10,13 +10,14 @@ FROM alpine
RUN apk --update add ca-certificates curl
RUN mkdir /lib64 && \
ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86-64.so.2 && \
- mkdir -p /root/.kube
+ mkdir -p /root/.kube && \
+ mkdir -p /tmp/istio
COPY --from=bd /meshery-istio /app/
COPY --from=bd /istio /app/istio
COPY --from=bd /istio.tar.gz /app/
COPY --from=bd //github.com/layer5io/meshery-istio/scripts /app/scripts/.
COPY --from=bd /etc/passwd /etc/passwd
-ENV ISTIO_VERSION=istio-1.5.1
+ENV ISTIO_VERSION=1.7.3
# USER appuser
WORKDIR /app
CMD ./meshery-istio
diff --git a/istio/client.go b/istio/client.go
index 17d21132a..10d300ab4 100644
--- a/istio/client.go
+++ b/istio/client.go
@@ -132,77 +132,10 @@ func monkeyPatchingToSupportInsecureConn(data []byte) []byte {
return data1
}
-// Kubeconfig is structure of the kubeconfig file
-type Kubeconfig struct {
- APIVersion string `yaml:"apiVersion,omitempty" json:"apiVersion,omitempty"`
- Clusters []struct {
- Cluster struct {
- CertificateAuthorityData string `yaml:"certificate-authority-data,omitempty" json:"certificate-authority-data,omitempty"`
- Server string `yaml:"server,omitempty" json:"server,omitempty"`
- } `yaml:"cluster,omitempty" json:"cluster,omitempty"`
- Name string `yaml:"name,omitempty" json:"name,omitempty"`
- } `yaml:"clusters,omitempty" json:"clusters,omitempty"`
- Contexts []struct {
- Context struct {
- Cluster string `yaml:"cluster,omitempty" json:"cluster,omitempty"`
- Namespace string `yaml:"namespace,omitempty" json:"namespace,omitempty"`
- User string `yaml:"user,omitempty" json:"user,omitempty"`
- } `yaml:"context,omitempty" json:"context,omitempty"`
- Name string `yaml:"name,omitempty" json:"name,omitempty"`
- } `yaml:"contexts,omitempty" json:"contexts,omitempty"`
- CurrentContext string `yaml:"current-context,omitempty" json:"current-context,omitempty"`
- Kind string `yaml:"kind,omitempty" json:"kind,omitempty"`
- Preferences struct {
- } `yaml:"preferences,omitempty" json:"preferences,omitempty"`
- Users []struct {
- Name string `yaml:"name,omitempty" json:"name,omitempty"`
- User struct {
- Exec struct {
- APIVersion string `yaml:"apiVersion,omitempty" json:"apiVersion,omitempty"`
- Args []string `yaml:"args,omitempty" json:"args,omitempty"`
- Command string `yaml:"command,omitempty" json:"command,omitempty"`
- Env []struct {
- Name string `yaml:"name,omitempty" json:"name,omitempty"`
- Value string `yaml:"value,omitempty" json:"value,omitempty"`
- } `yaml:"env,omitempty" json:"env,omitempty"`
- } `yaml:"exec,omitempty" json:"exec,omitempty"`
- AuthProvider struct {
- Config struct {
- AccessToken string `yaml:"access-token,omitempty" json:"access-token,omitempty"`
- CmdArgs string `yaml:"cmd-args,omitempty" json:"cmd-args,omitempty"`
- CmdPath string `yaml:"cmd-path,omitempty" json:"cmd-path,omitempty"`
- Expiry time.Time `yaml:"expiry,omitempty" json:"expiry,omitempty"`
- ExpiryKey string `yaml:"expiry-key,omitempty" json:"expiry-key,omitempty"`
- TokenKey string `yaml:"token-key,omitempty" json:"token-key,omitempty"`
- } `yaml:"config,omitempty" json:"config,omitempty"`
- Name string `yaml:"name,omitempty" json:"name,omitempty"`
- } `yaml:"auth-provider,omitempty" json:"auth-provider,omitempty"`
- ClientCertificateData string `yaml:"client-certificate-data,omitempty" json:"client-certificate-data,omitempty"`
- ClientKeyData string `yaml:"client-key-data,omitempty" json:"client-key-data,omitempty"`
- Token string `yaml:"token,omitempty" json:"token,omitempty"`
- } `yaml:"user,omitempty,omitempty" json:"user,omitempty,omitempty"`
- } `yaml:"users,omitempty" json:"users,omitempty"`
-}
-
// writeKubeconfig creates kubeconfig in local container
func writeKubeconfig(kubeconfig []byte, contextName string, path string) error {
- yamlConfig := Kubeconfig{}
- err := yaml.Unmarshal(kubeconfig, &yamlConfig)
- if err != nil {
- return err
- }
-
- yamlConfig.CurrentContext = contextName
- fmt.Printf("%+v\n", yamlConfig)
-
- d, err := yaml.Marshal(yamlConfig)
- if err != nil {
- return err
- }
- fmt.Printf(string(d))
-
- err = ioutil.WriteFile(path, d, 0600)
+ err := ioutil.WriteFile(path, kubeconfig, 0600)
if err != nil {
return err
}
diff --git a/istio/config_templates/addons/grafana.yaml b/istio/config_templates/addons/grafana.yaml
new file mode 100644
index 000000000..e46d54ada
--- /dev/null
+++ b/istio/config_templates/addons/grafana.yaml
@@ -0,0 +1,9019 @@
+---
+# Source: grafana/templates/serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ labels:
+ helm.sh/chart: grafana-5.3.5
+ app.kubernetes.io/name: grafana
+ app.kubernetes.io/instance: grafana
+ app.kubernetes.io/version: "7.0.5"
+ app.kubernetes.io/managed-by: Helm
+ name: grafana
+ namespace: istio-system
+---
+# Source: grafana/templates/configmap.yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: grafana
+ namespace: istio-system
+ labels:
+ helm.sh/chart: grafana-5.3.5
+ app.kubernetes.io/name: grafana
+ app.kubernetes.io/instance: grafana
+ app.kubernetes.io/version: "7.0.5"
+ app.kubernetes.io/managed-by: Helm
+data:
+ grafana.ini: |
+ [analytics]
+ check_for_updates = true
+ [grafana_net]
+ url = https://grafana.net
+ [log]
+ mode = console
+ [paths]
+ data = /var/lib/grafana/data
+ logs = /var/log/grafana
+ plugins = /var/lib/grafana/plugins
+ provisioning = /etc/grafana/provisioning
+
+ datasources.yaml: |
+ apiVersion: 1
+ datasources:
+ - access: proxy
+ editable: true
+ isDefault: true
+ jsonData:
+ timeInterval: 5s
+ name: Prometheus
+ orgId: 1
+ type: prometheus
+ url: http://prometheus:9090
+ dashboardproviders.yaml: |
+ apiVersion: 1
+ providers:
+ - disableDeletion: false
+ folder: istio
+ name: istio
+ options:
+ path: /var/lib/grafana/dashboards/istio
+ orgId: 1
+ type: file
+ - disableDeletion: false
+ folder: istio
+ name: istio-services
+ options:
+ path: /var/lib/grafana/dashboards/istio-services
+ orgId: 1
+ type: file
+---
+# Source: grafana/templates/service.yaml
+apiVersion: v1
+kind: Service
+metadata:
+ name: grafana
+ namespace: istio-system
+ labels:
+ helm.sh/chart: grafana-5.3.5
+ app.kubernetes.io/name: grafana
+ app.kubernetes.io/instance: grafana
+ app.kubernetes.io/version: "7.0.5"
+ app.kubernetes.io/managed-by: Helm
+spec:
+ type: LoadBalancer
+ ports:
+ - name: service
+ port: 3000
+ protocol: TCP
+ targetPort: 3000
+
+ selector:
+ app.kubernetes.io/name: grafana
+ app.kubernetes.io/instance: grafana
+---
+# Source: grafana/templates/deployment.yaml
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: grafana
+ namespace: istio-system
+ labels:
+ helm.sh/chart: grafana-5.3.5
+ app.kubernetes.io/name: grafana
+ app.kubernetes.io/instance: grafana
+ app.kubernetes.io/version: "7.0.5"
+ app.kubernetes.io/managed-by: Helm
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app.kubernetes.io/name: grafana
+ app.kubernetes.io/instance: grafana
+ strategy:
+ type: RollingUpdate
+ template:
+ metadata:
+ labels:
+ app.kubernetes.io/name: grafana
+ app.kubernetes.io/instance: grafana
+ app: grafana
+ annotations:
+ checksum/config: fe7e580c8af3062a70a8dfda740e0ae1daa655c20dd5b94e78bdd09a79b9b5cb
+ checksum/dashboards-json-config: 01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b
+ checksum/sc-dashboard-provider-config: 01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b
+ spec:
+
+ serviceAccountName: grafana
+ securityContext:
+ fsGroup: 472
+ runAsGroup: 472
+ runAsUser: 472
+ containers:
+ - name: grafana
+ image: "grafana/grafana:7.0.5"
+ imagePullPolicy: IfNotPresent
+ volumeMounts:
+ - name: config
+ mountPath: "/etc/grafana/grafana.ini"
+ subPath: grafana.ini
+ - name: storage
+ mountPath: "/var/lib/grafana"
+ - name: dashboards-istio
+ mountPath: "/var/lib/grafana/dashboards/istio"
+ - name: dashboards-istio-services
+ mountPath: "/var/lib/grafana/dashboards/istio-services"
+ - name: config
+ mountPath: "/etc/grafana/provisioning/datasources/datasources.yaml"
+ subPath: datasources.yaml
+ - name: config
+ mountPath: "/etc/grafana/provisioning/dashboards/dashboardproviders.yaml"
+ subPath: dashboardproviders.yaml
+ ports:
+ - name: service
+ containerPort: 3000
+ protocol: TCP
+ - name: grafana
+ containerPort: 3000
+ protocol: TCP
+ env:
+ - name: "GF_AUTH_ANONYMOUS_ENABLED"
+ value: "true"
+ - name: "GF_AUTH_ANONYMOUS_ORG_ROLE"
+ value: "Admin"
+ - name: "GF_AUTH_BASIC_ENABLED"
+ value: "false"
+ - name: "GF_SECURITY_ADMIN_PASSWORD"
+ value: "-"
+ - name: "GF_SECURITY_ADMIN_USER"
+ value: "-"
+ livenessProbe:
+ failureThreshold: 10
+ httpGet:
+ path: /api/health
+ port: 3000
+ initialDelaySeconds: 60
+ timeoutSeconds: 30
+ readinessProbe:
+ httpGet:
+ path: /api/health
+ port: 3000
+ resources:
+ {}
+ volumes:
+ - name: config
+ configMap:
+ name: grafana
+
+ - name: dashboards-istio
+ configMap:
+ name: istio-grafana-dashboards
+ - name: dashboards-istio-services
+ configMap:
+ name: istio-services-grafana-dashboards
+ - name: storage
+ emptyDir: {}
+
+---
+
+apiVersion: v1
+data:
+ istio-performance-dashboard.json: |
+ {
+ "annotations": {
+ "list": [
+ {
+ "builtIn": 1,
+ "datasource": "-- Grafana --",
+ "enable": true,
+ "hide": true,
+ "iconColor": "rgba(0, 211, 255, 1)",
+ "name": "Annotations & Alerts",
+ "type": "dashboard"
+ }
+ ]
+ },
+ "editable": false,
+ "gnetId": null,
+ "graphTooltip": 0,
+ "links": [],
+ "panels": [
+ {
+ "collapsed": true,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 0
+ },
+ "id": 21,
+ "panels": [
+ {
+ "content": "The charts on this dashboard are intended to show Istio main components cost in terms resources utilization under steady load.\n\n- **vCPU/1k rps:** shows vCPU utilization by the main Istio components normalized by 1000 requests/second. When idle or low traffic, this chart will be blank. The curve for istio-proxy refers to the services sidecars only.\n- **vCPU:** vCPU utilization by Istio components, not normalized.\n- **Memory:** memory footprint for the components. Telemetry and policy are normalized by 1k rps, and no data is shown when there is no traffic. For ingress and istio-proxy, the data is per instance.\n- **Bytes transferred/ sec:** shows the number of bytes flowing through each Istio component.\n\n\n",
+ "gridPos": {
+ "h": 6,
+ "w": 24,
+ "x": 0,
+ "y": 1
+ },
+ "id": 19,
+ "links": [],
+ "mode": "markdown",
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Performance Dashboard README",
+ "transparent": true,
+ "type": "text"
+ }
+ ],
+ "title": "Performance Dashboard Notes",
+ "type": "row"
+ },
+ {
+ "collapsed": false,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 1
+ },
+ "id": 6,
+ "panels": [],
+ "title": "vCPU Usage",
+ "type": "row"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "fill": 1,
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 0,
+ "y": 2
+ },
+ "id": 4,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 2,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "(sum(irate(container_cpu_usage_seconds_total{pod=~\"istio-telemetry-.*\",container=~\"mixer|istio-proxy\"}[1m]))/ (round(sum(irate(istio_requests_total[1m])), 0.001)/1000))/ (sum(irate(istio_requests_total{source_workload=\"istio-ingressgateway\"}[1m])) >bool 10)",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 1,
+ "legendFormat": "istio-telemetry",
+ "refId": "A"
+ },
+ {
+ "expr": "(sum(irate(container_cpu_usage_seconds_total{pod=~\"istio-ingressgateway-.*\",container=\"istio-proxy\"}[1m])) / (round(sum(irate(istio_requests_total{source_workload=\"istio-ingressgateway\", reporter=\"source\"}[1m])), 0.001)/1000))",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 1,
+ "legendFormat": "istio-ingressgateway",
+ "refId": "B"
+ },
+ {
+ "expr": "(sum(irate(container_cpu_usage_seconds_total{namespace!=\"istio-system\",container=\"istio-proxy\"}[1m]))/ (round(sum(irate(istio_requests_total[1m])), 0.001)/1000))/ (sum(irate(istio_requests_total{source_workload=\"istio-ingressgateway\"}[1m])) >bool 10)",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "istio-proxy",
+ "refId": "C"
+ },
+ {
+ "expr": "(sum(irate(container_cpu_usage_seconds_total{pod=~\"istio-policy-.*\",container=~\"mixer|istio-proxy\"}[1m]))/ (round(sum(irate(istio_requests_total[1m])), 0.001)/1000))/ (sum(irate(istio_requests_total{source_workload=\"istio-ingressgateway\"}[1m])) >bool 10)",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "istio-policy",
+ "refId": "D"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "vCPU / 1k rps",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "fill": 1,
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 12,
+ "y": 2
+ },
+ "id": 7,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 2,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(rate(container_cpu_usage_seconds_total{pod=~\"istio-telemetry-.*\",container=~\"mixer|istio-proxy\"}[1m]))",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "istio-telemetry",
+ "refId": "A"
+ },
+ {
+ "expr": "sum(rate(container_cpu_usage_seconds_total{pod=~\"istio-ingressgateway-.*\",container=\"istio-proxy\"}[1m]))",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "istio-ingressgateway",
+ "refId": "B"
+ },
+ {
+ "expr": "sum(rate(container_cpu_usage_seconds_total{namespace!=\"istio-system\",container=\"istio-proxy\"}[1m]))",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "istio-proxy",
+ "refId": "C"
+ },
+ {
+ "expr": "sum(rate(container_cpu_usage_seconds_total{pod=~\"istio-policy-.*\",container=~\"mixer|istio-proxy\"}[1m]))",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "istio-policy",
+ "refId": "D"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "vCPU",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "collapsed": false,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 10
+ },
+ "id": 13,
+ "panels": [],
+ "title": "Memory and Data Rates",
+ "type": "row"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "fill": 1,
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 0,
+ "y": 11
+ },
+ "id": 902,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 2,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "(sum(container_memory_usage_bytes{pod=~\"istio-telemetry-.*\"}) / (sum(irate(istio_requests_total[1m])) / 1000)) / (sum(irate(istio_requests_total{source_workload=\"istio-ingressgateway\"}[1m])) >bool 10)",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "istio-telemetry / 1k rps",
+ "refId": "A"
+ },
+ {
+ "expr": "sum(container_memory_usage_bytes{pod=~\"istio-ingressgateway-.*\"}) / count(container_memory_usage_bytes{pod=~\"istio-ingressgateway-.*\",container!=\"POD\"})",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "per istio-ingressgateway",
+ "refId": "B"
+ },
+ {
+ "expr": "sum(container_memory_usage_bytes{namespace!=\"istio-system\",container=\"istio-proxy\"}) / count(container_memory_usage_bytes{namespace!=\"istio-system\",container=\"istio-proxy\"})",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "per istio proxy",
+ "refId": "C"
+ },
+ {
+ "expr": "(sum(container_memory_usage_bytes{pod=~\"istio-policy-.*\"}) / (sum(irate(istio_requests_total[1m])) / 1000))/ (sum(irate(istio_requests_total{source_workload=\"istio-ingressgateway\"}[1m])) >bool 10)",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "istio-policy / 1k rps",
+ "refId": "D"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Memory Usage",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "bytes",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "fill": 1,
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 12,
+ "y": 11
+ },
+ "id": 11,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 2,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(irate(istio_response_bytes_sum{destination_workload=\"istio-telemetry\"}[1m])) + sum(irate(istio_request_bytes_sum{destination_workload=\"istio-telemetry\"}[1m]))",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "istio-telemetry",
+ "refId": "A"
+ },
+ {
+ "expr": "sum(irate(istio_response_bytes_sum{source_workload=\"istio-ingressgateway\", reporter=\"source\"}[1m]))",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "istio-ingressgateway",
+ "refId": "B"
+ },
+ {
+ "expr": "sum(irate(istio_response_bytes_sum{source_workload_namespace!=\"istio-system\", reporter=\"source\"}[1m])) + sum(irate(istio_response_bytes_sum{destination_workload_namespace!=\"istio-system\", reporter=\"destination\"}[1m])) + sum(irate(istio_request_bytes_sum{source_workload_namespace!=\"istio-system\", reporter=\"source\"}[1m])) + sum(irate(istio_request_bytes_sum{destination_workload_namespace!=\"istio-system\", reporter=\"destination\"}[1m]))",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "istio-proxy",
+ "refId": "C"
+ },
+ {
+ "expr": "sum(irate(istio_response_bytes_sum{destination_workload=\"istio-policy\"}[1m])) + sum(irate(istio_request_bytes_sum{destination_workload=\"istio-policy\"}[1m]))",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "istio_policy",
+ "refId": "D"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Bytes transferred / sec",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "Bps",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "collapsed": false,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 19
+ },
+ "id": 17,
+ "panels": [],
+ "title": "Istio Component Versions",
+ "type": "row"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "fill": 1,
+ "gridPos": {
+ "h": 8,
+ "w": 24,
+ "x": 0,
+ "y": 20
+ },
+ "id": 15,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 2,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(istio_build) by (component, tag)",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "{{ component }}: {{ tag }}",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Istio Components by Version",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "collapsed": false,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 31
+ },
+ "id": 71,
+ "panels": [],
+ "title": "Proxy Resource Usage",
+ "type": "row"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "fill": 1,
+ "gridPos": {
+ "h": 7,
+ "w": 6,
+ "x": 0,
+ "y": 32
+ },
+ "id": 72,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(container_memory_usage_bytes{container=\"istio-proxy\"})",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 2,
+ "legendFormat": "{{ container }} (k8s)",
+ "refId": "B",
+ "step": 2
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Memory",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "bytes",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "fill": 1,
+ "gridPos": {
+ "h": 7,
+ "w": 6,
+ "x": 6,
+ "y": 32
+ },
+ "id": 73,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(rate(container_cpu_usage_seconds_total{container=\"istio-proxy\"}[1m]))",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 2,
+ "legendFormat": "Total (k8s)",
+ "refId": "A",
+ "step": 2
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "vCPU",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "fill": 1,
+ "gridPos": {
+ "h": 7,
+ "w": 6,
+ "x": 12,
+ "y": 32
+ },
+ "id": 702,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(container_fs_usage_bytes{ container=\"istio-proxy\"})",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "{{ container }}",
+ "refId": "B",
+ "step": 2
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Disk",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "bytes",
+ "label": "",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "decimals": null,
+ "format": "none",
+ "label": "",
+ "logBase": 1024,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "collapsed": false,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 39
+ },
+ "id": 69,
+ "panels": [],
+ "title": "Pilot Resource Usage",
+ "type": "row"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "fill": 1,
+ "gridPos": {
+ "h": 7,
+ "w": 6,
+ "x": 0,
+ "y": 40
+ },
+ "id": 5,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "process_virtual_memory_bytes{app=\"istiod\"}",
+ "format": "time_series",
+ "instant": false,
+ "intervalFactor": 2,
+ "legendFormat": "Virtual Memory",
+ "refId": "I",
+ "step": 2
+ },
+ {
+ "expr": "process_resident_memory_bytes{app=\"istiod\"}",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "Resident Memory",
+ "refId": "H",
+ "step": 2
+ },
+ {
+ "expr": "go_memstats_heap_sys_bytes{app=\"istiod\"}",
+ "format": "time_series",
+ "hide": true,
+ "intervalFactor": 2,
+ "legendFormat": "heap sys",
+ "refId": "A"
+ },
+ {
+ "expr": "go_memstats_heap_alloc_bytes{app=\"istiod\"}",
+ "format": "time_series",
+ "hide": true,
+ "intervalFactor": 2,
+ "legendFormat": "heap alloc",
+ "refId": "D"
+ },
+ {
+ "expr": "go_memstats_alloc_bytes{app=\"istiod\"}",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "Alloc",
+ "refId": "F",
+ "step": 2
+ },
+ {
+ "expr": "go_memstats_heap_inuse_bytes{app=\"istiod\"}",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 2,
+ "legendFormat": "Heap in-use",
+ "refId": "E",
+ "step": 2
+ },
+ {
+ "expr": "go_memstats_stack_inuse_bytes{app=\"istiod\"}",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "Stack in-use",
+ "refId": "G",
+ "step": 2
+ },
+ {
+ "expr": "sum(container_memory_usage_bytes{container=~\"discovery|istio-proxy\", pod=~\"istiod-.*\"})",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 2,
+ "legendFormat": "Total (k8s)",
+ "refId": "C",
+ "step": 2
+ },
+ {
+ "expr": "container_memory_usage_bytes{container=~\"discovery|istio-proxy\", pod=~\"istiod-.*\"}",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 2,
+ "legendFormat": "{{ container }} (k8s)",
+ "refId": "B",
+ "step": 2
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Memory",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "bytes",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "fill": 1,
+ "gridPos": {
+ "h": 7,
+ "w": 6,
+ "x": 6,
+ "y": 40
+ },
+ "id": 602,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(rate(container_cpu_usage_seconds_total{container=~\"discovery|istio-proxy\", pod=~\"istiod-.*\"}[1m]))",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 2,
+ "legendFormat": "Total (k8s)",
+ "refId": "A",
+ "step": 2
+ },
+ {
+ "expr": "sum(rate(container_cpu_usage_seconds_total{container=~\"discovery|istio-proxy\", pod=~\"istiod-.*\"}[1m])) by (container)",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 2,
+ "legendFormat": "{{ container }} (k8s)",
+ "refId": "B",
+ "step": 2
+ },
+ {
+ "expr": "irate(process_cpu_seconds_total{app=\"istiod\"}[1m])",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 2,
+ "legendFormat": "pilot (self-reported)",
+ "refId": "C",
+ "step": 2
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "vCPU",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "fill": 1,
+ "gridPos": {
+ "h": 7,
+ "w": 6,
+ "x": 12,
+ "y": 40
+ },
+ "id": 74,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "process_open_fds{app=\"istiod\"}",
+ "format": "time_series",
+ "hide": true,
+ "instant": false,
+ "interval": "",
+ "intervalFactor": 2,
+ "legendFormat": "Open FDs (pilot)",
+ "refId": "A"
+ },
+ {
+ "expr": "container_fs_usage_bytes{ container=~\"discovery|istio-proxy\", pod=~\"istiod-.*\"}",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "{{ container }}",
+ "refId": "B",
+ "step": 2
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Disk",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "bytes",
+ "label": "",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "decimals": null,
+ "format": "none",
+ "label": "",
+ "logBase": 1024,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "fill": 1,
+ "gridPos": {
+ "h": 7,
+ "w": 6,
+ "x": 18,
+ "y": 40
+ },
+ "id": 402,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "go_goroutines{app=\"istiod\"}",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "Number of Goroutines",
+ "refId": "A",
+ "step": 2
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Goroutines",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "collapsed": false,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 47
+ },
+ "id": 93,
+ "panels": [],
+ "title": "Mixer Resource Usage",
+ "type": "row"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "fill": 1,
+ "gridPos": {
+ "h": 7,
+ "w": 6,
+ "x": 0,
+ "y": 48
+ },
+ "id": 94,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "process_virtual_memory_bytes{job=~\"istio-telemetry|istio-policy\"}",
+ "format": "time_series",
+ "instant": false,
+ "intervalFactor": 2,
+ "legendFormat": "Virtual Memory",
+ "refId": "I",
+ "step": 2
+ },
+ {
+ "expr": "process_resident_memory_bytes{job=~\"istio-telemetry|istio-policy\"}",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "Resident Memory",
+ "refId": "H",
+ "step": 2
+ },
+ {
+ "expr": "go_memstats_heap_sys_bytes{job=~\"istio-telemetry|istio-policy\"}",
+ "format": "time_series",
+ "hide": true,
+ "intervalFactor": 2,
+ "legendFormat": "heap sys",
+ "refId": "A"
+ },
+ {
+ "expr": "go_memstats_heap_alloc_bytes{job=~\"istio-telemetry|istio-policy\"}",
+ "format": "time_series",
+ "hide": true,
+ "intervalFactor": 2,
+ "legendFormat": "heap alloc",
+ "refId": "D"
+ },
+ {
+ "expr": "go_memstats_alloc_bytes{job=~\"istio-telemetry|istio-policy\"}",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "Alloc",
+ "refId": "F",
+ "step": 2
+ },
+ {
+ "expr": "go_memstats_heap_inuse_bytes{job=~\"istio-telemetry|istio-policy\"}",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 2,
+ "legendFormat": "Heap in-use",
+ "refId": "E",
+ "step": 2
+ },
+ {
+ "expr": "go_memstats_stack_inuse_bytes{job=~\"istio-policy|istio-telemetry\"}",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "Stack in-use",
+ "refId": "G",
+ "step": 2
+ },
+ {
+ "expr": "sum(container_memory_usage_bytes{container=~\"mixer|istio-proxy\", pod=~\"istio-telemetry-.*\"})",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 2,
+ "legendFormat": "Total (k8s)",
+ "refId": "C",
+ "step": 2
+ },
+ {
+ "expr": "container_memory_usage_bytes{container=~\"mixer|istio-proxy\", pod=~\"istio-telemetry-.*\"}",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 2,
+ "legendFormat": "{{ container }} (k8s)",
+ "refId": "B",
+ "step": 2
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Memory",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "bytes",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "fill": 1,
+ "gridPos": {
+ "h": 7,
+ "w": 6,
+ "x": 6,
+ "y": 48
+ },
+ "id": 95,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(rate(container_cpu_usage_seconds_total{container=~\"mixer|istio-proxy\", pod=~\"istio-telemetry-.*\"}[1m]))",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 2,
+ "legendFormat": "Total (k8s)",
+ "refId": "A",
+ "step": 2
+ },
+ {
+ "expr": "sum(rate(container_cpu_usage_seconds_total{container=~\"mixer|istio-proxy\", pod=~\"istio-telemetry-.*\"}[1m])) by (container)",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 2,
+ "legendFormat": "{{ container }} (k8s)",
+ "refId": "B",
+ "step": 2
+ },
+ {
+ "expr": "irate(process_cpu_seconds_total{job=~\"istio-policy|istio-telemetry\"}[1m])",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 2,
+ "legendFormat": "mixer (self-reported)",
+ "refId": "C",
+ "step": 2
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "vCPU",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "fill": 1,
+ "gridPos": {
+ "h": 7,
+ "w": 6,
+ "x": 12,
+ "y": 48
+ },
+ "id": 96,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "process_open_fds{job=~\"istio-policy|istio-telemetry\"}",
+ "format": "time_series",
+ "hide": true,
+ "instant": false,
+ "interval": "",
+ "intervalFactor": 2,
+ "legendFormat": "Open FDs (pilot)",
+ "refId": "A"
+ },
+ {
+ "expr": "container_fs_usage_bytes{container=~\"mixer|istio-proxy\", pod=~\"istio-telemetry-.*\"}",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "{{ container }}",
+ "refId": "B",
+ "step": 2
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Disk",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "bytes",
+ "label": "",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "decimals": null,
+ "format": "none",
+ "label": "",
+ "logBase": 1024,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "fill": 1,
+ "gridPos": {
+ "h": 7,
+ "w": 6,
+ "x": 18,
+ "y": 48
+ },
+ "id": 97,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "go_goroutines{job=\"istio-telemetry\"}",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "Number of Goroutines",
+ "refId": "A",
+ "step": 2
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Goroutines",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ }
+ ],
+ "refresh": "10s",
+ "schemaVersion": 18,
+ "style": "dark",
+ "tags": [],
+ "templating": {
+ "list": []
+ },
+ "time": {
+ "from": "now-5m",
+ "to": "now"
+ },
+ "timepicker": {
+ "refresh_intervals": [
+ "5s",
+ "10s",
+ "30s",
+ "1m",
+ "5m",
+ "15m",
+ "30m",
+ "1h",
+ "2h",
+ "1d"
+ ],
+ "time_options": [
+ "5m",
+ "15m",
+ "1h",
+ "6h",
+ "12h",
+ "24h",
+ "2d",
+ "7d",
+ "30d"
+ ]
+ },
+ "timezone": "",
+ "title": "Istio Performance Dashboard",
+ "uid": "vu8e0VWZk",
+ "version": 22
+ }
+ mixer-dashboard.json: |
+ {
+ "__inputs": [
+ {
+ "name": "DS_PROMETHEUS",
+ "label": "Prometheus",
+ "description": "",
+ "type": "datasource",
+ "pluginId": "prometheus",
+ "pluginName": "Prometheus"
+ }
+ ],
+ "__requires": [
+ {
+ "type": "grafana",
+ "id": "grafana",
+ "name": "Grafana",
+ "version": "5.2.3"
+ },
+ {
+ "type": "panel",
+ "id": "graph",
+ "name": "Graph",
+ "version": "5.0.0"
+ },
+ {
+ "type": "datasource",
+ "id": "prometheus",
+ "name": "Prometheus",
+ "version": "5.0.0"
+ },
+ {
+ "type": "panel",
+ "id": "text",
+ "name": "Text",
+ "version": "5.0.0"
+ }
+ ],
+ "annotations": {
+ "list": [
+ {
+ "builtIn": 1,
+ "datasource": "-- Grafana --",
+ "enable": true,
+ "hide": true,
+ "iconColor": "rgba(0, 211, 255, 1)",
+ "limit": 100,
+ "name": "Annotations & Alerts",
+ "showIn": 0,
+ "type": "dashboard"
+ }
+ ]
+ },
+ "editable": false,
+ "gnetId": null,
+ "graphTooltip": 1,
+ "id": null,
+ "iteration": 1543881232533,
+ "links": [],
+ "panels": [
+ {
+ "content": "
Deployed Versions
",
+ "gridPos": {
+ "h": 3,
+ "w": 24,
+ "x": 0,
+ "y": 0
+ },
+ "height": "40",
+ "id": 62,
+ "links": [],
+ "mode": "html",
+ "title": "",
+ "transparent": true,
+ "type": "text"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "fill": 1,
+ "gridPos": {
+ "h": 5,
+ "w": 24,
+ "x": 0,
+ "y": 3
+ },
+ "id": 64,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(istio_build{component=\"mixer\"}) by (tag)",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "{{ tag }}",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Mixer Versions",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "content": "Resource Usage
",
+ "gridPos": {
+ "h": 3,
+ "w": 24,
+ "x": 0,
+ "y": 8
+ },
+ "height": "40",
+ "id": 29,
+ "links": [],
+ "mode": "html",
+ "title": "",
+ "transparent": true,
+ "type": "text"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "fill": 1,
+ "gridPos": {
+ "h": 7,
+ "w": 6,
+ "x": 0,
+ "y": 11
+ },
+ "id": 5,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(process_virtual_memory_bytes{job=~\"istio-telemetry|istio-policy\"}) by (job)",
+ "format": "time_series",
+ "instant": false,
+ "intervalFactor": 2,
+ "legendFormat": "Virtual Memory ({{ job }})",
+ "refId": "I"
+ },
+ {
+ "expr": "sum(process_resident_memory_bytes{job=~\"istio-telemetry|istio-policy\"}) by (job)",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "Resident Memory ({{ job }})",
+ "refId": "H"
+ },
+ {
+ "expr": "sum(go_memstats_heap_sys_bytes{job=~\"istio-telemetry|istio-policy\"}) by (job)",
+ "format": "time_series",
+ "hide": true,
+ "intervalFactor": 2,
+ "legendFormat": "heap sys ({{ job }})",
+ "refId": "A"
+ },
+ {
+ "expr": "sum(go_memstats_heap_alloc_bytes{job=~\"istio-telemetry|istio-policy\"}) by (job)",
+ "format": "time_series",
+ "hide": true,
+ "intervalFactor": 2,
+ "legendFormat": "heap alloc ({{ job }})",
+ "refId": "D"
+ },
+ {
+ "expr": "sum(go_memstats_alloc_bytes{job=~\"istio-telemetry|istio-policy\"}) by (job)",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "Alloc ({{ job }})",
+ "refId": "F"
+ },
+ {
+ "expr": "sum(go_memstats_heap_inuse_bytes{job=~\"istio-telemetry|istio-policy\"}) by (job)",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 2,
+ "legendFormat": "Heap in-use ({{ job }})",
+ "refId": "E"
+ },
+ {
+ "expr": "sum(go_memstats_stack_inuse_bytes{job=~\"istio-telemetry|istio-policy\"}) by (job)",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "Stack in-use ({{ job }})",
+ "refId": "G"
+ },
+ {
+ "expr": "sum(label_replace(container_memory_usage_bytes{job=\"kubernetes-cadvisor\", container=~\"mixer|istio-proxy\", pod=~\"istio-telemetry-.*|istio-policy-.*\"}, \"service\", \"$1\" , \"pod\", \"(istio-telemetry|istio-policy)-.*\")) by (service)",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 2,
+ "legendFormat": "{{ service }} total (k8s)",
+ "refId": "C"
+ },
+ {
+ "expr": "sum(label_replace(container_memory_usage_bytes{job=\"kubernetes-cadvisor\", container=~\"mixer|istio-proxy\", pod=~\"istio-telemetry-.*|istio-policy-.*\"}, \"service\", \"$1\" , \"pod\", \"(istio-telemetry|istio-policy)-.*\")) by (container, service)",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 2,
+ "legendFormat": "{{ service }} - {{ container }} (k8s)",
+ "refId": "B"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Memory",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "bytes",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "fill": 1,
+ "gridPos": {
+ "h": 7,
+ "w": 6,
+ "x": 6,
+ "y": 11
+ },
+ "id": 6,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "label_replace(sum(rate(container_cpu_usage_seconds_total{job=\"kubernetes-cadvisor\",container=~\"mixer|istio-proxy\", pod=~\"istio-telemetry-.*|istio-policy-.*\"}[1m])) by (pod), \"service\", \"$1\" , \"pod\", \"(istio-telemetry|istio-policy)-.*\")",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 2,
+ "legendFormat": "{{ service }} total (k8s)",
+ "refId": "A"
+ },
+ {
+ "expr": "label_replace(sum(rate(container_cpu_usage_seconds_total{job=\"kubernetes-cadvisor\",container=~\"mixer|istio-proxy\", pod=~\"istio-telemetry-.*|istio-policy-.*\"}[1m])) by (container, pod), \"service\", \"$1\" , \"pod\", \"(istio-telemetry|istio-policy)-.*\")",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 2,
+ "legendFormat": "{{ service }} - {{ container }} (k8s)",
+ "refId": "B"
+ },
+ {
+ "expr": "sum(irate(process_cpu_seconds_total{job=~\"istio-telemetry|istio-policy\"}[1m])) by (job)",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 2,
+ "legendFormat": "{{ job }} (self-reported)",
+ "refId": "C"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "CPU",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "fill": 1,
+ "gridPos": {
+ "h": 7,
+ "w": 6,
+ "x": 12,
+ "y": 11
+ },
+ "id": 7,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(process_open_fds{job=~\"istio-telemetry|istio-policy\"}) by (job)",
+ "format": "time_series",
+ "hide": true,
+ "instant": false,
+ "interval": "",
+ "intervalFactor": 2,
+ "legendFormat": "Open FDs ({{ job }})",
+ "refId": "A"
+ },
+ {
+ "expr": "sum(label_replace(container_fs_usage_bytes{job=\"kubernetes-cadvisor\", container=~\"mixer|istio-proxy\", pod=~\"istio-telemetry-.*|istio-policy-.*\"}, \"service\", \"$1\" , \"pod\", \"(istio-telemetry|istio-policy)-.*\")) by (container, service)",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "{{ service }} - {{ container }}",
+ "refId": "B"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Disk",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "bytes",
+ "label": "",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "decimals": null,
+ "format": "none",
+ "label": "",
+ "logBase": 1024,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "fill": 1,
+ "gridPos": {
+ "h": 7,
+ "w": 6,
+ "x": 18,
+ "y": 11
+ },
+ "id": 4,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(go_goroutines{job=~\"istio-telemetry|istio-policy\"}) by (job)",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "Number of Goroutines ({{ job }})",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Goroutines",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "content": "Mixer Overview
",
+ "gridPos": {
+ "h": 3,
+ "w": 24,
+ "x": 0,
+ "y": 18
+ },
+ "height": "40px",
+ "id": 30,
+ "links": [],
+ "mode": "html",
+ "title": "",
+ "transparent": true,
+ "type": "text"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "fill": 1,
+ "gridPos": {
+ "h": 6,
+ "w": 6,
+ "x": 0,
+ "y": 21
+ },
+ "id": 9,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(rate(grpc_io_server_completed_rpcs[1m]))",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 2,
+ "legendFormat": "mixer (Total)",
+ "refId": "B"
+ },
+ {
+ "expr": "sum(rate(grpc_io_server_completed_rpcs[1m])) by (grpc_server_method)",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "mixer ({{ grpc_server_method }})",
+ "refId": "C"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Incoming Requests",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "ops",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "fill": 1,
+ "gridPos": {
+ "h": 6,
+ "w": 6,
+ "x": 6,
+ "y": 21
+ },
+ "id": 8,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [
+ {
+ "alias": "{}",
+ "yaxis": 1
+ }
+ ],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "histogram_quantile(0.5, sum(rate(grpc_io_server_server_latency_bucket{}[1m])) by (grpc_server_method, le))",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "{{ grpc_server_method }} 0.5",
+ "refId": "B"
+ },
+ {
+ "expr": "histogram_quantile(0.9, sum(rate(grpc_io_server_server_latency_bucket{}[1m])) by (grpc_server_method, le))",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "{{ grpc_server_method }} 0.9",
+ "refId": "C"
+ },
+ {
+ "expr": "histogram_quantile(0.99, sum(rate(grpc_io_server_server_latency_bucket{}[1m])) by (grpc_server_method, le))",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "{{ grpc_server_method }} 0.99",
+ "refId": "D"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Response Durations",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "ms",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "fill": 1,
+ "gridPos": {
+ "h": 6,
+ "w": 6,
+ "x": 12,
+ "y": 21
+ },
+ "id": 11,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(rate(grpc_server_handled_total{grpc_code=~\"Unknown|Unimplemented|Internal|DataLoss\"}[1m])) by (grpc_method)",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "Mixer {{ grpc_method }}",
+ "refId": "B"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Server Error Rate (5xx responses)",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "fill": 1,
+ "gridPos": {
+ "h": 6,
+ "w": 6,
+ "x": 18,
+ "y": 21
+ },
+ "id": 12,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(irate(grpc_server_handled_total{grpc_code!=\"OK\",grpc_service=~\".*Mixer\"}[1m])) by (grpc_method)",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "Mixer {{ grpc_method }}",
+ "refId": "B"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Non-successes (4xxs)",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "content": "Adapters and Config
",
+ "gridPos": {
+ "h": 3,
+ "w": 24,
+ "x": 0,
+ "y": 27
+ },
+ "id": 28,
+ "links": [],
+ "mode": "html",
+ "title": "",
+ "transparent": true,
+ "type": "text"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "fill": 1,
+ "gridPos": {
+ "h": 7,
+ "w": 12,
+ "x": 0,
+ "y": 30
+ },
+ "id": 13,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(irate(mixer_runtime_dispatches_total{adapter=~\"$adapter\"}[1m])) by (adapter)",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "{{ adapter }}",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Adapter Dispatch Count",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "fill": 1,
+ "gridPos": {
+ "h": 7,
+ "w": 12,
+ "x": 12,
+ "y": 30
+ },
+ "id": 14,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "histogram_quantile(0.5, sum(irate(mixer_runtime_dispatch_duration_seconds_bucket{adapter=~\"$adapter\"}[1m])) by (adapter, le))",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "{{ adapter }} - p50",
+ "refId": "A"
+ },
+ {
+ "expr": "histogram_quantile(0.9, sum(irate(mixer_runtime_dispatch_duration_seconds_bucket{adapter=~\"$adapter\"}[1m])) by (adapter, le))",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "{{ adapter }} - p90 ",
+ "refId": "B"
+ },
+ {
+ "expr": "histogram_quantile(0.99, sum(irate(mixer_runtime_dispatch_duration_seconds_bucket{adapter=~\"$adapter\"}[1m])) by (adapter, le))",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "{{ adapter }} - p99",
+ "refId": "C"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Adapter Dispatch Duration",
+ "tooltip": {
+ "shared": true,
+ "sort": 1,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "s",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "fill": 1,
+ "gridPos": {
+ "h": 7,
+ "w": 6,
+ "x": 0,
+ "y": 37
+ },
+ "id": 60,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "scalar(topk(1, max(mixer_config_rule_config_count) by (configID)))",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "Rules",
+ "refId": "A"
+ },
+ {
+ "expr": "scalar(topk(1, max(mixer_config_rule_config_error_count) by (configID)))",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "Config Errors",
+ "refId": "B"
+ },
+ {
+ "expr": "scalar(topk(1, max(mixer_config_rule_config_match_error_count) by (configID)))",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "Match Errors",
+ "refId": "C"
+ },
+ {
+ "expr": "scalar(topk(1, max(mixer_config_unsatisfied_action_handler_count) by (configID)))",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "Unsatisfied Actions",
+ "refId": "D"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Rules",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "fill": 1,
+ "gridPos": {
+ "h": 7,
+ "w": 6,
+ "x": 6,
+ "y": 37
+ },
+ "id": 56,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "scalar(topk(1, max(mixer_config_instance_config_count) by (configID)))",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "Instances",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Instances in Latest Config",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "fill": 1,
+ "gridPos": {
+ "h": 7,
+ "w": 6,
+ "x": 12,
+ "y": 37
+ },
+ "id": 54,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "scalar(topk(1, max(mixer_config_handler_config_count) by (configID)))",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "Handlers",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Handlers in Latest Config",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "fill": 1,
+ "gridPos": {
+ "h": 7,
+ "w": 6,
+ "x": 18,
+ "y": 37
+ },
+ "id": 58,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "scalar(topk(1, max(mixer_config_attribute_count) by (configID)))",
+ "format": "time_series",
+ "instant": false,
+ "intervalFactor": 1,
+ "legendFormat": "Attributes",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Attributes in Latest Config",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "content": "Individual Adapters
",
+ "gridPos": {
+ "h": 3,
+ "w": 24,
+ "x": 0,
+ "y": 44
+ },
+ "id": 23,
+ "links": [],
+ "mode": "html",
+ "title": "",
+ "transparent": true,
+ "type": "text"
+ },
+ {
+ "collapsed": false,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 47
+ },
+ "id": 46,
+ "panels": [],
+ "repeat": "adapter",
+ "title": "$adapter Adapter",
+ "type": "row"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "fill": 1,
+ "gridPos": {
+ "h": 7,
+ "w": 12,
+ "x": 0,
+ "y": 48
+ },
+ "id": 17,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "label_replace(irate(mixer_runtime_dispatches_total{adapter=~\"$adapter\"}[1m]),\"handler\", \"$1 ($3)\", \"handler\", \"(.*)\\\\.(.*)\\\\.(.*)\")",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "{{ handler }} (error: {{ error }})",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Dispatch Count By Handler",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "fill": 1,
+ "gridPos": {
+ "h": 7,
+ "w": 12,
+ "x": 12,
+ "y": 48
+ },
+ "id": 18,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "label_replace(histogram_quantile(0.5, sum(rate(mixer_runtime_dispatch_duration_seconds_bucket{adapter=~\"$adapter\"}[1m])) by (handler, error, le)), \"handler_short\", \"$1 ($3)\", \"handler\", \"(.*)\\\\.(.*)\\\\.(.*)\")",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "p50 - {{ handler_short }} (error: {{ error }})",
+ "refId": "A"
+ },
+ {
+ "expr": "label_replace(histogram_quantile(0.9, sum(irate(mixer_runtime_dispatch_duration_seconds_bucket{adapter=~\"$adapter\"}[1m])) by (handler, error, le)), \"handler_short\", \"$1 ($3)\", \"handler\", \"(.*)\\\\.(.*)\\\\.(.*)\")",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "p90 - {{ handler_short }} (error: {{ error }})",
+ "refId": "D"
+ },
+ {
+ "expr": "label_replace(histogram_quantile(0.99, sum(irate(mixer_runtime_dispatch_duration_seconds_bucket{adapter=~\"$adapter\"}[1m])) by (handler, error, le)), \"handler_short\", \"$1 ($3)\", \"handler\", \"(.*)\\\\.(.*)\\\\.(.*)\")",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "p99 - {{ handler_short }} (error: {{ error }})",
+ "refId": "E"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Dispatch Duration By Handler",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "s",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ }
+ ],
+ "refresh": "5s",
+ "schemaVersion": 16,
+ "style": "dark",
+ "tags": [],
+ "templating": {
+ "list": [
+ {
+ "allValue": null,
+ "current": {},
+ "datasource": "Prometheus",
+ "hide": 0,
+ "includeAll": true,
+ "label": "Adapter",
+ "multi": true,
+ "name": "adapter",
+ "options": [],
+ "query": "label_values(adapter)",
+ "refresh": 2,
+ "regex": "",
+ "sort": 1,
+ "tagValuesQuery": "",
+ "tags": [],
+ "tagsQuery": "",
+ "type": "query",
+ "useTags": false
+ }
+ ]
+ },
+ "time": {
+ "from": "now-5m",
+ "to": "now"
+ },
+ "timepicker": {
+ "refresh_intervals": [
+ "5s",
+ "10s",
+ "30s",
+ "1m",
+ "5m",
+ "15m",
+ "30m",
+ "1h",
+ "2h",
+ "1d"
+ ],
+ "time_options": [
+ "5m",
+ "15m",
+ "1h",
+ "6h",
+ "12h",
+ "24h",
+ "2d",
+ "7d",
+ "30d"
+ ]
+ },
+ "timezone": "",
+ "title": "Istio Mixer Dashboard",
+ "version": 4
+ }
+ pilot-dashboard.json: |-
+ {
+ "annotations": {
+ "list": [
+ {
+ "builtIn": 1,
+ "datasource": "-- Grafana --",
+ "enable": true,
+ "hide": true,
+ "iconColor": "rgba(0, 211, 255, 1)",
+ "name": "Annotations & Alerts",
+ "type": "dashboard"
+ }
+ ]
+ },
+ "editable": false,
+ "gnetId": null,
+ "graphTooltip": 1,
+ "links": [],
+ "panels": [
+ {
+ "collapsed": false,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 0
+ },
+ "id": 60,
+ "panels": [],
+ "title": "Deployed Versions",
+ "type": "row"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "fill": 1,
+ "gridPos": {
+ "h": 5,
+ "w": 24,
+ "x": 0,
+ "y": 1
+ },
+ "id": 56,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(istio_build{component=\"pilot\"}) by (tag)",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "{{ tag }}",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Pilot Versions",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "collapsed": false,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 6
+ },
+ "id": 62,
+ "panels": [],
+ "title": "Resource Usage",
+ "type": "row"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "fill": 1,
+ "gridPos": {
+ "h": 7,
+ "w": 6,
+ "x": 0,
+ "y": 7
+ },
+ "id": 5,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "process_virtual_memory_bytes{app=\"istiod\"}",
+ "format": "time_series",
+ "instant": false,
+ "intervalFactor": 2,
+ "legendFormat": "Virtual Memory",
+ "refId": "I",
+ "step": 2
+ },
+ {
+ "expr": "process_resident_memory_bytes{app=\"istiod\"}",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "Resident Memory",
+ "refId": "H",
+ "step": 2
+ },
+ {
+ "expr": "go_memstats_heap_sys_bytes{app=\"istiod\"}",
+ "format": "time_series",
+ "hide": true,
+ "intervalFactor": 2,
+ "legendFormat": "heap sys",
+ "refId": "A"
+ },
+ {
+ "expr": "go_memstats_heap_alloc_bytes{app=\"istiod\"}",
+ "format": "time_series",
+ "hide": true,
+ "intervalFactor": 2,
+ "legendFormat": "heap alloc",
+ "refId": "D"
+ },
+ {
+ "expr": "go_memstats_alloc_bytes{app=\"istiod\"}",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "Alloc",
+ "refId": "F",
+ "step": 2
+ },
+ {
+ "expr": "go_memstats_heap_inuse_bytes{app=\"istiod\"}",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 2,
+ "legendFormat": "Heap in-use",
+ "refId": "E",
+ "step": 2
+ },
+ {
+ "expr": "go_memstats_stack_inuse_bytes{app=\"istiod\"}",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "Stack in-use",
+ "refId": "G",
+ "step": 2
+ },
+ {
+ "expr": "container_memory_usage_bytes{container=~\"discovery\", pod=~\"istiod-.*|istio-pilot-.*\"}",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 2,
+ "legendFormat": "Discovery (container)",
+ "refId": "B",
+ "step": 2
+ },
+ {
+ "expr": "container_memory_usage_bytes{container=~\"istio-proxy\", pod=~\"istiod-.*|istio-pilot-.*\"}",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "Sidecar (container)",
+ "refId": "C"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Memory",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "bytes",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "fill": 1,
+ "gridPos": {
+ "h": 7,
+ "w": 6,
+ "x": 6,
+ "y": 7
+ },
+ "id": 6,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(irate(container_cpu_usage_seconds_total{container=\"discovery\", pod=~\"istiod-.*|istio-pilot-.*\"}[1m]))",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "Discovery (container)",
+ "refId": "A"
+ },
+ {
+ "expr": "irate(process_cpu_seconds_total{app=\"istiod\"}[1m])",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 2,
+ "legendFormat": "Discovery (process)",
+ "refId": "C",
+ "step": 2
+ },
+ {
+ "expr": "sum(irate(container_cpu_usage_seconds_total{container=\"istio-proxy\", pod=~\"istiod-.*|istio-pilot-.*\"}[1m]))",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 2,
+ "legendFormat": "Sidecar (container)",
+ "refId": "B",
+ "step": 2
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "CPU",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "fill": 1,
+ "gridPos": {
+ "h": 7,
+ "w": 6,
+ "x": 12,
+ "y": 7
+ },
+ "id": 7,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "container_fs_usage_bytes{container=\"discovery\", pod=~\"istiod-.*|istio-pilot-.*\"}",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "Discovery",
+ "refId": "B",
+ "step": 2
+ },
+ {
+ "expr": "container_fs_usage_bytes{container=\"istio-proxy\", pod=~\"istiod-.*|istio-pilot-.*\"}",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "Sidecar",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Disk",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "bytes",
+ "label": "",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "decimals": null,
+ "format": "none",
+ "label": "",
+ "logBase": 1024,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "fill": 1,
+ "gridPos": {
+ "h": 7,
+ "w": 6,
+ "x": 18,
+ "y": 7
+ },
+ "id": 4,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "go_goroutines{app=\"istiod\"}",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "Number of Goroutines",
+ "refId": "A",
+ "step": 2
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Goroutines",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": "",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "collapsed": false,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 14
+ },
+ "id": 58,
+ "panels": [],
+ "title": "Pilot Push Information",
+ "type": "row"
+ },
+ {
+ "aliasColors": {},
+ "bars": true,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "description": "Shows the rate of pilot pushes",
+ "fill": 1,
+ "gridPos": {
+ "h": 8,
+ "w": 8,
+ "x": 0,
+ "y": 15
+ },
+ "id": 622,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": false,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null as zero",
+ "paceLength": 10,
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": true,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(irate(pilot_xds_pushes{type=\"cds\"}[1m]))",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "Cluster",
+ "refId": "C"
+ },
+ {
+ "expr": "sum(irate(pilot_xds_pushes{type=\"eds\"}[1m]))",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "Endpoints",
+ "refId": "D"
+ },
+ {
+ "expr": "sum(irate(pilot_xds_pushes{type=\"lds\"}[1m]))",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "Listeners",
+ "refId": "A"
+ },
+ {
+ "expr": "sum(irate(pilot_xds_pushes{type=\"rds\"}[1m]))",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "Routes",
+ "refId": "E"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Pilot Pushes",
+ "tooltip": {
+ "shared": false,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": [
+ "total"
+ ]
+ },
+ "yaxes": [
+ {
+ "format": "ops",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "description": "Captures a variety of pilot errors",
+ "fill": 1,
+ "gridPos": {
+ "h": 8,
+ "w": 8,
+ "x": 8,
+ "y": 15
+ },
+ "id": 67,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "hideEmpty": true,
+ "hideZero": true,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(pilot_xds_cds_reject{app=\"istiod\"}) or (absent(pilot_xds_cds_reject{app=\"istiod\"}) - 1)",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 1,
+ "legendFormat": "Rejected CDS Configs",
+ "refId": "C"
+ },
+ {
+ "expr": "sum(pilot_xds_eds_reject{app=\"istiod\"}) or (absent(pilot_xds_eds_reject{app=\"istiod\"}) - 1)",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 1,
+ "legendFormat": "Rejected EDS Configs",
+ "refId": "D"
+ },
+ {
+ "expr": "sum(pilot_xds_rds_reject{app=\"istiod\"}) or (absent(pilot_xds_rds_reject{app=\"istiod\"}) - 1)",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 1,
+ "legendFormat": "Rejected RDS Configs",
+ "refId": "A"
+ },
+ {
+ "expr": "sum(pilot_xds_lds_reject{app=\"istiod\"}) or (absent(pilot_xds_lds_reject{app=\"istiod\"}) - 1)",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 1,
+ "legendFormat": "Rejected LDS Configs",
+ "refId": "B"
+ },
+ {
+ "expr": "sum(rate(pilot_xds_write_timeout{app=\"istiod\"}[1m]))",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "Write Timeouts",
+ "refId": "F"
+ },
+ {
+ "expr": "sum(rate(pilot_total_xds_internal_errors{app=\"istiod\"}[1m]))",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 1,
+ "legendFormat": "Internal Errors",
+ "refId": "H"
+ },
+ {
+ "expr": "sum(rate(pilot_total_xds_rejects{app=\"istiod\"}[1m]))",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 1,
+ "legendFormat": "Config Rejection Rate",
+ "refId": "E"
+ },
+ {
+ "expr": "sum(rate(pilot_xds_push_context_errors{app=\"istiod\"}[1m]))",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 1,
+ "legendFormat": "Push Context Errors",
+ "refId": "K"
+ },
+ {
+ "expr": "sum(rate(pilot_xds_pushes{type!~\"lds|cds|rds|eds\"}[1m])) by (type)",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "Push Errors ({{ type }})",
+ "refId": "L"
+ },
+ {
+ "expr": "sum(rate(pilot_xds_push_errors{app=\"istiod\"}[1m])) by (type)",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 1,
+ "legendFormat": "Push Errors ({{ type }})",
+ "refId": "I"
+ },
+ {
+ "expr": "sum(rate(pilot_xds_push_timeout{app=\"istiod\"}[1m]))",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "Push Timeouts",
+ "refId": "G"
+ },
+ {
+ "expr": "sum(rate(pilot_xds_push_timeout_failures{app=\"istiod\"}[1m]))",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "Push Timeouts Failures",
+ "refId": "J"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Pilot Errors",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "description": "Shows the total time it takes to push a config update to a proxy",
+ "fill": 1,
+ "gridPos": {
+ "h": 8,
+ "w": 8,
+ "x": 16,
+ "y": 15
+ },
+ "id": 624,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 2,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "histogram_quantile(0.5, sum(rate(pilot_proxy_convergence_time_bucket[1m])) by (le))",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "p50 ",
+ "refId": "A"
+ },
+ {
+ "expr": "histogram_quantile(0.9, sum(rate(pilot_proxy_convergence_time_bucket[1m])) by (le))",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "p90",
+ "refId": "B"
+ },
+ {
+ "expr": "histogram_quantile(0.99, sum(rate(pilot_proxy_convergence_time_bucket[1m])) by (le))",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "p99",
+ "refId": "C"
+ },
+ {
+ "expr": "histogram_quantile(0.999, sum(rate(pilot_proxy_convergence_time_bucket[1m])) by (le))",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "p99.9",
+ "refId": "D"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Proxy Push Time",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "s",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "fill": 1,
+ "gridPos": {
+ "h": 8,
+ "w": 8,
+ "x": 0,
+ "y": 23
+ },
+ "id": 45,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "hideEmpty": true,
+ "hideZero": true,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null as zero",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "pilot_conflict_inbound_listener{app=\"istiod\"}",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 1,
+ "legendFormat": "Inbound Listeners",
+ "refId": "B"
+ },
+ {
+ "expr": "pilot_conflict_outbound_listener_http_over_current_tcp{app=\"istiod\"}",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 1,
+ "legendFormat": "Outbound Listeners (http over current tcp)",
+ "refId": "A"
+ },
+ {
+ "expr": "pilot_conflict_outbound_listener_tcp_over_current_tcp{app=\"istiod\"}",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 1,
+ "legendFormat": "Outbound Listeners (tcp over current tcp)",
+ "refId": "C"
+ },
+ {
+ "expr": "pilot_conflict_outbound_listener_tcp_over_current_http{app=\"istiod\"}",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 1,
+ "legendFormat": "Outbound Listeners (tcp over current http)",
+ "refId": "D"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Conflicts",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "fill": 1,
+ "gridPos": {
+ "h": 8,
+ "w": 8,
+ "x": 8,
+ "y": 23
+ },
+ "id": 47,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "pilot_virt_services{app=\"istiod\"}",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "Virtual Services",
+ "refId": "A"
+ },
+ {
+ "expr": "pilot_services{app=\"istiod\"}",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "Services",
+ "refId": "B"
+ },
+ {
+ "expr": "pilot_xds{app=\"istiod\"}",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "Connected Endpoints",
+ "refId": "E"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "ADS Monitoring",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "columns": [],
+ "datasource": "Prometheus",
+ "description": "Clusters in this table do not have any endpoints known to pilot. This could be from referencing subsets that do not have any instances, or pods marked as NotReady",
+ "fontSize": "100%",
+ "gridPos": {
+ "h": 8,
+ "w": 8,
+ "x": 16,
+ "y": 23
+ },
+ "id": 51,
+ "links": [],
+ "pageSize": null,
+ "scroll": true,
+ "showHeader": true,
+ "sort": {
+ "col": null,
+ "desc": false
+ },
+ "styles": [
+ {
+ "alias": "Time",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "pattern": "Time",
+ "type": "date"
+ },
+ {
+ "alias": "Clusters",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "decimals": 2,
+ "pattern": "/.*/",
+ "thresholds": [],
+ "type": "number",
+ "unit": "short"
+ }
+ ],
+ "targets": [
+ {
+ "expr": "sum(pilot_xds_eds_instances{app=\"istiod\", cluster=~\".+\\\\|.+\"}) by (cluster) < 1",
+ "format": "time_series",
+ "hide": false,
+ "instant": true,
+ "intervalFactor": 1,
+ "legendFormat": "{{cluster}}",
+ "refId": "B"
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Clusters with no known endpoints",
+ "transform": "timeseries_aggregations",
+ "type": "table"
+ },
+ {
+ "collapsed": false,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 31
+ },
+ "id": 64,
+ "panels": [],
+ "title": "Envoy Information",
+ "type": "row"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "description": "Shows details about Envoy proxies in the mesh",
+ "fill": 1,
+ "gridPos": {
+ "h": 8,
+ "w": 8,
+ "x": 0,
+ "y": 32
+ },
+ "id": 40,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(irate(envoy_cluster_upstream_cx_total{cluster_name=\"xds-grpc\"}[1m]))",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 1,
+ "legendFormat": "XDS Connections",
+ "refId": "C"
+ },
+ {
+ "expr": "sum(irate(envoy_cluster_upstream_cx_connect_fail{cluster_name=\"xds-grpc\"}[1m]))",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 1,
+ "legendFormat": "XDS Connection Failures",
+ "refId": "A"
+ },
+ {
+ "expr": "sum(increase(envoy_server_hot_restart_epoch[1m]))",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "Envoy Restarts",
+ "refId": "B"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Envoy Details",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "ops",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "ops",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "fill": 1,
+ "gridPos": {
+ "h": 8,
+ "w": 8,
+ "x": 8,
+ "y": 32
+ },
+ "id": 41,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(envoy_cluster_upstream_cx_active{cluster_name=\"xds-grpc\"})",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "XDS Active Connections",
+ "refId": "C",
+ "step": 2
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "XDS Active Connections",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "description": "Shows the size of XDS requests and responses",
+ "fill": 1,
+ "gridPos": {
+ "h": 8,
+ "w": 8,
+ "x": 16,
+ "y": 32
+ },
+ "id": 42,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "hideEmpty": false,
+ "hideZero": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "max(rate(envoy_cluster_upstream_cx_rx_bytes_total{cluster_name=\"xds-grpc\"}[1m]))",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 1,
+ "legendFormat": "XDS Response Bytes Max",
+ "refId": "D"
+ },
+ {
+ "expr": "quantile(0.5, rate(envoy_cluster_upstream_cx_rx_bytes_total{cluster_name=\"xds-grpc\"}[1m]))",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 1,
+ "legendFormat": "XDS Response Bytes Average",
+ "refId": "B"
+ },
+ {
+ "expr": "max(rate(envoy_cluster_upstream_cx_tx_bytes_total{cluster_name=\"xds-grpc\"}[1m]))",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "XDS Request Bytes Max",
+ "refId": "A"
+ },
+ {
+ "expr": "quantile(.5, rate(envoy_cluster_upstream_cx_tx_bytes_total{cluster_name=\"xds-grpc\"}[1m]))",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "XDS Request Bytes Average",
+ "refId": "C"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "XDS Requests Size",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "Bps",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "ops",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "collapsed": false,
+ "datasource": null,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 40
+ },
+ "id": 626,
+ "panels": [],
+ "title": "Webhooks",
+ "type": "row"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 0,
+ "y": 41
+ },
+ "hiddenSeries": false,
+ "id": 629,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "hideEmpty": false,
+ "hideZero": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "nullPointMode": "null",
+ "options": {
+ "dataLinks": []
+ },
+ "percentage": false,
+ "pointradius": 2,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(rate(galley_validation_passed[1m]))",
+ "interval": "",
+ "legendFormat": "Validations (Success)",
+ "refId": "A"
+ },
+ {
+ "expr": "sum(rate(galley_validation_failed[1m]))",
+ "interval": "",
+ "legendFormat": "Validation (Failure)",
+ "refId": "B"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Configuration Validation",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "description": "",
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 12,
+ "y": 41
+ },
+ "hiddenSeries": false,
+ "id": 630,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "hideZero": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "nullPointMode": "null",
+ "options": {
+ "dataLinks": []
+ },
+ "percentage": false,
+ "pointradius": 2,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(rate(sidecar_injection_success_total[1m]))",
+ "interval": "",
+ "legendFormat": "Injections (Success)",
+ "refId": "A"
+ },
+ {
+ "expr": "sum(rate(sidecar_injection_failure_total[1m]))",
+ "interval": "",
+ "legendFormat": "Injections (Failure)",
+ "refId": "B"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Sidecar Injection",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ }
+ ],
+ "refresh": "5s",
+ "schemaVersion": 18,
+ "style": "dark",
+ "tags": [],
+ "templating": {
+ "list": []
+ },
+ "time": {
+ "from": "now-5m",
+ "to": "now"
+ },
+ "timepicker": {
+ "refresh_intervals": [
+ "5s",
+ "10s",
+ "30s",
+ "1m",
+ "5m",
+ "15m",
+ "30m",
+ "1h",
+ "2h",
+ "1d"
+ ],
+ "time_options": [
+ "5m",
+ "15m",
+ "1h",
+ "6h",
+ "12h",
+ "24h",
+ "2d",
+ "7d",
+ "30d"
+ ]
+ },
+ "timezone": "browser",
+ "title": "Istio Control Plane Dashboard",
+ "uid": "3--MLVZZk",
+ "version": 11
+ }
+kind: ConfigMap
+metadata:
+ creationTimestamp: null
+ name: istio-grafana-dashboards
+ namespace: istio-system
+
+---
+
+apiVersion: v1
+data:
+ istio-mesh-dashboard.json: |
+ {
+ "annotations": {
+ "list": [
+ {
+ "builtIn": 1,
+ "datasource": "-- Grafana --",
+ "enable": true,
+ "hide": true,
+ "iconColor": "rgba(0, 211, 255, 1)",
+ "name": "Annotations & Alerts",
+ "type": "dashboard"
+ }
+ ]
+ },
+ "editable": false,
+ "gnetId": null,
+ "graphTooltip": 0,
+ "id": null,
+ "links": [],
+ "panels": [
+ {
+ "content": "",
+ "gridPos": {
+ "h": 3,
+ "w": 24,
+ "x": 0,
+ "y": 0
+ },
+ "height": "50px",
+ "id": 13,
+ "links": [],
+ "mode": "html",
+ "style": {
+ "font-size": "18pt"
+ },
+ "title": "",
+ "transparent": true,
+ "type": "text"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "Prometheus",
+ "format": "ops",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 3,
+ "w": 6,
+ "x": 0,
+ "y": 3
+ },
+ "id": 20,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": true,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": true
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "expr": "round(sum(irate(istio_requests_total{reporter=\"destination\"}[1m])), 0.001)",
+ "intervalFactor": 1,
+ "refId": "A",
+ "step": 4
+ }
+ ],
+ "thresholds": "",
+ "title": "Global Request Volume",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "Prometheus",
+ "format": "percentunit",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 80,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": false
+ },
+ "gridPos": {
+ "h": 3,
+ "w": 6,
+ "x": 6,
+ "y": 3
+ },
+ "id": 21,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": true,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": true
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "expr": "sum(rate(istio_requests_total{reporter=\"destination\", response_code!~\"5.*\"}[1m])) / sum(rate(istio_requests_total{reporter=\"destination\"}[1m]))",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "refId": "A",
+ "step": 4
+ }
+ ],
+ "thresholds": "95, 99, 99.5",
+ "title": "Global Success Rate (non-5xx responses)",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "Prometheus",
+ "format": "ops",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 3,
+ "w": 6,
+ "x": 12,
+ "y": 3
+ },
+ "id": 22,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": true,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": true
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "expr": "sum(irate(istio_requests_total{reporter=\"destination\", response_code=~\"4.*\"}[1m])) ",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "refId": "A",
+ "step": 4
+ }
+ ],
+ "thresholds": "",
+ "title": "4xxs",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "Prometheus",
+ "format": "ops",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 3,
+ "w": 6,
+ "x": 18,
+ "y": 3
+ },
+ "id": 23,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": true,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": true
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "expr": "sum(irate(istio_requests_total{reporter=\"destination\", response_code=~\"5.*\"}[1m])) ",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "refId": "A",
+ "step": 4
+ }
+ ],
+ "thresholds": "",
+ "title": "5xxs",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": "Prometheus",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 3,
+ "w": 6,
+ "x": 0,
+ "y": 6
+ },
+ "id": 113,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": true
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "expr": "avg(galley_istio_networking_virtualservices)",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "refId": "A"
+ }
+ ],
+ "thresholds": "",
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Virtual Services",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": "Prometheus",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 3,
+ "w": 6,
+ "x": 6,
+ "y": 6
+ },
+ "id": 114,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": true
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "expr": "avg(galley_istio_networking_destinationrules)",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "refId": "A"
+ }
+ ],
+ "thresholds": "",
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Destination Rules",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": "Prometheus",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 3,
+ "w": 6,
+ "x": 12,
+ "y": 6
+ },
+ "id": 115,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": true
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "expr": "avg(galley_istio_networking_gateways)",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "refId": "A"
+ }
+ ],
+ "thresholds": "",
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Gateways",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": "Prometheus",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 3,
+ "w": 6,
+ "x": 18,
+ "y": 6
+ },
+ "id": 116,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": true
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "expr": "avg(galley_istio_authentication_meshpolicies)",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 1,
+ "refId": "A"
+ }
+ ],
+ "thresholds": "",
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Authentication Mesh Policies",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "columns": [],
+ "datasource": "Prometheus",
+ "fontSize": "100%",
+ "gridPos": {
+ "h": 21,
+ "w": 24,
+ "x": 0,
+ "y": 9
+ },
+ "hideTimeOverride": false,
+ "id": 73,
+ "links": [],
+ "pageSize": null,
+ "repeat": null,
+ "repeatDirection": "v",
+ "scroll": true,
+ "showHeader": true,
+ "sort": {
+ "col": 4,
+ "desc": true
+ },
+ "styles": [
+ {
+ "alias": "Workload",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "decimals": 2,
+ "link": false,
+ "linkTargetBlank": false,
+ "linkTooltip": "Workload dashboard",
+ "linkUrl": "/dashboard/db/istio-workload-dashboard?var-namespace=$__cell_2&var-workload=$__cell_",
+ "pattern": "destination_workload",
+ "preserveFormat": false,
+ "sanitize": false,
+ "thresholds": [],
+ "type": "hidden",
+ "unit": "short"
+ },
+ {
+ "alias": "",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "decimals": 2,
+ "pattern": "Time",
+ "thresholds": [],
+ "type": "hidden",
+ "unit": "short"
+ },
+ {
+ "alias": "Requests",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "decimals": 2,
+ "pattern": "Value #A",
+ "thresholds": [],
+ "type": "number",
+ "unit": "ops"
+ },
+ {
+ "alias": "P50 Latency",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "decimals": 2,
+ "pattern": "Value #B",
+ "thresholds": [],
+ "type": "number",
+ "unit": "s"
+ },
+ {
+ "alias": "P90 Latency",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "decimals": 2,
+ "pattern": "Value #D",
+ "thresholds": [],
+ "type": "number",
+ "unit": "s"
+ },
+ {
+ "alias": "P99 Latency",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "decimals": 2,
+ "pattern": "Value #E",
+ "thresholds": [],
+ "type": "number",
+ "unit": "s"
+ },
+ {
+ "alias": "Success Rate",
+ "colorMode": "cell",
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "decimals": 2,
+ "pattern": "Value #F",
+ "thresholds": [
+ ".95",
+ " 1.00"
+ ],
+ "type": "number",
+ "unit": "percentunit"
+ },
+ {
+ "alias": "Workload",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "decimals": 2,
+ "link": true,
+ "linkTooltip": "$__cell dashboard",
+ "linkUrl": "/dashboard/db/istio-workload-dashboard?var-workload=$__cell_2&var-namespace=$__cell_3",
+ "pattern": "destination_workload_var",
+ "thresholds": [],
+ "type": "number",
+ "unit": "short"
+ },
+ {
+ "alias": "Service",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "decimals": 2,
+ "link": true,
+ "linkTooltip": "$__cell dashboard",
+ "linkUrl": "/dashboard/db/istio-service-dashboard?var-service=$__cell",
+ "pattern": "destination_service",
+ "thresholds": [],
+ "type": "string",
+ "unit": "short"
+ },
+ {
+ "alias": "",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "decimals": 2,
+ "pattern": "destination_workload_namespace",
+ "thresholds": [],
+ "type": "hidden",
+ "unit": "short"
+ }
+ ],
+ "targets": [
+ {
+ "expr": "label_join(sum(rate(istio_requests_total{reporter=\"destination\", response_code=\"200\"}[1m])) by (destination_workload, destination_workload_namespace, destination_service), \"destination_workload_var\", \".\", \"destination_workload\", \"destination_workload_namespace\")",
+ "format": "table",
+ "hide": false,
+ "instant": true,
+ "intervalFactor": 1,
+ "legendFormat": "{{ destination_workload}}.{{ destination_workload_namespace }}",
+ "refId": "A"
+ },
+ {
+ "expr": "label_join((histogram_quantile(0.50, sum(rate(istio_request_duration_milliseconds_bucket{reporter=\"destination\"}[1m])) by (le, destination_workload, destination_workload_namespace)) / 1000) or histogram_quantile(0.50, sum(rate(istio_request_duration_seconds_bucket{reporter=\"destination\"}[1m])) by (le, destination_workload, destination_workload_namespace)), \"destination_workload_var\", \".\", \"destination_workload\", \"destination_workload_namespace\")",
+ "format": "table",
+ "hide": false,
+ "instant": true,
+ "intervalFactor": 1,
+ "legendFormat": "{{ destination_workload}}.{{ destination_workload_namespace }}",
+ "refId": "B"
+ },
+ {
+ "expr": "label_join((histogram_quantile(0.90, sum(rate(istio_request_duration_milliseconds_bucket{reporter=\"destination\"}[1m])) by (le, destination_workload, destination_workload_namespace)) / 1000) or histogram_quantile(0.90, sum(rate(istio_request_duration_seconds_bucket{reporter=\"destination\"}[1m])) by (le, destination_workload, destination_workload_namespace)), \"destination_workload_var\", \".\", \"destination_workload\", \"destination_workload_namespace\")",
+ "format": "table",
+ "hide": false,
+ "instant": true,
+ "intervalFactor": 1,
+ "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }}",
+ "refId": "D"
+ },
+ {
+ "expr": "label_join((histogram_quantile(0.99, sum(rate(istio_request_duration_milliseconds_bucket{reporter=\"destination\"}[1m])) by (le, destination_workload, destination_workload_namespace)) / 1000) or histogram_quantile(0.99, sum(rate(istio_request_duration_seconds_bucket{reporter=\"destination\"}[1m])) by (le, destination_workload, destination_workload_namespace)), \"destination_workload_var\", \".\", \"destination_workload\", \"destination_workload_namespace\")",
+ "format": "table",
+ "hide": false,
+ "instant": true,
+ "intervalFactor": 1,
+ "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }}",
+ "refId": "E"
+ },
+ {
+ "expr": "label_join((sum(rate(istio_requests_total{reporter=\"destination\", response_code!~\"5.*\"}[1m])) by (destination_workload, destination_workload_namespace) / sum(rate(istio_requests_total{reporter=\"destination\"}[1m])) by (destination_workload, destination_workload_namespace)), \"destination_workload_var\", \".\", \"destination_workload\", \"destination_workload_namespace\")",
+ "format": "table",
+ "hide": false,
+ "instant": true,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }}",
+ "refId": "F"
+ }
+ ],
+ "timeFrom": null,
+ "title": "HTTP/GRPC Workloads",
+ "transform": "table",
+ "type": "table"
+ },
+ {
+ "columns": [],
+ "datasource": "Prometheus",
+ "fontSize": "100%",
+ "gridPos": {
+ "h": 18,
+ "w": 24,
+ "x": 0,
+ "y": 30
+ },
+ "hideTimeOverride": false,
+ "id": 109,
+ "links": [],
+ "pageSize": null,
+ "repeatDirection": "v",
+ "scroll": true,
+ "showHeader": true,
+ "sort": {
+ "col": 2,
+ "desc": true
+ },
+ "styles": [
+ {
+ "alias": "Workload",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "decimals": 2,
+ "link": false,
+ "linkTargetBlank": false,
+ "linkTooltip": "$__cell dashboard",
+ "linkUrl": "/dashboard/db/istio-tcp-workload-dashboard?var-namespace=$__cell_2&&var-workload=$__cell",
+ "pattern": "destination_workload",
+ "preserveFormat": false,
+ "sanitize": false,
+ "thresholds": [],
+ "type": "hidden",
+ "unit": "short"
+ },
+ {
+ "alias": "Bytes Sent",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "decimals": 2,
+ "pattern": "Value #A",
+ "thresholds": [
+ ""
+ ],
+ "type": "number",
+ "unit": "Bps"
+ },
+ {
+ "alias": "Bytes Received",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "decimals": 2,
+ "pattern": "Value #C",
+ "thresholds": [],
+ "type": "number",
+ "unit": "Bps"
+ },
+ {
+ "alias": "",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "decimals": 2,
+ "pattern": "Time",
+ "thresholds": [],
+ "type": "hidden",
+ "unit": "short"
+ },
+ {
+ "alias": "Workload",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "decimals": 2,
+ "link": true,
+ "linkTooltip": "$__cell dashboard",
+ "linkUrl": "/dashboard/db/istio-workload-dashboard?var-namespace=$__cell_3&var-workload=$__cell_2",
+ "pattern": "destination_workload_var",
+ "thresholds": [],
+ "type": "string",
+ "unit": "short"
+ },
+ {
+ "alias": "",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "decimals": 2,
+ "pattern": "destination_workload_namespace",
+ "thresholds": [],
+ "type": "hidden",
+ "unit": "short"
+ },
+ {
+ "alias": "Service",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "decimals": 2,
+ "link": true,
+ "linkTooltip": "$__cell dashboard",
+ "linkUrl": "/dashboard/db/istio-service-dashboard?var-service=$__cell",
+ "pattern": "destination_service",
+ "thresholds": [],
+ "type": "number",
+ "unit": "short"
+ }
+ ],
+ "targets": [
+ {
+ "expr": "label_join(sum(rate(istio_tcp_received_bytes_total{reporter=\"source\"}[1m])) by (destination_workload, destination_workload_namespace, destination_service), \"destination_workload_var\", \".\", \"destination_workload\", \"destination_workload_namespace\")",
+ "format": "table",
+ "hide": false,
+ "instant": true,
+ "intervalFactor": 1,
+ "legendFormat": "{{ destination_workload }}",
+ "refId": "C"
+ },
+ {
+ "expr": "label_join(sum(rate(istio_tcp_sent_bytes_total{reporter=\"source\"}[1m])) by (destination_workload, destination_workload_namespace, destination_service), \"destination_workload_var\", \".\", \"destination_workload\", \"destination_workload_namespace\")",
+ "format": "table",
+ "hide": false,
+ "instant": true,
+ "intervalFactor": 1,
+ "legendFormat": "{{ destination_workload }}",
+ "refId": "A"
+ }
+ ],
+ "timeFrom": null,
+ "title": "TCP Workloads",
+ "transform": "table",
+ "type": "table"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 24,
+ "x": 0,
+ "y": 48
+ },
+ "id": 111,
+ "legend": {
+ "alignAsTable": false,
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "rightSide": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(istio_build) by (component, tag)",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "{{ component }}: {{ tag }}",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Istio Components by Version",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ }
+ ],
+ "refresh": "5s",
+ "schemaVersion": 18,
+ "style": "dark",
+ "tags": [],
+ "templating": {
+ "list": []
+ },
+ "time": {
+ "from": "now-5m",
+ "to": "now"
+ },
+ "timepicker": {
+ "refresh_intervals": [
+ "5s",
+ "10s",
+ "30s",
+ "1m",
+ "5m",
+ "15m",
+ "30m",
+ "1h",
+ "2h",
+ "1d"
+ ],
+ "time_options": [
+ "5m",
+ "15m",
+ "1h",
+ "6h",
+ "12h",
+ "24h",
+ "2d",
+ "7d",
+ "30d"
+ ]
+ },
+ "timezone": "browser",
+ "title": "Istio Mesh Dashboard",
+ "uid": "G8wLrJIZk",
+ "version": 5
+ }
+ istio-service-dashboard.json: "{\n \"annotations\": {\n \"list\": [\n {\n
+ \ \"builtIn\": 1,\n \"datasource\": \"-- Grafana --\",\n \"enable\":
+ true,\n \"hide\": true,\n \"iconColor\": \"rgba(0, 211, 255, 1)\",\n
+ \ \"name\": \"Annotations & Alerts\",\n \"type\": \"dashboard\"\n
+ \ }\n ]\n },\n \"editable\": false,\n \"gnetId\": null,\n \"graphTooltip\":
+ 0,\n \"iteration\": 1536442501501,\n \"links\": [],\n \"panels\": [\n {\n
+ \ \"content\": \"\",\n \"gridPos\": {\n \"h\": 3,\n \"w\":
+ 24,\n \"x\": 0,\n \"y\": 0\n },\n \"id\": 89,\n \"links\":
+ [],\n \"mode\": \"html\",\n \"title\": \"\",\n \"transparent\":
+ true,\n \"type\": \"text\"\n },\n {\n \"cacheTimeout\": null,\n
+ \ \"colorBackground\": false,\n \"colorValue\": false,\n \"colors\":
+ [\n \"rgba(245, 54, 54, 0.9)\",\n \"rgba(237, 129, 40, 0.89)\",\n
+ \ \"rgba(50, 172, 45, 0.97)\"\n ],\n \"datasource\": \"Prometheus\",\n
+ \ \"format\": \"ops\",\n \"gauge\": {\n \"maxValue\": 100,\n \"minValue\":
+ 0,\n \"show\": false,\n \"thresholdLabels\": false,\n \"thresholdMarkers\":
+ true\n },\n \"gridPos\": {\n \"h\": 4,\n \"w\": 6,\n \"x\":
+ 0,\n \"y\": 3\n },\n \"id\": 12,\n \"interval\": null,\n
+ \ \"links\": [],\n \"mappingType\": 1,\n \"mappingTypes\": [\n {\n
+ \ \"name\": \"value to text\",\n \"value\": 1\n },\n {\n
+ \ \"name\": \"range to text\",\n \"value\": 2\n }\n ],\n
+ \ \"maxDataPoints\": 100,\n \"nullPointMode\": \"connected\",\n \"nullText\":
+ null,\n \"postfix\": \"\",\n \"postfixFontSize\": \"50%\",\n \"prefix\":
+ \"\",\n \"prefixFontSize\": \"50%\",\n \"rangeMaps\": [\n {\n
+ \ \"from\": \"null\",\n \"text\": \"N/A\",\n \"to\":
+ \"null\"\n }\n ],\n \"sparkline\": {\n \"fillColor\":
+ \"rgba(31, 118, 189, 0.18)\",\n \"full\": true,\n \"lineColor\":
+ \"rgb(31, 120, 193)\",\n \"show\": true\n },\n \"tableColumn\":
+ \"\",\n \"targets\": [\n {\n \"expr\": \"round(sum(irate(istio_requests_total{reporter=\\\"source\\\",destination_service=~\\\"$service\\\"}[5m])),
+ 0.001)\",\n \"format\": \"time_series\",\n \"intervalFactor\":
+ 1,\n \"refId\": \"A\",\n \"step\": 4\n }\n ],\n
+ \ \"thresholds\": \"\",\n \"title\": \"Client Request Volume\",\n \"transparent\":
+ false,\n \"type\": \"singlestat\",\n \"valueFontSize\": \"80%\",\n \"valueMaps\":
+ [\n {\n \"op\": \"=\",\n \"text\": \"N/A\",\n \"value\":
+ \"null\"\n }\n ],\n \"valueName\": \"current\"\n },\n {\n
+ \ \"cacheTimeout\": null,\n \"colorBackground\": false,\n \"colorValue\":
+ false,\n \"colors\": [\n \"rgba(50, 172, 45, 0.97)\",\n \"rgba(237,
+ 129, 40, 0.89)\",\n \"rgba(245, 54, 54, 0.9)\"\n ],\n \"datasource\":
+ \"Prometheus\",\n \"decimals\": null,\n \"format\": \"percentunit\",\n
+ \ \"gauge\": {\n \"maxValue\": 100,\n \"minValue\": 80,\n \"show\":
+ false,\n \"thresholdLabels\": false,\n \"thresholdMarkers\": false\n
+ \ },\n \"gridPos\": {\n \"h\": 4,\n \"w\": 6,\n \"x\":
+ 6,\n \"y\": 3\n },\n \"id\": 14,\n \"interval\": null,\n
+ \ \"links\": [],\n \"mappingType\": 1,\n \"mappingTypes\": [\n {\n
+ \ \"name\": \"value to text\",\n \"value\": 1\n },\n {\n
+ \ \"name\": \"range to text\",\n \"value\": 2\n }\n ],\n
+ \ \"maxDataPoints\": 100,\n \"nullPointMode\": \"connected\",\n \"nullText\":
+ null,\n \"postfix\": \"\",\n \"postfixFontSize\": \"50%\",\n \"prefix\":
+ \"\",\n \"prefixFontSize\": \"50%\",\n \"rangeMaps\": [\n {\n
+ \ \"from\": \"null\",\n \"text\": \"N/A\",\n \"to\":
+ \"null\"\n }\n ],\n \"sparkline\": {\n \"fillColor\":
+ \"rgba(31, 118, 189, 0.18)\",\n \"full\": true,\n \"lineColor\":
+ \"rgb(31, 120, 193)\",\n \"show\": true\n },\n \"tableColumn\":
+ \"\",\n \"targets\": [\n {\n \"expr\": \"sum(irate(istio_requests_total{reporter=\\\"source\\\",destination_service=~\\\"$service\\\",response_code!~\\\"5.*\\\"}[5m]))
+ / sum(irate(istio_requests_total{reporter=\\\"source\\\",destination_service=~\\\"$service\\\"}[5m]))\",\n
+ \ \"format\": \"time_series\",\n \"intervalFactor\": 1,\n \"refId\":
+ \"B\"\n }\n ],\n \"thresholds\": \"95, 99, 99.5\",\n \"title\":
+ \"Client Success Rate (non-5xx responses)\",\n \"transparent\": false,\n
+ \ \"type\": \"singlestat\",\n \"valueFontSize\": \"80%\",\n \"valueMaps\":
+ [\n {\n \"op\": \"=\",\n \"text\": \"N/A\",\n \"value\":
+ \"null\"\n }\n ],\n \"valueName\": \"avg\"\n },\n {\n \"aliasColors\":
+ {},\n \"bars\": false,\n \"dashLength\": 10,\n \"dashes\": false,\n
+ \ \"datasource\": \"Prometheus\",\n \"fill\": 1,\n \"gridPos\":
+ {\n \"h\": 4,\n \"w\": 6,\n \"x\": 12,\n \"y\": 3\n
+ \ },\n \"id\": 87,\n \"legend\": {\n \"alignAsTable\": false,\n
+ \ \"avg\": false,\n \"current\": false,\n \"hideEmpty\": false,\n
+ \ \"hideZero\": false,\n \"max\": false,\n \"min\": false,\n
+ \ \"rightSide\": true,\n \"show\": true,\n \"total\": false,\n
+ \ \"values\": false\n },\n \"lines\": true,\n \"linewidth\":
+ 1,\n \"links\": [],\n \"nullPointMode\": \"null\",\n \"percentage\":
+ false,\n \"pointradius\": 5,\n \"points\": false,\n \"renderer\":
+ \"flot\",\n \"seriesOverrides\": [],\n \"spaceLength\": 10,\n \"stack\":
+ false,\n \"steppedLine\": false,\n \"targets\": [\n {\n \"expr\":
+ \"(histogram_quantile(0.50, sum(irate(istio_request_duration_milliseconds_bucket{reporter=\\\"source\\\",destination_service=~\\\"$service\\\"}[1m]))
+ by (le)) / 1000) or histogram_quantile(0.50, sum(irate(istio_request_duration_seconds_bucket{reporter=\\\"source\\\",destination_service=~\\\"$service\\\"}[1m]))
+ by (le))\",\n \"format\": \"time_series\",\n \"interval\": \"\",\n
+ \ \"intervalFactor\": 1,\n \"legendFormat\": \"P50\",\n \"refId\":
+ \"A\"\n },\n {\n \"expr\": \"(histogram_quantile(0.90,
+ sum(irate(istio_request_duration_milliseconds_bucket{reporter=\\\"source\\\",destination_service=~\\\"$service\\\"}[1m]))
+ by (le)) / 1000) or histogram_quantile(0.90, sum(irate(istio_request_duration_seconds_bucket{reporter=\\\"source\\\",destination_service=~\\\"$service\\\"}[1m]))
+ by (le))\",\n \"format\": \"time_series\",\n \"hide\": false,\n
+ \ \"intervalFactor\": 1,\n \"legendFormat\": \"P90\",\n \"refId\":
+ \"B\"\n },\n {\n \"expr\": \"(histogram_quantile(0.99,
+ sum(irate(istio_request_duration_milliseconds_bucket{reporter=\\\"source\\\",destination_service=~\\\"$service\\\"}[1m]))
+ by (le)) / 1000) or histogram_quantile(0.99, sum(irate(istio_request_duration_seconds_bucket{reporter=\\\"source\\\",destination_service=~\\\"$service\\\"}[1m]))
+ by (le))\",\n \"format\": \"time_series\",\n \"hide\": false,\n
+ \ \"intervalFactor\": 1,\n \"legendFormat\": \"P99\",\n \"refId\":
+ \"C\"\n }\n ],\n \"thresholds\": [],\n \"timeFrom\": null,\n
+ \ \"timeShift\": null,\n \"title\": \"Client Request Duration\",\n \"tooltip\":
+ {\n \"shared\": true,\n \"sort\": 0,\n \"value_type\": \"individual\"\n
+ \ },\n \"type\": \"graph\",\n \"xaxis\": {\n \"buckets\":
+ null,\n \"mode\": \"time\",\n \"name\": null,\n \"show\":
+ true,\n \"values\": []\n },\n \"yaxes\": [\n {\n \"format\":
+ \"s\",\n \"label\": null,\n \"logBase\": 1,\n \"max\":
+ null,\n \"min\": null,\n \"show\": true\n },\n {\n
+ \ \"format\": \"short\",\n \"label\": null,\n \"logBase\":
+ 1,\n \"max\": null,\n \"min\": null,\n \"show\": false\n
+ \ }\n ],\n \"yaxis\": {\n \"align\": false,\n \"alignLevel\":
+ null\n }\n },\n {\n \"cacheTimeout\": null,\n \"colorBackground\":
+ false,\n \"colorValue\": false,\n \"colors\": [\n \"#299c46\",\n
+ \ \"rgba(237, 129, 40, 0.89)\",\n \"#d44a3a\"\n ],\n \"datasource\":
+ \"Prometheus\",\n \"format\": \"Bps\",\n \"gauge\": {\n \"maxValue\":
+ 100,\n \"minValue\": 0,\n \"show\": false,\n \"thresholdLabels\":
+ false,\n \"thresholdMarkers\": true\n },\n \"gridPos\": {\n \"h\":
+ 4,\n \"w\": 6,\n \"x\": 18,\n \"y\": 3\n },\n \"id\":
+ 84,\n \"interval\": null,\n \"links\": [],\n \"mappingType\": 1,\n
+ \ \"mappingTypes\": [\n {\n \"name\": \"value to text\",\n
+ \ \"value\": 1\n },\n {\n \"name\": \"range to
+ text\",\n \"value\": 2\n }\n ],\n \"maxDataPoints\":
+ 100,\n \"nullPointMode\": \"connected\",\n \"nullText\": null,\n \"postfix\":
+ \"\",\n \"postfixFontSize\": \"50%\",\n \"prefix\": \"\",\n \"prefixFontSize\":
+ \"50%\",\n \"rangeMaps\": [\n {\n \"from\": \"null\",\n \"text\":
+ \"N/A\",\n \"to\": \"null\"\n }\n ],\n \"sparkline\":
+ {\n \"fillColor\": \"rgba(31, 118, 189, 0.18)\",\n \"full\": true,\n
+ \ \"lineColor\": \"rgb(31, 120, 193)\",\n \"show\": true\n },\n
+ \ \"tableColumn\": \"\",\n \"targets\": [\n {\n \"expr\":
+ \"sum(irate(istio_tcp_received_bytes_total{reporter=\\\"source\\\", destination_service=~\\\"$service\\\"}[1m]))\",\n
+ \ \"format\": \"time_series\",\n \"hide\": false,\n \"intervalFactor\":
+ 1,\n \"legendFormat\": \"\",\n \"refId\": \"A\"\n }\n
+ \ ],\n \"thresholds\": \"\",\n \"title\": \"TCP Received Bytes\",\n
+ \ \"transparent\": false,\n \"type\": \"singlestat\",\n \"valueFontSize\":
+ \"80%\",\n \"valueMaps\": [\n {\n \"op\": \"=\",\n \"text\":
+ \"N/A\",\n \"value\": \"null\"\n }\n ],\n \"valueName\":
+ \"avg\"\n },\n {\n \"cacheTimeout\": null,\n \"colorBackground\":
+ false,\n \"colorValue\": false,\n \"colors\": [\n \"rgba(245,
+ 54, 54, 0.9)\",\n \"rgba(237, 129, 40, 0.89)\",\n \"rgba(50, 172,
+ 45, 0.97)\"\n ],\n \"datasource\": \"Prometheus\",\n \"format\":
+ \"ops\",\n \"gauge\": {\n \"maxValue\": 100,\n \"minValue\":
+ 0,\n \"show\": false,\n \"thresholdLabels\": false,\n \"thresholdMarkers\":
+ true\n },\n \"gridPos\": {\n \"h\": 4,\n \"w\": 6,\n \"x\":
+ 0,\n \"y\": 7\n },\n \"id\": 97,\n \"interval\": null,\n
+ \ \"links\": [],\n \"mappingType\": 1,\n \"mappingTypes\": [\n {\n
+ \ \"name\": \"value to text\",\n \"value\": 1\n },\n {\n
+ \ \"name\": \"range to text\",\n \"value\": 2\n }\n ],\n
+ \ \"maxDataPoints\": 100,\n \"nullPointMode\": \"connected\",\n \"nullText\":
+ null,\n \"postfix\": \"\",\n \"postfixFontSize\": \"50%\",\n \"prefix\":
+ \"\",\n \"prefixFontSize\": \"50%\",\n \"rangeMaps\": [\n {\n
+ \ \"from\": \"null\",\n \"text\": \"N/A\",\n \"to\":
+ \"null\"\n }\n ],\n \"sparkline\": {\n \"fillColor\":
+ \"rgba(31, 118, 189, 0.18)\",\n \"full\": true,\n \"lineColor\":
+ \"rgb(31, 120, 193)\",\n \"show\": true\n },\n \"tableColumn\":
+ \"\",\n \"targets\": [\n {\n \"expr\": \"round(sum(irate(istio_requests_total{reporter=\\\"destination\\\",destination_service=~\\\"$service\\\"}[5m])),
+ 0.001)\",\n \"format\": \"time_series\",\n \"intervalFactor\":
+ 1,\n \"refId\": \"A\",\n \"step\": 4\n }\n ],\n
+ \ \"thresholds\": \"\",\n \"title\": \"Server Request Volume\",\n \"transparent\":
+ false,\n \"type\": \"singlestat\",\n \"valueFontSize\": \"80%\",\n \"valueMaps\":
+ [\n {\n \"op\": \"=\",\n \"text\": \"N/A\",\n \"value\":
+ \"null\"\n }\n ],\n \"valueName\": \"current\"\n },\n {\n
+ \ \"cacheTimeout\": null,\n \"colorBackground\": false,\n \"colorValue\":
+ false,\n \"colors\": [\n \"rgba(50, 172, 45, 0.97)\",\n \"rgba(237,
+ 129, 40, 0.89)\",\n \"rgba(245, 54, 54, 0.9)\"\n ],\n \"datasource\":
+ \"Prometheus\",\n \"decimals\": null,\n \"format\": \"percentunit\",\n
+ \ \"gauge\": {\n \"maxValue\": 100,\n \"minValue\": 80,\n \"show\":
+ false,\n \"thresholdLabels\": false,\n \"thresholdMarkers\": false\n
+ \ },\n \"gridPos\": {\n \"h\": 4,\n \"w\": 6,\n \"x\":
+ 6,\n \"y\": 7\n },\n \"id\": 98,\n \"interval\": null,\n
+ \ \"links\": [],\n \"mappingType\": 1,\n \"mappingTypes\": [\n {\n
+ \ \"name\": \"value to text\",\n \"value\": 1\n },\n {\n
+ \ \"name\": \"range to text\",\n \"value\": 2\n }\n ],\n
+ \ \"maxDataPoints\": 100,\n \"nullPointMode\": \"connected\",\n \"nullText\":
+ null,\n \"postfix\": \"\",\n \"postfixFontSize\": \"50%\",\n \"prefix\":
+ \"\",\n \"prefixFontSize\": \"50%\",\n \"rangeMaps\": [\n {\n
+ \ \"from\": \"null\",\n \"text\": \"N/A\",\n \"to\":
+ \"null\"\n }\n ],\n \"sparkline\": {\n \"fillColor\":
+ \"rgba(31, 118, 189, 0.18)\",\n \"full\": true,\n \"lineColor\":
+ \"rgb(31, 120, 193)\",\n \"show\": true\n },\n \"tableColumn\":
+ \"\",\n \"targets\": [\n {\n \"expr\": \"sum(irate(istio_requests_total{reporter=\\\"destination\\\",destination_service=~\\\"$service\\\",response_code!~\\\"5.*\\\"}[5m]))
+ / sum(irate(istio_requests_total{reporter=\\\"destination\\\",destination_service=~\\\"$service\\\"}[5m]))\",\n
+ \ \"format\": \"time_series\",\n \"intervalFactor\": 1,\n \"refId\":
+ \"B\"\n }\n ],\n \"thresholds\": \"95, 99, 99.5\",\n \"title\":
+ \"Server Success Rate (non-5xx responses)\",\n \"transparent\": false,\n
+ \ \"type\": \"singlestat\",\n \"valueFontSize\": \"80%\",\n \"valueMaps\":
+ [\n {\n \"op\": \"=\",\n \"text\": \"N/A\",\n \"value\":
+ \"null\"\n }\n ],\n \"valueName\": \"avg\"\n },\n {\n \"aliasColors\":
+ {},\n \"bars\": false,\n \"dashLength\": 10,\n \"dashes\": false,\n
+ \ \"datasource\": \"Prometheus\",\n \"fill\": 1,\n \"gridPos\":
+ {\n \"h\": 4,\n \"w\": 6,\n \"x\": 12,\n \"y\": 7\n
+ \ },\n \"id\": 99,\n \"legend\": {\n \"alignAsTable\": false,\n
+ \ \"avg\": false,\n \"current\": false,\n \"hideEmpty\": false,\n
+ \ \"hideZero\": false,\n \"max\": false,\n \"min\": false,\n
+ \ \"rightSide\": true,\n \"show\": true,\n \"total\": false,\n
+ \ \"values\": false\n },\n \"lines\": true,\n \"linewidth\":
+ 1,\n \"links\": [],\n \"nullPointMode\": \"null\",\n \"percentage\":
+ false,\n \"pointradius\": 5,\n \"points\": false,\n \"renderer\":
+ \"flot\",\n \"seriesOverrides\": [],\n \"spaceLength\": 10,\n \"stack\":
+ false,\n \"steppedLine\": false,\n \"targets\": [\n {\n \"expr\":
+ \"(histogram_quantile(0.50, sum(irate(istio_request_duration_milliseconds_bucket{reporter=\\\"destination\\\",destination_service=~\\\"$service\\\"}[1m]))
+ by (le)) / 1000) or histogram_quantile(0.50, sum(irate(istio_request_duration_seconds_bucket{reporter=\\\"destination\\\",destination_service=~\\\"$service\\\"}[1m]))
+ by (le))\",\n \"format\": \"time_series\",\n \"interval\": \"\",\n
+ \ \"intervalFactor\": 1,\n \"legendFormat\": \"P50\",\n \"refId\":
+ \"A\"\n },\n {\n \"expr\": \"(histogram_quantile(0.90,
+ sum(irate(istio_request_duration_milliseconds_bucket{reporter=\\\"destination\\\",destination_service=~\\\"$service\\\"}[1m]))
+ by (le)) / 1000) or histogram_quantile(0.90, sum(irate(istio_request_duration_seconds_bucket{reporter=\\\"destination\\\",destination_service=~\\\"$service\\\"}[1m]))
+ by (le))\",\n \"format\": \"time_series\",\n \"hide\": false,\n
+ \ \"intervalFactor\": 1,\n \"legendFormat\": \"P90\",\n \"refId\":
+ \"B\"\n },\n {\n \"expr\": \"(histogram_quantile(0.99,
+ sum(irate(istio_request_duration_milliseconds_bucket{reporter=\\\"destination\\\",destination_service=~\\\"$service\\\"}[1m]))
+ by (le)) / 1000) or histogram_quantile(0.99, sum(irate(istio_request_duration_seconds_bucket{reporter=\\\"destination\\\",destination_service=~\\\"$service\\\"}[1m]))
+ by (le))\",\n \"format\": \"time_series\",\n \"hide\": false,\n
+ \ \"intervalFactor\": 1,\n \"legendFormat\": \"P99\",\n \"refId\":
+ \"C\"\n }\n ],\n \"thresholds\": [],\n \"timeFrom\": null,\n
+ \ \"timeShift\": null,\n \"title\": \"Server Request Duration\",\n \"tooltip\":
+ {\n \"shared\": true,\n \"sort\": 0,\n \"value_type\": \"individual\"\n
+ \ },\n \"type\": \"graph\",\n \"xaxis\": {\n \"buckets\":
+ null,\n \"mode\": \"time\",\n \"name\": null,\n \"show\":
+ true,\n \"values\": []\n },\n \"yaxes\": [\n {\n \"format\":
+ \"s\",\n \"label\": null,\n \"logBase\": 1,\n \"max\":
+ null,\n \"min\": null,\n \"show\": true\n },\n {\n
+ \ \"format\": \"short\",\n \"label\": null,\n \"logBase\":
+ 1,\n \"max\": null,\n \"min\": null,\n \"show\": false\n
+ \ }\n ],\n \"yaxis\": {\n \"align\": false,\n \"alignLevel\":
+ null\n }\n },\n {\n \"cacheTimeout\": null,\n \"colorBackground\":
+ false,\n \"colorValue\": false,\n \"colors\": [\n \"#299c46\",\n
+ \ \"rgba(237, 129, 40, 0.89)\",\n \"#d44a3a\"\n ],\n \"datasource\":
+ \"Prometheus\",\n \"format\": \"Bps\",\n \"gauge\": {\n \"maxValue\":
+ 100,\n \"minValue\": 0,\n \"show\": false,\n \"thresholdLabels\":
+ false,\n \"thresholdMarkers\": true\n },\n \"gridPos\": {\n \"h\":
+ 4,\n \"w\": 6,\n \"x\": 18,\n \"y\": 7\n },\n \"id\":
+ 100,\n \"interval\": null,\n \"links\": [],\n \"mappingType\":
+ 1,\n \"mappingTypes\": [\n {\n \"name\": \"value to text\",\n
+ \ \"value\": 1\n },\n {\n \"name\": \"range to
+ text\",\n \"value\": 2\n }\n ],\n \"maxDataPoints\":
+ 100,\n \"nullPointMode\": \"connected\",\n \"nullText\": null,\n \"postfix\":
+ \"\",\n \"postfixFontSize\": \"50%\",\n \"prefix\": \"\",\n \"prefixFontSize\":
+ \"50%\",\n \"rangeMaps\": [\n {\n \"from\": \"null\",\n \"text\":
+ \"N/A\",\n \"to\": \"null\"\n }\n ],\n \"sparkline\":
+ {\n \"fillColor\": \"rgba(31, 118, 189, 0.18)\",\n \"full\": true,\n
+ \ \"lineColor\": \"rgb(31, 120, 193)\",\n \"show\": true\n },\n
+ \ \"tableColumn\": \"\",\n \"targets\": [\n {\n \"expr\":
+ \"sum(irate(istio_tcp_sent_bytes_total{reporter=\\\"source\\\", destination_service=~\\\"$service\\\"}[1m]))
+ \",\n \"format\": \"time_series\",\n \"hide\": false,\n \"intervalFactor\":
+ 1,\n \"legendFormat\": \"\",\n \"refId\": \"A\"\n }\n
+ \ ],\n \"thresholds\": \"\",\n \"title\": \"TCP Sent Bytes\",\n
+ \ \"transparent\": false,\n \"type\": \"singlestat\",\n \"valueFontSize\":
+ \"80%\",\n \"valueMaps\": [\n {\n \"op\": \"=\",\n \"text\":
+ \"N/A\",\n \"value\": \"null\"\n }\n ],\n \"valueName\":
+ \"avg\"\n },\n {\n \"content\": \"\",\n \"gridPos\": {\n \"h\": 3,\n \"w\":
+ 24,\n \"x\": 0,\n \"y\": 11\n },\n \"id\": 45,\n \"links\":
+ [],\n \"mode\": \"html\",\n \"title\": \"\",\n \"transparent\":
+ true,\n \"type\": \"text\"\n },\n {\n \"aliasColors\": {},\n \"bars\":
+ false,\n \"dashLength\": 10,\n \"dashes\": false,\n \"datasource\":
+ \"Prometheus\",\n \"fill\": 0,\n \"gridPos\": {\n \"h\": 6,\n
+ \ \"w\": 12,\n \"x\": 0,\n \"y\": 14\n },\n \"id\":
+ 25,\n \"legend\": {\n \"avg\": false,\n \"current\": false,\n
+ \ \"hideEmpty\": true,\n \"max\": false,\n \"min\": false,\n
+ \ \"show\": true,\n \"total\": false,\n \"values\": false\n
+ \ },\n \"lines\": true,\n \"linewidth\": 1,\n \"links\": [],\n
+ \ \"nullPointMode\": \"null as zero\",\n \"percentage\": false,\n \"pointradius\":
+ 5,\n \"points\": false,\n \"renderer\": \"flot\",\n \"seriesOverrides\":
+ [],\n \"spaceLength\": 10,\n \"stack\": false,\n \"steppedLine\":
+ false,\n \"targets\": [\n {\n \"expr\": \"round(sum(irate(istio_requests_total{connection_security_policy=\\\"mutual_tls\\\",destination_service=~\\\"$service\\\",reporter=\\\"source\\\",source_workload=~\\\"$srcwl\\\",source_workload_namespace=~\\\"$srcns\\\"}[5m]))
+ by (source_workload, source_workload_namespace, response_code), 0.001)\",\n \"format\":
+ \"time_series\",\n \"intervalFactor\": 1,\n \"legendFormat\":
+ \"{{ source_workload }}.{{ source_workload_namespace }} : {{ response_code }}
+ (\U0001F510mTLS)\",\n \"refId\": \"B\",\n \"step\": 2\n },\n
+ \ {\n \"expr\": \"round(sum(irate(istio_requests_total{connection_security_policy!=\\\"mutual_tls\\\",
+ destination_service=~\\\"$service\\\", reporter=\\\"source\\\", source_workload=~\\\"$srcwl\\\",
+ source_workload_namespace=~\\\"$srcns\\\"}[5m])) by (source_workload, source_workload_namespace,
+ response_code), 0.001)\",\n \"format\": \"time_series\",\n \"hide\":
+ false,\n \"intervalFactor\": 1,\n \"legendFormat\": \"{{ source_workload
+ }}.{{ source_workload_namespace }} : {{ response_code }}\",\n \"refId\":
+ \"A\",\n \"step\": 2\n }\n ],\n \"thresholds\": [],\n
+ \ \"timeFrom\": null,\n \"timeShift\": null,\n \"title\": \"Incoming
+ Requests by Source And Response Code\",\n \"tooltip\": {\n \"shared\":
+ false,\n \"sort\": 0,\n \"value_type\": \"individual\"\n },\n
+ \ \"type\": \"graph\",\n \"xaxis\": {\n \"buckets\": null,\n \"mode\":
+ \"time\",\n \"name\": null,\n \"show\": true,\n \"values\":
+ [\n \"total\"\n ]\n },\n \"yaxes\": [\n {\n \"format\":
+ \"ops\",\n \"label\": null,\n \"logBase\": 1,\n \"max\":
+ null,\n \"min\": \"0\",\n \"show\": true\n },\n {\n
+ \ \"format\": \"short\",\n \"label\": null,\n \"logBase\":
+ 1,\n \"max\": null,\n \"min\": null,\n \"show\": false\n
+ \ }\n ],\n \"yaxis\": {\n \"align\": false,\n \"alignLevel\":
+ null\n }\n },\n {\n \"aliasColors\": {},\n \"bars\": false,\n
+ \ \"dashLength\": 10,\n \"dashes\": false,\n \"datasource\": \"Prometheus\",\n
+ \ \"fill\": 1,\n \"gridPos\": {\n \"h\": 6,\n \"w\": 12,\n
+ \ \"x\": 12,\n \"y\": 14\n },\n \"id\": 26,\n \"legend\":
+ {\n \"avg\": false,\n \"current\": false,\n \"hideEmpty\":
+ true,\n \"hideZero\": false,\n \"max\": false,\n \"min\":
+ false,\n \"show\": true,\n \"total\": false,\n \"values\":
+ false\n },\n \"lines\": true,\n \"linewidth\": 1,\n \"links\":
+ [],\n \"nullPointMode\": \"null\",\n \"percentage\": false,\n \"pointradius\":
+ 5,\n \"points\": false,\n \"renderer\": \"flot\",\n \"seriesOverrides\":
+ [],\n \"spaceLength\": 10,\n \"stack\": false,\n \"steppedLine\":
+ false,\n \"targets\": [\n {\n \"expr\": \"sum(irate(istio_requests_total{reporter=\\\"source\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",response_code!~\\\"5.*\\\",
+ source_workload=~\\\"$srcwl\\\", source_workload_namespace=~\\\"$srcns\\\"}[5m]))
+ by (source_workload, source_workload_namespace) / sum(irate(istio_requests_total{reporter=\\\"source\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ source_workload=~\\\"$srcwl\\\", source_workload_namespace=~\\\"$srcns\\\"}[5m]))
+ by (source_workload, source_workload_namespace)\",\n \"format\": \"time_series\",\n
+ \ \"hide\": false,\n \"intervalFactor\": 1,\n \"legendFormat\":
+ \"{{ source_workload }}.{{ source_workload_namespace }} (\U0001F510mTLS)\",\n
+ \ \"refId\": \"A\",\n \"step\": 2\n },\n {\n \"expr\":
+ \"sum(irate(istio_requests_total{reporter=\\\"source\\\", connection_security_policy!=\\\"mutual_tls\\\",
+ destination_service=~\\\"$service\\\",response_code!~\\\"5.*\\\", source_workload=~\\\"$srcwl\\\",
+ source_workload_namespace=~\\\"$srcns\\\"}[5m])) by (source_workload, source_workload_namespace)
+ / sum(irate(istio_requests_total{reporter=\\\"source\\\", connection_security_policy!=\\\"mutual_tls\\\",
+ destination_service=~\\\"$service\\\", source_workload=~\\\"$srcwl\\\", source_workload_namespace=~\\\"$srcns\\\"}[5m]))
+ by (source_workload, source_workload_namespace)\",\n \"format\": \"time_series\",\n
+ \ \"hide\": false,\n \"intervalFactor\": 1,\n \"legendFormat\":
+ \"{{ source_workload }}.{{ source_workload_namespace }}\",\n \"refId\":
+ \"B\",\n \"step\": 2\n }\n ],\n \"thresholds\": [],\n
+ \ \"timeFrom\": null,\n \"timeShift\": null,\n \"title\": \"Incoming
+ Success Rate (non-5xx responses) By Source\",\n \"tooltip\": {\n \"shared\":
+ true,\n \"sort\": 0,\n \"value_type\": \"individual\"\n },\n
+ \ \"type\": \"graph\",\n \"xaxis\": {\n \"buckets\": null,\n \"mode\":
+ \"time\",\n \"name\": null,\n \"show\": true,\n \"values\":
+ []\n },\n \"yaxes\": [\n {\n \"format\": \"percentunit\",\n
+ \ \"label\": null,\n \"logBase\": 1,\n \"max\": \"1.01\",\n
+ \ \"min\": \"0\",\n \"show\": true\n },\n {\n \"format\":
+ \"short\",\n \"label\": null,\n \"logBase\": 1,\n \"max\":
+ null,\n \"min\": null,\n \"show\": false\n }\n ],\n
+ \ \"yaxis\": {\n \"align\": false,\n \"alignLevel\": null\n
+ \ }\n },\n {\n \"aliasColors\": {},\n \"bars\": false,\n \"dashLength\":
+ 10,\n \"dashes\": false,\n \"datasource\": \"Prometheus\",\n \"description\":
+ \"\",\n \"fill\": 1,\n \"gridPos\": {\n \"h\": 6,\n \"w\":
+ 8,\n \"x\": 0,\n \"y\": 20\n },\n \"id\": 27,\n \"legend\":
+ {\n \"alignAsTable\": false,\n \"avg\": false,\n \"current\":
+ false,\n \"hideEmpty\": true,\n \"hideZero\": false,\n \"max\":
+ false,\n \"min\": false,\n \"rightSide\": false,\n \"show\":
+ true,\n \"total\": false,\n \"values\": false\n },\n \"lines\":
+ true,\n \"linewidth\": 1,\n \"links\": [],\n \"nullPointMode\":
+ \"null\",\n \"percentage\": false,\n \"pointradius\": 5,\n \"points\":
+ false,\n \"renderer\": \"flot\",\n \"seriesOverrides\": [],\n \"spaceLength\":
+ 10,\n \"stack\": false,\n \"steppedLine\": false,\n \"targets\":
+ [\n {\n \"expr\": \"(histogram_quantile(0.50, sum(irate(istio_request_duration_milliseconds_bucket{reporter=\\\"source\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ source_workload=~\\\"$srcwl\\\", source_workload_namespace=~\\\"$srcns\\\"}[1m]))
+ by (source_workload, source_workload_namespace, le)) / 1000) or histogram_quantile(0.50,
+ sum(irate(istio_request_duration_seconds_bucket{reporter=\\\"source\\\", connection_security_policy=\\\"mutual_tls\\\",
+ destination_service=~\\\"$service\\\", source_workload=~\\\"$srcwl\\\", source_workload_namespace=~\\\"$srcns\\\"}[1m]))
+ by (source_workload, source_workload_namespace, le))\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{source_workload}}.{{source_workload_namespace}}
+ P50 (\U0001F510mTLS)\",\n \"refId\": \"D\",\n \"step\": 2\n
+ \ },\n {\n \"expr\": \"(histogram_quantile(0.90, sum(irate(istio_request_duration_milliseconds_bucket{reporter=\\\"source\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ source_workload=~\\\"$srcwl\\\", source_workload_namespace=~\\\"$srcns\\\"}[1m]))
+ by (source_workload, source_workload_namespace, le)) / 1000) or histogram_quantile(0.90,
+ sum(irate(istio_request_duration_seconds_bucket{reporter=\\\"source\\\", connection_security_policy=\\\"mutual_tls\\\",
+ destination_service=~\\\"$service\\\", source_workload=~\\\"$srcwl\\\", source_workload_namespace=~\\\"$srcns\\\"}[1m]))
+ by (source_workload, source_workload_namespace, le))\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{source_workload}}.{{source_workload_namespace}}
+ P90 (\U0001F510mTLS)\",\n \"refId\": \"A\",\n \"step\": 2\n
+ \ },\n {\n \"expr\": \"(histogram_quantile(0.95, sum(irate(istio_request_duration_milliseconds_bucket{reporter=\\\"source\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ source_workload=~\\\"$srcwl\\\", source_workload_namespace=~\\\"$srcns\\\"}[1m]))
+ by (source_workload, source_workload_namespace, le)) / 1000) or histogram_quantile(0.95,
+ sum(irate(istio_request_duration_seconds_bucket{reporter=\\\"source\\\", connection_security_policy=\\\"mutual_tls\\\",
+ destination_service=~\\\"$service\\\", source_workload=~\\\"$srcwl\\\", source_workload_namespace=~\\\"$srcns\\\"}[1m]))
+ by (source_workload, source_workload_namespace, le))\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{source_workload}}.{{source_workload_namespace}}
+ P95 (\U0001F510mTLS)\",\n \"refId\": \"B\",\n \"step\": 2\n
+ \ },\n {\n \"expr\": \"(histogram_quantile(0.99, sum(irate(istio_request_duration_milliseconds_bucket{reporter=\\\"source\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ source_workload=~\\\"$srcwl\\\", source_workload_namespace=~\\\"$srcns\\\"}[1m]))
+ by (source_workload, source_workload_namespace, le)) / 1000) or histogram_quantile(0.99,
+ sum(irate(istio_request_duration_seconds_bucket{reporter=\\\"source\\\", connection_security_policy=\\\"mutual_tls\\\",
+ destination_service=~\\\"$service\\\", source_workload=~\\\"$srcwl\\\", source_workload_namespace=~\\\"$srcns\\\"}[1m]))
+ by (source_workload, source_workload_namespace, le))\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{source_workload}}.{{source_workload_namespace}}
+ P99 (\U0001F510mTLS)\",\n \"refId\": \"C\",\n \"step\": 2\n
+ \ },\n {\n \"expr\": \"(histogram_quantile(0.50, sum(irate(istio_request_duration_milliseconds_bucket{reporter=\\\"source\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ source_workload=~\\\"$srcwl\\\", source_workload_namespace=~\\\"$srcns\\\"}[1m]))
+ by (source_workload, source_workload_namespace, le)) / 1000) or histogram_quantile(0.50,
+ sum(irate(istio_request_duration_seconds_bucket{reporter=\\\"source\\\", connection_security_policy!=\\\"mutual_tls\\\",
+ destination_service=~\\\"$service\\\", source_workload=~\\\"$srcwl\\\", source_workload_namespace=~\\\"$srcns\\\"}[1m]))
+ by (source_workload, source_workload_namespace, le))\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{source_workload}}.{{source_workload_namespace}}
+ P50\",\n \"refId\": \"E\",\n \"step\": 2\n },\n {\n
+ \ \"expr\": \"(histogram_quantile(0.90, sum(irate(istio_request_duration_milliseconds_bucket{reporter=\\\"source\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ source_workload=~\\\"$srcwl\\\", source_workload_namespace=~\\\"$srcns\\\"}[1m]))
+ by (source_workload, source_workload_namespace, le)) / 1000) or histogram_quantile(0.90,
+ sum(irate(istio_request_duration_seconds_bucket{reporter=\\\"source\\\", connection_security_policy!=\\\"mutual_tls\\\",
+ destination_service=~\\\"$service\\\", source_workload=~\\\"$srcwl\\\", source_workload_namespace=~\\\"$srcns\\\"}[1m]))
+ by (source_workload, source_workload_namespace, le))\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{source_workload}}.{{source_workload_namespace}}
+ P90\",\n \"refId\": \"F\",\n \"step\": 2\n },\n {\n
+ \ \"expr\": \"(histogram_quantile(0.95, sum(irate(istio_request_duration_milliseconds_bucket{reporter=\\\"source\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ source_workload=~\\\"$srcwl\\\", source_workload_namespace=~\\\"$srcns\\\"}[1m]))
+ by (source_workload, source_workload_namespace, le)) / 1000) or histogram_quantile(0.95,
+ sum(irate(istio_request_duration_seconds_bucket{reporter=\\\"source\\\", connection_security_policy!=\\\"mutual_tls\\\",
+ destination_service=~\\\"$service\\\", source_workload=~\\\"$srcwl\\\", source_workload_namespace=~\\\"$srcns\\\"}[1m]))
+ by (source_workload, source_workload_namespace, le))\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{source_workload}}.{{source_workload_namespace}}
+ P95\",\n \"refId\": \"G\",\n \"step\": 2\n },\n {\n
+ \ \"expr\": \"(histogram_quantile(0.99, sum(irate(istio_request_duration_milliseconds_bucket{reporter=\\\"source\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ source_workload=~\\\"$srcwl\\\", source_workload_namespace=~\\\"$srcns\\\"}[1m]))
+ by (source_workload, source_workload_namespace, le)) / 1000) or histogram_quantile(0.99,
+ sum(irate(istio_request_duration_seconds_bucket{reporter=\\\"source\\\", connection_security_policy!=\\\"mutual_tls\\\",
+ destination_service=~\\\"$service\\\", source_workload=~\\\"$srcwl\\\", source_workload_namespace=~\\\"$srcns\\\"}[1m]))
+ by (source_workload, source_workload_namespace, le))\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{source_workload}}.{{source_workload_namespace}}
+ P99\",\n \"refId\": \"H\",\n \"step\": 2\n }\n ],\n
+ \ \"thresholds\": [],\n \"timeFrom\": null,\n \"timeShift\": null,\n
+ \ \"title\": \"Incoming Request Duration by Source\",\n \"tooltip\":
+ {\n \"shared\": true,\n \"sort\": 0,\n \"value_type\": \"individual\"\n
+ \ },\n \"type\": \"graph\",\n \"xaxis\": {\n \"buckets\":
+ null,\n \"mode\": \"time\",\n \"name\": null,\n \"show\":
+ true,\n \"values\": []\n },\n \"yaxes\": [\n {\n \"format\":
+ \"s\",\n \"label\": null,\n \"logBase\": 1,\n \"max\":
+ null,\n \"min\": \"0\",\n \"show\": true\n },\n {\n
+ \ \"format\": \"short\",\n \"label\": null,\n \"logBase\":
+ 1,\n \"max\": null,\n \"min\": null,\n \"show\": false\n
+ \ }\n ],\n \"yaxis\": {\n \"align\": false,\n \"alignLevel\":
+ null\n }\n },\n {\n \"aliasColors\": {},\n \"bars\": false,\n
+ \ \"dashLength\": 10,\n \"dashes\": false,\n \"datasource\": \"Prometheus\",\n
+ \ \"fill\": 1,\n \"gridPos\": {\n \"h\": 6,\n \"w\": 8,\n
+ \ \"x\": 8,\n \"y\": 20\n },\n \"id\": 28,\n \"legend\":
+ {\n \"alignAsTable\": false,\n \"avg\": false,\n \"current\":
+ false,\n \"hideEmpty\": true,\n \"max\": false,\n \"min\":
+ false,\n \"rightSide\": false,\n \"show\": true,\n \"total\":
+ false,\n \"values\": false\n },\n \"lines\": true,\n \"linewidth\":
+ 1,\n \"links\": [],\n \"nullPointMode\": \"null\",\n \"percentage\":
+ false,\n \"pointradius\": 5,\n \"points\": false,\n \"renderer\":
+ \"flot\",\n \"seriesOverrides\": [],\n \"spaceLength\": 10,\n \"stack\":
+ false,\n \"steppedLine\": false,\n \"targets\": [\n {\n \"expr\":
+ \"histogram_quantile(0.50, sum(irate(istio_request_bytes_bucket{reporter=\\\"source\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ source_workload=~\\\"$srcwl\\\", source_workload_namespace=~\\\"$srcns\\\"}[1m]))
+ by (source_workload, source_workload_namespace, le))\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{source_workload}}.{{source_workload_namespace}}
+ P50 (\U0001F510mTLS)\",\n \"refId\": \"D\",\n \"step\": 2\n
+ \ },\n {\n \"expr\": \"histogram_quantile(0.90, sum(irate(istio_request_bytes_bucket{reporter=\\\"source\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ source_workload=~\\\"$srcwl\\\", source_workload_namespace=~\\\"$srcns\\\"}[1m]))
+ by (source_workload, source_workload_namespace, le))\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{source_workload}}.{{source_workload_namespace}}
+ \ P90 (\U0001F510mTLS)\",\n \"refId\": \"A\",\n \"step\": 2\n
+ \ },\n {\n \"expr\": \"histogram_quantile(0.95, sum(irate(istio_request_bytes_bucket{reporter=\\\"source\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ source_workload=~\\\"$srcwl\\\", source_workload_namespace=~\\\"$srcns\\\"}[1m]))
+ by (source_workload, source_workload_namespace, le))\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{source_workload}}.{{source_workload_namespace}}
+ P95 (\U0001F510mTLS)\",\n \"refId\": \"B\",\n \"step\": 2\n
+ \ },\n {\n \"expr\": \"histogram_quantile(0.99, sum(irate(istio_request_bytes_bucket{reporter=\\\"source\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ source_workload=~\\\"$srcwl\\\", source_workload_namespace=~\\\"$srcns\\\"}[1m]))
+ by (source_workload, source_workload_namespace, le))\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{source_workload}}.{{source_workload_namespace}}
+ \ P99 (\U0001F510mTLS)\",\n \"refId\": \"C\",\n \"step\": 2\n
+ \ },\n {\n \"expr\": \"histogram_quantile(0.50, sum(irate(istio_request_bytes_bucket{reporter=\\\"source\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ source_workload=~\\\"$srcwl\\\", source_workload_namespace=~\\\"$srcns\\\"}[1m]))
+ by (source_workload, source_workload_namespace, le))\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{source_workload}}.{{source_workload_namespace}}
+ P50\",\n \"refId\": \"E\",\n \"step\": 2\n },\n {\n
+ \ \"expr\": \"histogram_quantile(0.90, sum(irate(istio_request_bytes_bucket{reporter=\\\"source\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ source_workload=~\\\"$srcwl\\\", source_workload_namespace=~\\\"$srcns\\\"}[1m]))
+ by (source_workload, source_workload_namespace, le))\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{source_workload}}.{{source_workload_namespace}}
+ P90\",\n \"refId\": \"F\",\n \"step\": 2\n },\n {\n
+ \ \"expr\": \"histogram_quantile(0.95, sum(irate(istio_request_bytes_bucket{reporter=\\\"source\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ source_workload=~\\\"$srcwl\\\", source_workload_namespace=~\\\"$srcns\\\"}[1m]))
+ by (source_workload, source_workload_namespace, le))\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{source_workload}}.{{source_workload_namespace}}
+ P95\",\n \"refId\": \"G\",\n \"step\": 2\n },\n {\n
+ \ \"expr\": \"histogram_quantile(0.99, sum(irate(istio_request_bytes_bucket{reporter=\\\"source\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ source_workload=~\\\"$srcwl\\\", source_workload_namespace=~\\\"$srcns\\\"}[1m]))
+ by (source_workload, source_workload_namespace, le))\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{source_workload}}.{{source_workload_namespace}}
+ P99\",\n \"refId\": \"H\",\n \"step\": 2\n }\n ],\n
+ \ \"thresholds\": [],\n \"timeFrom\": null,\n \"timeShift\": null,\n
+ \ \"title\": \"Incoming Request Size By Source\",\n \"tooltip\": {\n
+ \ \"shared\": true,\n \"sort\": 0,\n \"value_type\": \"individual\"\n
+ \ },\n \"type\": \"graph\",\n \"xaxis\": {\n \"buckets\":
+ null,\n \"mode\": \"time\",\n \"name\": null,\n \"show\":
+ true,\n \"values\": []\n },\n \"yaxes\": [\n {\n \"format\":
+ \"decbytes\",\n \"label\": null,\n \"logBase\": 1,\n \"max\":
+ null,\n \"min\": \"0\",\n \"show\": true\n },\n {\n
+ \ \"format\": \"short\",\n \"label\": null,\n \"logBase\":
+ 1,\n \"max\": null,\n \"min\": null,\n \"show\": false\n
+ \ }\n ],\n \"yaxis\": {\n \"align\": false,\n \"alignLevel\":
+ null\n }\n },\n {\n \"aliasColors\": {},\n \"bars\": false,\n
+ \ \"dashLength\": 10,\n \"dashes\": false,\n \"datasource\": \"Prometheus\",\n
+ \ \"fill\": 1,\n \"gridPos\": {\n \"h\": 6,\n \"w\": 8,\n
+ \ \"x\": 16,\n \"y\": 20\n },\n \"id\": 68,\n \"legend\":
+ {\n \"alignAsTable\": false,\n \"avg\": false,\n \"current\":
+ false,\n \"hideEmpty\": true,\n \"max\": false,\n \"min\":
+ false,\n \"rightSide\": false,\n \"show\": true,\n \"total\":
+ false,\n \"values\": false\n },\n \"lines\": true,\n \"linewidth\":
+ 1,\n \"links\": [],\n \"nullPointMode\": \"null\",\n \"percentage\":
+ false,\n \"pointradius\": 5,\n \"points\": false,\n \"renderer\":
+ \"flot\",\n \"seriesOverrides\": [],\n \"spaceLength\": 10,\n \"stack\":
+ false,\n \"steppedLine\": false,\n \"targets\": [\n {\n \"expr\":
+ \"histogram_quantile(0.50, sum(irate(istio_response_bytes_bucket{reporter=\\\"source\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ source_workload=~\\\"$srcwl\\\", source_workload_namespace=~\\\"$srcns\\\"}[1m]))
+ by (source_workload, source_workload_namespace, le))\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{source_workload}}.{{source_workload_namespace}}
+ P50 (\U0001F510mTLS)\",\n \"refId\": \"D\",\n \"step\": 2\n
+ \ },\n {\n \"expr\": \"histogram_quantile(0.90, sum(irate(istio_response_bytes_bucket{reporter=\\\"source\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ source_workload=~\\\"$srcwl\\\", source_workload_namespace=~\\\"$srcns\\\"}[1m]))
+ by (source_workload, source_workload_namespace, le))\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{source_workload}}.{{source_workload_namespace}}
+ \ P90 (\U0001F510mTLS)\",\n \"refId\": \"A\",\n \"step\": 2\n
+ \ },\n {\n \"expr\": \"histogram_quantile(0.95, sum(irate(istio_response_bytes_bucket{reporter=\\\"source\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ source_workload=~\\\"$srcwl\\\", source_workload_namespace=~\\\"$srcns\\\"}[1m]))
+ by (source_workload, source_workload_namespace, le))\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{source_workload}}.{{source_workload_namespace}}
+ P95 (\U0001F510mTLS)\",\n \"refId\": \"B\",\n \"step\": 2\n
+ \ },\n {\n \"expr\": \"histogram_quantile(0.99, sum(irate(istio_response_bytes_bucket{reporter=\\\"source\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ source_workload=~\\\"$srcwl\\\", source_workload_namespace=~\\\"$srcns\\\"}[1m]))
+ by (source_workload, source_workload_namespace, le))\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{source_workload}}.{{source_workload_namespace}}
+ \ P99 (\U0001F510mTLS)\",\n \"refId\": \"C\",\n \"step\": 2\n
+ \ },\n {\n \"expr\": \"histogram_quantile(0.50, sum(irate(istio_response_bytes_bucket{reporter=\\\"source\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ source_workload=~\\\"$srcwl\\\", source_workload_namespace=~\\\"$srcns\\\"}[1m]))
+ by (source_workload, source_workload_namespace, le))\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{source_workload}}.{{source_workload_namespace}}
+ P50\",\n \"refId\": \"E\",\n \"step\": 2\n },\n {\n
+ \ \"expr\": \"histogram_quantile(0.90, sum(irate(istio_response_bytes_bucket{reporter=\\\"source\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ source_workload=~\\\"$srcwl\\\", source_workload_namespace=~\\\"$srcns\\\"}[1m]))
+ by (source_workload, source_workload_namespace, le))\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{source_workload}}.{{source_workload_namespace}}
+ P90\",\n \"refId\": \"F\",\n \"step\": 2\n },\n {\n
+ \ \"expr\": \"histogram_quantile(0.95, sum(irate(istio_response_bytes_bucket{reporter=\\\"source\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ source_workload=~\\\"$srcwl\\\", source_workload_namespace=~\\\"$srcns\\\"}[1m]))
+ by (source_workload, source_workload_namespace, le))\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{source_workload}}.{{source_workload_namespace}}
+ P95\",\n \"refId\": \"G\",\n \"step\": 2\n },\n {\n
+ \ \"expr\": \"histogram_quantile(0.99, sum(irate(istio_response_bytes_bucket{reporter=\\\"source\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ source_workload=~\\\"$srcwl\\\", source_workload_namespace=~\\\"$srcns\\\"}[1m]))
+ by (source_workload, source_workload_namespace, le))\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{source_workload}}.{{source_workload_namespace}}
+ P99\",\n \"refId\": \"H\",\n \"step\": 2\n }\n ],\n
+ \ \"thresholds\": [],\n \"timeFrom\": null,\n \"timeShift\": null,\n
+ \ \"title\": \"Response Size By Source\",\n \"tooltip\": {\n \"shared\":
+ true,\n \"sort\": 0,\n \"value_type\": \"individual\"\n },\n
+ \ \"type\": \"graph\",\n \"xaxis\": {\n \"buckets\": null,\n \"mode\":
+ \"time\",\n \"name\": null,\n \"show\": true,\n \"values\":
+ []\n },\n \"yaxes\": [\n {\n \"format\": \"decbytes\",\n
+ \ \"label\": null,\n \"logBase\": 1,\n \"max\": null,\n
+ \ \"min\": \"0\",\n \"show\": true\n },\n {\n \"format\":
+ \"short\",\n \"label\": null,\n \"logBase\": 1,\n \"max\":
+ null,\n \"min\": null,\n \"show\": false\n }\n ],\n
+ \ \"yaxis\": {\n \"align\": false,\n \"alignLevel\": null\n
+ \ }\n },\n {\n \"aliasColors\": {},\n \"bars\": false,\n \"dashLength\":
+ 10,\n \"dashes\": false,\n \"datasource\": \"Prometheus\",\n \"fill\":
+ 1,\n \"gridPos\": {\n \"h\": 6,\n \"w\": 12,\n \"x\":
+ 0,\n \"y\": 26\n },\n \"id\": 80,\n \"legend\": {\n \"avg\":
+ false,\n \"current\": false,\n \"max\": false,\n \"min\":
+ false,\n \"show\": true,\n \"total\": false,\n \"values\":
+ false\n },\n \"lines\": true,\n \"linewidth\": 1,\n \"links\":
+ [],\n \"nullPointMode\": \"null\",\n \"percentage\": false,\n \"pointradius\":
+ 5,\n \"points\": false,\n \"renderer\": \"flot\",\n \"seriesOverrides\":
+ [],\n \"spaceLength\": 10,\n \"stack\": false,\n \"steppedLine\":
+ false,\n \"targets\": [\n {\n \"expr\": \"round(sum(irate(istio_tcp_received_bytes_total{reporter=\\\"source\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ source_workload=~\\\"$srcwl\\\", source_workload_namespace=~\\\"$srcns\\\"}[1m]))
+ by (source_workload, source_workload_namespace), 0.001)\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{ source_workload }}.{{ source_workload_namespace}}
+ (\U0001F510mTLS)\",\n \"refId\": \"A\",\n \"step\": 2\n },\n
+ \ {\n \"expr\": \"round(sum(irate(istio_tcp_received_bytes_total{reporter=\\\"source\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ source_workload=~\\\"$srcwl\\\", source_workload_namespace=~\\\"$srcns\\\"}[1m]))
+ by (source_workload, source_workload_namespace), 0.001)\",\n \"format\":
+ \"time_series\",\n \"intervalFactor\": 1,\n \"legendFormat\":
+ \"{{ source_workload }}.{{ source_workload_namespace}}\",\n \"refId\":
+ \"B\",\n \"step\": 2\n }\n ],\n \"thresholds\": [],\n
+ \ \"timeFrom\": null,\n \"timeShift\": null,\n \"title\": \"Bytes
+ Received from Incoming TCP Connection\",\n \"tooltip\": {\n \"shared\":
+ true,\n \"sort\": 0,\n \"value_type\": \"individual\"\n },\n
+ \ \"type\": \"graph\",\n \"xaxis\": {\n \"buckets\": null,\n \"mode\":
+ \"time\",\n \"name\": null,\n \"show\": true,\n \"values\":
+ []\n },\n \"yaxes\": [\n {\n \"format\": \"Bps\",\n
+ \ \"label\": null,\n \"logBase\": 1,\n \"max\": null,\n
+ \ \"min\": \"0\",\n \"show\": true\n },\n {\n \"format\":
+ \"short\",\n \"label\": null,\n \"logBase\": 1,\n \"max\":
+ null,\n \"min\": null,\n \"show\": true\n }\n ],\n
+ \ \"yaxis\": {\n \"align\": false,\n \"alignLevel\": null\n
+ \ }\n },\n {\n \"aliasColors\": {},\n \"bars\": false,\n \"dashLength\":
+ 10,\n \"dashes\": false,\n \"datasource\": \"Prometheus\",\n \"fill\":
+ 1,\n \"gridPos\": {\n \"h\": 6,\n \"w\": 12,\n \"x\":
+ 12,\n \"y\": 26\n },\n \"id\": 82,\n \"legend\": {\n \"avg\":
+ false,\n \"current\": false,\n \"max\": false,\n \"min\":
+ false,\n \"show\": true,\n \"total\": false,\n \"values\":
+ false\n },\n \"lines\": true,\n \"linewidth\": 1,\n \"links\":
+ [],\n \"nullPointMode\": \"null\",\n \"percentage\": false,\n \"pointradius\":
+ 5,\n \"points\": false,\n \"renderer\": \"flot\",\n \"seriesOverrides\":
+ [],\n \"spaceLength\": 10,\n \"stack\": false,\n \"steppedLine\":
+ false,\n \"targets\": [\n {\n \"expr\": \"round(sum(irate(istio_tcp_sent_bytes_total{connection_security_policy=\\\"mutual_tls\\\",
+ reporter=\\\"source\\\", destination_service=~\\\"$service\\\", source_workload=~\\\"$srcwl\\\",
+ source_workload_namespace=~\\\"$srcns\\\"}[1m])) by (source_workload, source_workload_namespace),
+ 0.001)\",\n \"format\": \"time_series\",\n \"intervalFactor\":
+ 1,\n \"legendFormat\": \"{{ source_workload }}.{{ source_workload_namespace}}
+ (\U0001F510mTLS)\",\n \"refId\": \"A\",\n \"step\": 2\n },\n
+ \ {\n \"expr\": \"round(sum(irate(istio_tcp_sent_bytes_total{connection_security_policy!=\\\"mutual_tls\\\",
+ reporter=\\\"source\\\", destination_service=~\\\"$service\\\", source_workload=~\\\"$srcwl\\\",
+ source_workload_namespace=~\\\"$srcns\\\"}[1m])) by (source_workload, source_workload_namespace),
+ 0.001)\",\n \"format\": \"time_series\",\n \"intervalFactor\":
+ 1,\n \"legendFormat\": \"{{ source_workload }}.{{ source_workload_namespace}}\",\n
+ \ \"refId\": \"B\",\n \"step\": 2\n }\n ],\n \"thresholds\":
+ [],\n \"timeFrom\": null,\n \"timeShift\": null,\n \"title\": \"Bytes
+ Sent to Incoming TCP Connection\",\n \"tooltip\": {\n \"shared\":
+ true,\n \"sort\": 0,\n \"value_type\": \"individual\"\n },\n
+ \ \"type\": \"graph\",\n \"xaxis\": {\n \"buckets\": null,\n \"mode\":
+ \"time\",\n \"name\": null,\n \"show\": true,\n \"values\":
+ []\n },\n \"yaxes\": [\n {\n \"format\": \"Bps\",\n
+ \ \"label\": null,\n \"logBase\": 1,\n \"max\": null,\n
+ \ \"min\": \"0\",\n \"show\": true\n },\n {\n \"format\":
+ \"short\",\n \"label\": null,\n \"logBase\": 1,\n \"max\":
+ null,\n \"min\": null,\n \"show\": true\n }\n ],\n
+ \ \"yaxis\": {\n \"align\": false,\n \"alignLevel\": null\n
+ \ }\n },\n {\n \"content\": \"\",\n \"gridPos\": {\n \"h\": 3,\n \"w\":
+ 24,\n \"x\": 0,\n \"y\": 32\n },\n \"id\": 69,\n \"links\":
+ [],\n \"mode\": \"html\",\n \"title\": \"\",\n \"transparent\":
+ true,\n \"type\": \"text\"\n },\n {\n \"aliasColors\": {},\n \"bars\":
+ false,\n \"dashLength\": 10,\n \"dashes\": false,\n \"datasource\":
+ \"Prometheus\",\n \"fill\": 0,\n \"gridPos\": {\n \"h\": 6,\n
+ \ \"w\": 12,\n \"x\": 0,\n \"y\": 35\n },\n \"id\":
+ 90,\n \"legend\": {\n \"avg\": false,\n \"current\": false,\n
+ \ \"hideEmpty\": true,\n \"max\": false,\n \"min\": false,\n
+ \ \"show\": true,\n \"total\": false,\n \"values\": false\n
+ \ },\n \"lines\": true,\n \"linewidth\": 1,\n \"links\": [],\n
+ \ \"nullPointMode\": \"null as zero\",\n \"percentage\": false,\n \"pointradius\":
+ 5,\n \"points\": false,\n \"renderer\": \"flot\",\n \"seriesOverrides\":
+ [],\n \"spaceLength\": 10,\n \"stack\": false,\n \"steppedLine\":
+ false,\n \"targets\": [\n {\n \"expr\": \"round(sum(irate(istio_requests_total{connection_security_policy=\\\"mutual_tls\\\",destination_service=~\\\"$service\\\",reporter=\\\"destination\\\",destination_workload=~\\\"$dstwl\\\",destination_workload_namespace=~\\\"$dstns\\\"}[5m]))
+ by (destination_workload, destination_workload_namespace, response_code), 0.001)\",\n
+ \ \"format\": \"time_series\",\n \"intervalFactor\": 1,\n \"legendFormat\":
+ \"{{ destination_workload }}.{{ destination_workload_namespace }} : {{ response_code
+ }} (\U0001F510mTLS)\",\n \"refId\": \"B\",\n \"step\": 2\n },\n
+ \ {\n \"expr\": \"round(sum(irate(istio_requests_total{connection_security_policy!=\\\"mutual_tls\\\",
+ destination_service=~\\\"$service\\\", reporter=\\\"destination\\\", destination_workload=~\\\"$dstwl\\\",
+ destination_workload_namespace=~\\\"$dstns\\\"}[5m])) by (destination_workload,
+ destination_workload_namespace, response_code), 0.001)\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{ destination_workload }}.{{ destination_workload_namespace
+ }} : {{ response_code }}\",\n \"refId\": \"A\",\n \"step\":
+ 2\n }\n ],\n \"thresholds\": [],\n \"timeFrom\": null,\n
+ \ \"timeShift\": null,\n \"title\": \"Incoming Requests by Destination
+ And Response Code\",\n \"tooltip\": {\n \"shared\": false,\n \"sort\":
+ 0,\n \"value_type\": \"individual\"\n },\n \"type\": \"graph\",\n
+ \ \"xaxis\": {\n \"buckets\": null,\n \"mode\": \"time\",\n
+ \ \"name\": null,\n \"show\": true,\n \"values\": [\n \"total\"\n
+ \ ]\n },\n \"yaxes\": [\n {\n \"format\": \"ops\",\n
+ \ \"label\": null,\n \"logBase\": 1,\n \"max\": null,\n
+ \ \"min\": \"0\",\n \"show\": true\n },\n {\n \"format\":
+ \"short\",\n \"label\": null,\n \"logBase\": 1,\n \"max\":
+ null,\n \"min\": null,\n \"show\": false\n }\n ],\n
+ \ \"yaxis\": {\n \"align\": false,\n \"alignLevel\": null\n
+ \ }\n },\n {\n \"aliasColors\": {},\n \"bars\": false,\n \"dashLength\":
+ 10,\n \"dashes\": false,\n \"datasource\": \"Prometheus\",\n \"fill\":
+ 1,\n \"gridPos\": {\n \"h\": 6,\n \"w\": 12,\n \"x\":
+ 12,\n \"y\": 35\n },\n \"id\": 91,\n \"legend\": {\n \"avg\":
+ false,\n \"current\": false,\n \"hideEmpty\": true,\n \"hideZero\":
+ false,\n \"max\": false,\n \"min\": false,\n \"show\": true,\n
+ \ \"total\": false,\n \"values\": false\n },\n \"lines\":
+ true,\n \"linewidth\": 1,\n \"links\": [],\n \"nullPointMode\":
+ \"null\",\n \"percentage\": false,\n \"pointradius\": 5,\n \"points\":
+ false,\n \"renderer\": \"flot\",\n \"seriesOverrides\": [],\n \"spaceLength\":
+ 10,\n \"stack\": false,\n \"steppedLine\": false,\n \"targets\":
+ [\n {\n \"expr\": \"sum(irate(istio_requests_total{reporter=\\\"destination\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",response_code!~\\\"5.*\\\",
+ destination_workload=~\\\"$dstwl\\\", destination_workload_namespace=~\\\"$dstns\\\"}[5m]))
+ by (destination_workload, destination_workload_namespace) / sum(irate(istio_requests_total{reporter=\\\"destination\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ destination_workload=~\\\"$dstwl\\\", destination_workload_namespace=~\\\"$dstns\\\"}[5m]))
+ by (destination_workload, destination_workload_namespace)\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{ destination_workload }}.{{ destination_workload_namespace
+ }} (\U0001F510mTLS)\",\n \"refId\": \"A\",\n \"step\": 2\n },\n
+ \ {\n \"expr\": \"sum(irate(istio_requests_total{reporter=\\\"destination\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",response_code!~\\\"5.*\\\",
+ destination_workload=~\\\"$dstwl\\\", destination_workload_namespace=~\\\"$dstns\\\"}[5m]))
+ by (destination_workload, destination_workload_namespace) / sum(irate(istio_requests_total{reporter=\\\"destination\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ destination_workload=~\\\"$dstwl\\\", destination_workload_namespace=~\\\"$dstns\\\"}[5m]))
+ by (destination_workload, destination_workload_namespace)\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{ destination_workload }}.{{ destination_workload_namespace
+ }}\",\n \"refId\": \"B\",\n \"step\": 2\n }\n ],\n
+ \ \"thresholds\": [],\n \"timeFrom\": null,\n \"timeShift\": null,\n
+ \ \"title\": \"Incoming Success Rate (non-5xx responses) By Source\",\n \"tooltip\":
+ {\n \"shared\": true,\n \"sort\": 0,\n \"value_type\": \"individual\"\n
+ \ },\n \"type\": \"graph\",\n \"xaxis\": {\n \"buckets\":
+ null,\n \"mode\": \"time\",\n \"name\": null,\n \"show\":
+ true,\n \"values\": []\n },\n \"yaxes\": [\n {\n \"format\":
+ \"percentunit\",\n \"label\": null,\n \"logBase\": 1,\n \"max\":
+ \"1.01\",\n \"min\": \"0\",\n \"show\": true\n },\n {\n
+ \ \"format\": \"short\",\n \"label\": null,\n \"logBase\":
+ 1,\n \"max\": null,\n \"min\": null,\n \"show\": false\n
+ \ }\n ],\n \"yaxis\": {\n \"align\": false,\n \"alignLevel\":
+ null\n }\n },\n {\n \"aliasColors\": {},\n \"bars\": false,\n
+ \ \"dashLength\": 10,\n \"dashes\": false,\n \"datasource\": \"Prometheus\",\n
+ \ \"description\": \"\",\n \"fill\": 1,\n \"gridPos\": {\n \"h\":
+ 6,\n \"w\": 8,\n \"x\": 0,\n \"y\": 41\n },\n \"id\":
+ 94,\n \"legend\": {\n \"alignAsTable\": false,\n \"avg\": false,\n
+ \ \"current\": false,\n \"hideEmpty\": true,\n \"hideZero\":
+ false,\n \"max\": false,\n \"min\": false,\n \"rightSide\":
+ false,\n \"show\": true,\n \"total\": false,\n \"values\":
+ false\n },\n \"lines\": true,\n \"linewidth\": 1,\n \"links\":
+ [],\n \"nullPointMode\": \"null\",\n \"percentage\": false,\n \"pointradius\":
+ 5,\n \"points\": false,\n \"renderer\": \"flot\",\n \"seriesOverrides\":
+ [],\n \"spaceLength\": 10,\n \"stack\": false,\n \"steppedLine\":
+ false,\n \"targets\": [\n {\n \"expr\": \"(histogram_quantile(0.50,
+ sum(irate(istio_request_duration_milliseconds_bucket{reporter=\\\"destination\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ destination_workload=~\\\"$dstwl\\\", destination_workload_namespace=~\\\"$dstns\\\"}[1m]))
+ by (destination_workload, destination_workload_namespace, le)) / 1000) or histogram_quantile(0.50,
+ sum(irate(istio_request_duration_seconds_bucket{reporter=\\\"destination\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ destination_workload=~\\\"$dstwl\\\", destination_workload_namespace=~\\\"$dstns\\\"}[1m]))
+ by (destination_workload, destination_workload_namespace, le))\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{ destination_workload }}.{{ destination_workload_namespace
+ }} P50 (\U0001F510mTLS)\",\n \"refId\": \"D\",\n \"step\": 2\n
+ \ },\n {\n \"expr\": \"(histogram_quantile(0.90, sum(irate(istio_request_duration_milliseconds_bucket{reporter=\\\"destination\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ destination_workload=~\\\"$dstwl\\\", destination_workload_namespace=~\\\"$dstns\\\"}[1m]))
+ by (destination_workload, destination_workload_namespace, le)) / 1000) or histogram_quantile(0.90,
+ sum(irate(istio_request_duration_seconds_bucket{reporter=\\\"destination\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ destination_workload=~\\\"$dstwl\\\", destination_workload_namespace=~\\\"$dstns\\\"}[1m]))
+ by (destination_workload, destination_workload_namespace, le))\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{ destination_workload }}.{{ destination_workload_namespace
+ }} P90 (\U0001F510mTLS)\",\n \"refId\": \"A\",\n \"step\": 2\n
+ \ },\n {\n \"expr\": \"(histogram_quantile(0.95, sum(irate(istio_request_duration_milliseconds_bucket{reporter=\\\"destination\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ destination_workload=~\\\"$dstwl\\\", destination_workload_namespace=~\\\"$dstns\\\"}[1m]))
+ by (destination_workload, destination_workload_namespace, le)) / 1000) or histogram_quantile(0.95,
+ sum(irate(istio_request_duration_seconds_bucket{reporter=\\\"destination\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ destination_workload=~\\\"$dstwl\\\", destination_workload_namespace=~\\\"$dstns\\\"}[1m]))
+ by (destination_workload, destination_workload_namespace, le))\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{ destination_workload }}.{{ destination_workload_namespace
+ }} P95 (\U0001F510mTLS)\",\n \"refId\": \"B\",\n \"step\": 2\n
+ \ },\n {\n \"expr\": \"(histogram_quantile(0.99, sum(irate(istio_request_duration_milliseconds_bucket{reporter=\\\"destination\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ destination_workload=~\\\"$dstwl\\\", destination_workload_namespace=~\\\"$dstns\\\"}[1m]))
+ by (destination_workload, destination_workload_namespace, le)) / 1000) or histogram_quantile(0.99,
+ sum(irate(istio_request_duration_seconds_bucket{reporter=\\\"destination\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ destination_workload=~\\\"$dstwl\\\", destination_workload_namespace=~\\\"$dstns\\\"}[1m]))
+ by (destination_workload, destination_workload_namespace, le))\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{ destination_workload }}.{{ destination_workload_namespace
+ }} P99 (\U0001F510mTLS)\",\n \"refId\": \"C\",\n \"step\": 2\n
+ \ },\n {\n \"expr\": \"(histogram_quantile(0.50, sum(irate(istio_request_duration_milliseconds_bucket{reporter=\\\"destination\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ destination_workload=~\\\"$dstwl\\\", destination_workload_namespace=~\\\"$dstns\\\"}[1m]))
+ by (destination_workload, destination_workload_namespace, le)) / 1000) or histogram_quantile(0.50,
+ sum(irate(istio_request_duration_seconds_bucket{reporter=\\\"destination\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ destination_workload=~\\\"$dstwl\\\", destination_workload_namespace=~\\\"$dstns\\\"}[1m]))
+ by (destination_workload, destination_workload_namespace, le))\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{ destination_workload }}.{{ destination_workload_namespace
+ }} P50\",\n \"refId\": \"E\",\n \"step\": 2\n },\n {\n
+ \ \"expr\": \"(histogram_quantile(0.90, sum(irate(istio_request_duration_milliseconds_bucket{reporter=\\\"destination\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ destination_workload=~\\\"$dstwl\\\", destination_workload_namespace=~\\\"$dstns\\\"}[1m]))
+ by (destination_workload, destination_workload_namespace, le)) / 1000) or histogram_quantile(0.90,
+ sum(irate(istio_request_duration_seconds_bucket{reporter=\\\"destination\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ destination_workload=~\\\"$dstwl\\\", destination_workload_namespace=~\\\"$dstns\\\"}[1m]))
+ by (destination_workload, destination_workload_namespace, le))\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{ destination_workload }}.{{ destination_workload_namespace
+ }} P90\",\n \"refId\": \"F\",\n \"step\": 2\n },\n {\n
+ \ \"expr\": \"(histogram_quantile(0.95, sum(irate(istio_request_duration_milliseconds_bucket{reporter=\\\"destination\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ destination_workload=~\\\"$dstwl\\\", destination_workload_namespace=~\\\"$dstns\\\"}[1m]))
+ by (destination_workload, destination_workload_namespace, le)) / 1000) or histogram_quantile(0.95,
+ sum(irate(istio_request_duration_seconds_bucket{reporter=\\\"destination\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ destination_workload=~\\\"$dstwl\\\", destination_workload_namespace=~\\\"$dstns\\\"}[1m]))
+ by (destination_workload, destination_workload_namespace, le))\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{ destination_workload }}.{{ destination_workload_namespace
+ }} P95\",\n \"refId\": \"G\",\n \"step\": 2\n },\n {\n
+ \ \"expr\": \"(histogram_quantile(0.99, sum(irate(istio_request_duration_milliseconds_bucket{reporter=\\\"destination\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ destination_workload=~\\\"$dstwl\\\", destination_workload_namespace=~\\\"$dstns\\\"}[1m]))
+ by (destination_workload, destination_workload_namespace, le)) / 1000) or histogram_quantile(0.99,
+ sum(irate(istio_request_duration_seconds_bucket{reporter=\\\"destination\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ destination_workload=~\\\"$dstwl\\\", destination_workload_namespace=~\\\"$dstns\\\"}[1m]))
+ by (destination_workload, destination_workload_namespace, le))\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{ destination_workload }}.{{ destination_workload_namespace
+ }} P99\",\n \"refId\": \"H\",\n \"step\": 2\n }\n ],\n
+ \ \"thresholds\": [],\n \"timeFrom\": null,\n \"timeShift\": null,\n
+ \ \"title\": \"Incoming Request Duration by Source\",\n \"tooltip\":
+ {\n \"shared\": true,\n \"sort\": 0,\n \"value_type\": \"individual\"\n
+ \ },\n \"type\": \"graph\",\n \"xaxis\": {\n \"buckets\":
+ null,\n \"mode\": \"time\",\n \"name\": null,\n \"show\":
+ true,\n \"values\": []\n },\n \"yaxes\": [\n {\n \"format\":
+ \"s\",\n \"label\": null,\n \"logBase\": 1,\n \"max\":
+ null,\n \"min\": \"0\",\n \"show\": true\n },\n {\n
+ \ \"format\": \"short\",\n \"label\": null,\n \"logBase\":
+ 1,\n \"max\": null,\n \"min\": null,\n \"show\": false\n
+ \ }\n ],\n \"yaxis\": {\n \"align\": false,\n \"alignLevel\":
+ null\n }\n },\n {\n \"aliasColors\": {},\n \"bars\": false,\n
+ \ \"dashLength\": 10,\n \"dashes\": false,\n \"datasource\": \"Prometheus\",\n
+ \ \"fill\": 1,\n \"gridPos\": {\n \"h\": 6,\n \"w\": 8,\n
+ \ \"x\": 8,\n \"y\": 41\n },\n \"id\": 95,\n \"legend\":
+ {\n \"alignAsTable\": false,\n \"avg\": false,\n \"current\":
+ false,\n \"hideEmpty\": true,\n \"max\": false,\n \"min\":
+ false,\n \"rightSide\": false,\n \"show\": true,\n \"total\":
+ false,\n \"values\": false\n },\n \"lines\": true,\n \"linewidth\":
+ 1,\n \"links\": [],\n \"nullPointMode\": \"null\",\n \"percentage\":
+ false,\n \"pointradius\": 5,\n \"points\": false,\n \"renderer\":
+ \"flot\",\n \"seriesOverrides\": [],\n \"spaceLength\": 10,\n \"stack\":
+ false,\n \"steppedLine\": false,\n \"targets\": [\n {\n \"expr\":
+ \"histogram_quantile(0.50, sum(irate(istio_request_bytes_bucket{reporter=\\\"destination\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ destination_workload=~\\\"$dstwl\\\", destination_workload_namespace=~\\\"$dstns\\\"}[1m]))
+ by (destination_workload, destination_workload_namespace, le))\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{ destination_workload }}.{{ destination_workload_namespace
+ }} P50 (\U0001F510mTLS)\",\n \"refId\": \"D\",\n \"step\": 2\n
+ \ },\n {\n \"expr\": \"histogram_quantile(0.90, sum(irate(istio_request_bytes_bucket{reporter=\\\"destination\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ destination_workload=~\\\"$dstwl\\\", destination_workload_namespace=~\\\"$dstns\\\"}[1m]))
+ by (destination_workload, destination_workload_namespace, le))\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{ destination_workload }}.{{ destination_workload_namespace
+ }} P90 (\U0001F510mTLS)\",\n \"refId\": \"A\",\n \"step\":
+ 2\n },\n {\n \"expr\": \"histogram_quantile(0.95, sum(irate(istio_request_bytes_bucket{reporter=\\\"destination\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ destination_workload=~\\\"$dstwl\\\", destination_workload_namespace=~\\\"$dstns\\\"}[1m]))
+ by (destination_workload, destination_workload_namespace, le))\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{ destination_workload }}.{{ destination_workload_namespace
+ }} P95 (\U0001F510mTLS)\",\n \"refId\": \"B\",\n \"step\": 2\n
+ \ },\n {\n \"expr\": \"histogram_quantile(0.99, sum(irate(istio_request_bytes_bucket{reporter=\\\"destination\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ destination_workload=~\\\"$dstwl\\\", destination_workload_namespace=~\\\"$dstns\\\"}[1m]))
+ by (destination_workload, destination_workload_namespace, le))\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{ destination_workload }}.{{ destination_workload_namespace
+ }} P99 (\U0001F510mTLS)\",\n \"refId\": \"C\",\n \"step\":
+ 2\n },\n {\n \"expr\": \"histogram_quantile(0.50, sum(irate(istio_request_bytes_bucket{reporter=\\\"destination\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ destination_workload=~\\\"$dstwl\\\", destination_workload_namespace=~\\\"$dstns\\\"}[1m]))
+ by (destination_workload, destination_workload_namespace, le))\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{ destination_workload }}.{{ destination_workload_namespace
+ }} P50\",\n \"refId\": \"E\",\n \"step\": 2\n },\n {\n
+ \ \"expr\": \"histogram_quantile(0.90, sum(irate(istio_request_bytes_bucket{reporter=\\\"destination\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ destination_workload=~\\\"$dstwl\\\", destination_workload_namespace=~\\\"$dstns\\\"}[1m]))
+ by (destination_workload, destination_workload_namespace, le))\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{ destination_workload }}.{{ destination_workload_namespace
+ }} P90\",\n \"refId\": \"F\",\n \"step\": 2\n },\n {\n
+ \ \"expr\": \"histogram_quantile(0.95, sum(irate(istio_request_bytes_bucket{reporter=\\\"destination\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ destination_workload=~\\\"$dstwl\\\", destination_workload_namespace=~\\\"$dstns\\\"}[1m]))
+ by (destination_workload, destination_workload_namespace, le))\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{ destination_workload }}.{{ destination_workload_namespace
+ }} P95\",\n \"refId\": \"G\",\n \"step\": 2\n },\n {\n
+ \ \"expr\": \"histogram_quantile(0.99, sum(irate(istio_request_bytes_bucket{reporter=\\\"destination\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ destination_workload=~\\\"$dstwl\\\", destination_workload_namespace=~\\\"$dstns\\\"}[1m]))
+ by (destination_workload, destination_workload_namespace, le))\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{ destination_workload }}.{{ destination_workload_namespace
+ }} P99\",\n \"refId\": \"H\",\n \"step\": 2\n }\n ],\n
+ \ \"thresholds\": [],\n \"timeFrom\": null,\n \"timeShift\": null,\n
+ \ \"title\": \"Incoming Request Size By Source\",\n \"tooltip\": {\n
+ \ \"shared\": true,\n \"sort\": 0,\n \"value_type\": \"individual\"\n
+ \ },\n \"type\": \"graph\",\n \"xaxis\": {\n \"buckets\":
+ null,\n \"mode\": \"time\",\n \"name\": null,\n \"show\":
+ true,\n \"values\": []\n },\n \"yaxes\": [\n {\n \"format\":
+ \"decbytes\",\n \"label\": null,\n \"logBase\": 1,\n \"max\":
+ null,\n \"min\": \"0\",\n \"show\": true\n },\n {\n
+ \ \"format\": \"short\",\n \"label\": null,\n \"logBase\":
+ 1,\n \"max\": null,\n \"min\": null,\n \"show\": false\n
+ \ }\n ],\n \"yaxis\": {\n \"align\": false,\n \"alignLevel\":
+ null\n }\n },\n {\n \"aliasColors\": {},\n \"bars\": false,\n
+ \ \"dashLength\": 10,\n \"dashes\": false,\n \"datasource\": \"Prometheus\",\n
+ \ \"fill\": 1,\n \"gridPos\": {\n \"h\": 6,\n \"w\": 8,\n
+ \ \"x\": 16,\n \"y\": 41\n },\n \"id\": 96,\n \"legend\":
+ {\n \"alignAsTable\": false,\n \"avg\": false,\n \"current\":
+ false,\n \"hideEmpty\": true,\n \"max\": false,\n \"min\":
+ false,\n \"rightSide\": false,\n \"show\": true,\n \"total\":
+ false,\n \"values\": false\n },\n \"lines\": true,\n \"linewidth\":
+ 1,\n \"links\": [],\n \"nullPointMode\": \"null\",\n \"percentage\":
+ false,\n \"pointradius\": 5,\n \"points\": false,\n \"renderer\":
+ \"flot\",\n \"seriesOverrides\": [],\n \"spaceLength\": 10,\n \"stack\":
+ false,\n \"steppedLine\": false,\n \"targets\": [\n {\n \"expr\":
+ \"histogram_quantile(0.50, sum(irate(istio_response_bytes_bucket{reporter=\\\"destination\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ destination_workload=~\\\"$dstwl\\\", destination_workload_namespace=~\\\"$dstns\\\"}[1m]))
+ by (destination_workload, destination_workload_namespace, le))\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{ destination_workload }}.{{ destination_workload_namespace
+ }} P50 (\U0001F510mTLS)\",\n \"refId\": \"D\",\n \"step\": 2\n
+ \ },\n {\n \"expr\": \"histogram_quantile(0.90, sum(irate(istio_response_bytes_bucket{reporter=\\\"destination\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ destination_workload=~\\\"$dstwl\\\", destination_workload_namespace=~\\\"$dstns\\\"}[1m]))
+ by (destination_workload, destination_workload_namespace, le))\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{ destination_workload }}.{{ destination_workload_namespace
+ }} P90 (\U0001F510mTLS)\",\n \"refId\": \"A\",\n \"step\":
+ 2\n },\n {\n \"expr\": \"histogram_quantile(0.95, sum(irate(istio_response_bytes_bucket{reporter=\\\"destination\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ destination_workload=~\\\"$dstwl\\\", destination_workload_namespace=~\\\"$dstns\\\"}[1m]))
+ by (destination_workload, destination_workload_namespace, le))\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{ destination_workload }}.{{ destination_workload_namespace
+ }} P95 (\U0001F510mTLS)\",\n \"refId\": \"B\",\n \"step\": 2\n
+ \ },\n {\n \"expr\": \"histogram_quantile(0.99, sum(irate(istio_response_bytes_bucket{reporter=\\\"destination\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ destination_workload=~\\\"$dstwl\\\", destination_workload_namespace=~\\\"$dstns\\\"}[1m]))
+ by (destination_workload, destination_workload_namespace, le))\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{ destination_workload }}.{{ destination_workload_namespace
+ }} P99 (\U0001F510mTLS)\",\n \"refId\": \"C\",\n \"step\":
+ 2\n },\n {\n \"expr\": \"histogram_quantile(0.50, sum(irate(istio_response_bytes_bucket{reporter=\\\"destination\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ destination_workload=~\\\"$dstwl\\\", destination_workload_namespace=~\\\"$dstns\\\"}[1m]))
+ by (destination_workload, destination_workload_namespace, le))\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{ destination_workload }}.{{ destination_workload_namespace
+ }} P50\",\n \"refId\": \"E\",\n \"step\": 2\n },\n {\n
+ \ \"expr\": \"histogram_quantile(0.90, sum(irate(istio_response_bytes_bucket{reporter=\\\"destination\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ destination_workload=~\\\"$dstwl\\\", destination_workload_namespace=~\\\"$dstns\\\"}[1m]))
+ by (destination_workload, destination_workload_namespace, le))\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{ destination_workload }}.{{ destination_workload_namespace
+ }} P90\",\n \"refId\": \"F\",\n \"step\": 2\n },\n {\n
+ \ \"expr\": \"histogram_quantile(0.95, sum(irate(istio_response_bytes_bucket{reporter=\\\"destination\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ destination_workload=~\\\"$dstwl\\\", destination_workload_namespace=~\\\"$dstns\\\"}[1m]))
+ by (destination_workload, destination_workload_namespace, le))\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{ destination_workload }}.{{ destination_workload_namespace
+ }} P95\",\n \"refId\": \"G\",\n \"step\": 2\n },\n {\n
+ \ \"expr\": \"histogram_quantile(0.99, sum(irate(istio_response_bytes_bucket{reporter=\\\"destination\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ destination_workload=~\\\"$dstwl\\\", destination_workload_namespace=~\\\"$dstns\\\"}[1m]))
+ by (destination_workload, destination_workload_namespace, le))\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{ destination_workload }}.{{ destination_workload_namespace
+ }} P99\",\n \"refId\": \"H\",\n \"step\": 2\n }\n ],\n
+ \ \"thresholds\": [],\n \"timeFrom\": null,\n \"timeShift\": null,\n
+ \ \"title\": \"Response Size By Source\",\n \"tooltip\": {\n \"shared\":
+ true,\n \"sort\": 0,\n \"value_type\": \"individual\"\n },\n
+ \ \"type\": \"graph\",\n \"xaxis\": {\n \"buckets\": null,\n \"mode\":
+ \"time\",\n \"name\": null,\n \"show\": true,\n \"values\":
+ []\n },\n \"yaxes\": [\n {\n \"format\": \"decbytes\",\n
+ \ \"label\": null,\n \"logBase\": 1,\n \"max\": null,\n
+ \ \"min\": \"0\",\n \"show\": true\n },\n {\n \"format\":
+ \"short\",\n \"label\": null,\n \"logBase\": 1,\n \"max\":
+ null,\n \"min\": null,\n \"show\": false\n }\n ],\n
+ \ \"yaxis\": {\n \"align\": false,\n \"alignLevel\": null\n
+ \ }\n },\n {\n \"aliasColors\": {},\n \"bars\": false,\n \"dashLength\":
+ 10,\n \"dashes\": false,\n \"datasource\": \"Prometheus\",\n \"fill\":
+ 1,\n \"gridPos\": {\n \"h\": 6,\n \"w\": 12,\n \"x\":
+ 0,\n \"y\": 47\n },\n \"id\": 92,\n \"legend\": {\n \"avg\":
+ false,\n \"current\": false,\n \"max\": false,\n \"min\":
+ false,\n \"show\": true,\n \"total\": false,\n \"values\":
+ false\n },\n \"lines\": true,\n \"linewidth\": 1,\n \"links\":
+ [],\n \"nullPointMode\": \"null\",\n \"percentage\": false,\n \"pointradius\":
+ 5,\n \"points\": false,\n \"renderer\": \"flot\",\n \"seriesOverrides\":
+ [],\n \"spaceLength\": 10,\n \"stack\": false,\n \"steppedLine\":
+ false,\n \"targets\": [\n {\n \"expr\": \"round(sum(irate(istio_tcp_received_bytes_total{reporter=\\\"source\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ destination_workload=~\\\"$dstwl\\\", destination_workload_namespace=~\\\"$dstns\\\"}[1m]))
+ by (destination_workload, destination_workload_namespace), 0.001)\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{ destination_workload }}.{{ destination_workload_namespace}}
+ (\U0001F510mTLS)\",\n \"refId\": \"A\",\n \"step\": 2\n },\n
+ \ {\n \"expr\": \"round(sum(irate(istio_tcp_received_bytes_total{reporter=\\\"source\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", destination_service=~\\\"$service\\\",
+ destination_workload=~\\\"$dstwl\\\", destination_workload_namespace=~\\\"$dstns\\\"}[1m]))
+ by (destination_workload, destination_workload_namespace), 0.001)\",\n \"format\":
+ \"time_series\",\n \"intervalFactor\": 1,\n \"legendFormat\":
+ \"{{ destination_workload }}.{{ destination_workload_namespace}}\",\n \"refId\":
+ \"B\",\n \"step\": 2\n }\n ],\n \"thresholds\": [],\n
+ \ \"timeFrom\": null,\n \"timeShift\": null,\n \"title\": \"Bytes
+ Received from Incoming TCP Connection\",\n \"tooltip\": {\n \"shared\":
+ true,\n \"sort\": 0,\n \"value_type\": \"individual\"\n },\n
+ \ \"type\": \"graph\",\n \"xaxis\": {\n \"buckets\": null,\n \"mode\":
+ \"time\",\n \"name\": null,\n \"show\": true,\n \"values\":
+ []\n },\n \"yaxes\": [\n {\n \"format\": \"Bps\",\n
+ \ \"label\": null,\n \"logBase\": 1,\n \"max\": null,\n
+ \ \"min\": \"0\",\n \"show\": true\n },\n {\n \"format\":
+ \"short\",\n \"label\": null,\n \"logBase\": 1,\n \"max\":
+ null,\n \"min\": null,\n \"show\": true\n }\n ],\n
+ \ \"yaxis\": {\n \"align\": false,\n \"alignLevel\": null\n
+ \ }\n },\n {\n \"aliasColors\": {},\n \"bars\": false,\n \"dashLength\":
+ 10,\n \"dashes\": false,\n \"datasource\": \"Prometheus\",\n \"fill\":
+ 1,\n \"gridPos\": {\n \"h\": 6,\n \"w\": 12,\n \"x\":
+ 12,\n \"y\": 47\n },\n \"id\": 93,\n \"legend\": {\n \"avg\":
+ false,\n \"current\": false,\n \"max\": false,\n \"min\":
+ false,\n \"show\": true,\n \"total\": false,\n \"values\":
+ false\n },\n \"lines\": true,\n \"linewidth\": 1,\n \"links\":
+ [],\n \"nullPointMode\": \"null\",\n \"percentage\": false,\n \"pointradius\":
+ 5,\n \"points\": false,\n \"renderer\": \"flot\",\n \"seriesOverrides\":
+ [],\n \"spaceLength\": 10,\n \"stack\": false,\n \"steppedLine\":
+ false,\n \"targets\": [\n {\n \"expr\": \"round(sum(irate(istio_tcp_sent_bytes_total{connection_security_policy=\\\"mutual_tls\\\",
+ reporter=\\\"source\\\", destination_service=~\\\"$service\\\", destination_workload=~\\\"$dstwl\\\",
+ destination_workload_namespace=~\\\"$dstns\\\"}[1m])) by (destination_workload,
+ destination_workload_namespace), 0.001)\",\n \"format\": \"time_series\",\n
+ \ \"intervalFactor\": 1,\n \"legendFormat\": \"{{ destination_workload
+ }}.{{destination_workload_namespace }} (\U0001F510mTLS)\",\n \"refId\":
+ \"A\",\n \"step\": 2\n },\n {\n \"expr\": \"round(sum(irate(istio_tcp_sent_bytes_total{connection_security_policy!=\\\"mutual_tls\\\",
+ reporter=\\\"source\\\", destination_service=~\\\"$service\\\", destination_workload=~\\\"$dstwl\\\",
+ destination_workload_namespace=~\\\"$dstns\\\"}[1m])) by (destination_workload,
+ destination_workload_namespace), 0.001)\",\n \"format\": \"time_series\",\n
+ \ \"intervalFactor\": 1,\n \"legendFormat\": \"{{ destination_workload
+ }}.{{destination_workload_namespace }}\",\n \"refId\": \"B\",\n \"step\":
+ 2\n }\n ],\n \"thresholds\": [],\n \"timeFrom\": null,\n
+ \ \"timeShift\": null,\n \"title\": \"Bytes Sent to Incoming TCP Connection\",\n
+ \ \"tooltip\": {\n \"shared\": true,\n \"sort\": 0,\n \"value_type\":
+ \"individual\"\n },\n \"type\": \"graph\",\n \"xaxis\": {\n \"buckets\":
+ null,\n \"mode\": \"time\",\n \"name\": null,\n \"show\":
+ true,\n \"values\": []\n },\n \"yaxes\": [\n {\n \"format\":
+ \"Bps\",\n \"label\": null,\n \"logBase\": 1,\n \"max\":
+ null,\n \"min\": \"0\",\n \"show\": true\n },\n {\n
+ \ \"format\": \"short\",\n \"label\": null,\n \"logBase\":
+ 1,\n \"max\": null,\n \"min\": null,\n \"show\": true\n
+ \ }\n ],\n \"yaxis\": {\n \"align\": false,\n \"alignLevel\":
+ null\n }\n }\n ],\n \"refresh\": \"10s\",\n \"schemaVersion\": 16,\n
+ \ \"style\": \"dark\",\n \"tags\": [],\n \"templating\": {\n \"list\": [\n
+ \ {\n \"allValue\": null,\n \"datasource\": \"Prometheus\",\n
+ \ \"hide\": 0,\n \"includeAll\": false,\n \"label\": \"Service\",\n
+ \ \"multi\": false,\n \"name\": \"service\",\n \"options\":
+ [],\n \"query\": \"label_values(destination_service)\",\n \"refresh\":
+ 1,\n \"regex\": \"\",\n \"sort\": 0,\n \"tagValuesQuery\":
+ \"\",\n \"tags\": [],\n \"tagsQuery\": \"\",\n \"type\":
+ \"query\",\n \"useTags\": false\n },\n {\n \"allValue\":
+ null,\n \"current\": {\n \"text\": \"All\",\n \"value\":
+ \"$__all\"\n },\n \"datasource\": \"Prometheus\",\n \"hide\":
+ 0,\n \"includeAll\": true,\n \"label\": \"Client Workload Namespace\",\n
+ \ \"multi\": true,\n \"name\": \"srcns\",\n \"options\": [],\n
+ \ \"query\": \"query_result( sum(istio_requests_total{reporter=\\\"destination\\\",
+ destination_service=\\\"$service\\\"}) by (source_workload_namespace) or sum(istio_tcp_sent_bytes_total{reporter=\\\"destination\\\",
+ destination_service=~\\\"$service\\\"}) by (source_workload_namespace))\",\n \"refresh\":
+ 1,\n \"regex\": \"/.*namespace=\\\"([^\\\"]*).*/\",\n \"sort\":
+ 2,\n \"tagValuesQuery\": \"\",\n \"tags\": [],\n \"tagsQuery\":
+ \"\",\n \"type\": \"query\",\n \"useTags\": false\n },\n {\n
+ \ \"allValue\": null,\n \"current\": {\n \"text\": \"All\",\n
+ \ \"value\": \"$__all\"\n },\n \"datasource\": \"Prometheus\",\n
+ \ \"hide\": 0,\n \"includeAll\": true,\n \"label\": \"Client
+ Workload\",\n \"multi\": true,\n \"name\": \"srcwl\",\n \"options\":
+ [],\n \"query\": \"query_result( sum(istio_requests_total{reporter=\\\"destination\\\",
+ destination_service=~\\\"$service\\\", source_workload_namespace=~\\\"$srcns\\\"})
+ by (source_workload) or sum(istio_tcp_sent_bytes_total{reporter=\\\"destination\\\",
+ destination_service=~\\\"$service\\\", source_workload_namespace=~\\\"$srcns\\\"})
+ by (source_workload))\",\n \"refresh\": 1,\n \"regex\": \"/.*workload=\\\"([^\\\"]*).*/\",\n
+ \ \"sort\": 3,\n \"tagValuesQuery\": \"\",\n \"tags\": [],\n
+ \ \"tagsQuery\": \"\",\n \"type\": \"query\",\n \"useTags\":
+ false\n },\n {\n \"allValue\": null,\n \"current\": {\n
+ \ \"text\": \"All\",\n \"value\": \"$__all\"\n },\n \"datasource\":
+ \"Prometheus\",\n \"hide\": 0,\n \"includeAll\": true,\n \"label\":
+ \"Service Workload Namespace\",\n \"multi\": true,\n \"name\": \"dstns\",\n
+ \ \"options\": [],\n \"query\": \"query_result( sum(istio_requests_total{reporter=\\\"destination\\\",
+ destination_service=\\\"$service\\\"}) by (destination_workload_namespace) or
+ sum(istio_tcp_sent_bytes_total{reporter=\\\"destination\\\", destination_service=~\\\"$service\\\"})
+ by (destination_workload_namespace))\",\n \"refresh\": 1,\n \"regex\":
+ \"/.*namespace=\\\"([^\\\"]*).*/\",\n \"sort\": 2,\n \"tagValuesQuery\":
+ \"\",\n \"tags\": [],\n \"tagsQuery\": \"\",\n \"type\":
+ \"query\",\n \"useTags\": false\n },\n {\n \"allValue\":
+ null,\n \"current\": {\n \"text\": \"All\",\n \"value\":
+ \"$__all\"\n },\n \"datasource\": \"Prometheus\",\n \"hide\":
+ 0,\n \"includeAll\": true,\n \"label\": \"Service Workload\",\n
+ \ \"multi\": true,\n \"name\": \"dstwl\",\n \"options\": [],\n
+ \ \"query\": \"query_result( sum(istio_requests_total{reporter=\\\"destination\\\",
+ destination_service=~\\\"$service\\\", destination_workload_namespace=~\\\"$dstns\\\"})
+ by (destination_workload) or sum(istio_tcp_sent_bytes_total{reporter=\\\"destination\\\",
+ destination_service=~\\\"$service\\\", destination_workload_namespace=~\\\"$dstns\\\"})
+ by (destination_workload))\",\n \"refresh\": 1,\n \"regex\": \"/.*workload=\\\"([^\\\"]*).*/\",\n
+ \ \"sort\": 3,\n \"tagValuesQuery\": \"\",\n \"tags\": [],\n
+ \ \"tagsQuery\": \"\",\n \"type\": \"query\",\n \"useTags\":
+ false\n }\n ]\n },\n \"time\": {\n \"from\": \"now-5m\",\n \"to\":
+ \"now\"\n },\n \"timepicker\": {\n \"refresh_intervals\": [\n \"5s\",\n
+ \ \"10s\",\n \"30s\",\n \"1m\",\n \"5m\",\n \"15m\",\n
+ \ \"30m\",\n \"1h\",\n \"2h\",\n \"1d\"\n ],\n \"time_options\":
+ [\n \"5m\",\n \"15m\",\n \"1h\",\n \"6h\",\n \"12h\",\n
+ \ \"24h\",\n \"2d\",\n \"7d\",\n \"30d\"\n ]\n },\n \"timezone\":
+ \"\",\n \"title\": \"Istio Service Dashboard\",\n \"uid\": \"LJ_uJAvmk\",\n
+ \ \"version\": 1\n}\n"
+ istio-workload-dashboard.json: "{\n \"__inputs\": [\n {\n \"name\": \"DS_PROMETHEUS\",\n
+ \ \"label\": \"Prometheus\",\n \"description\": \"\",\n \"type\":
+ \"datasource\",\n \"pluginId\": \"prometheus\",\n \"pluginName\": \"Prometheus\"\n
+ \ }\n ],\n \"__requires\": [\n {\n \"type\": \"grafana\",\n \"id\":
+ \"grafana\",\n \"name\": \"Grafana\",\n \"version\": \"5.0.4\"\n },\n
+ \ {\n \"type\": \"panel\",\n \"id\": \"graph\",\n \"name\": \"Graph\",\n
+ \ \"version\": \"5.0.0\"\n },\n {\n \"type\": \"datasource\",\n
+ \ \"id\": \"prometheus\",\n \"name\": \"Prometheus\",\n \"version\":
+ \"5.0.0\"\n },\n {\n \"type\": \"panel\",\n \"id\": \"singlestat\",\n
+ \ \"name\": \"Singlestat\",\n \"version\": \"5.0.0\"\n },\n {\n
+ \ \"type\": \"panel\",\n \"id\": \"text\",\n \"name\": \"Text\",\n
+ \ \"version\": \"5.0.0\"\n }\n ],\n \"annotations\": {\n \"list\":
+ [\n {\n \"builtIn\": 1,\n \"datasource\": \"-- Grafana --\",\n
+ \ \"enable\": true,\n \"hide\": true,\n \"iconColor\": \"rgba(0,
+ 211, 255, 1)\",\n \"name\": \"Annotations & Alerts\",\n \"type\":
+ \"dashboard\"\n }\n ]\n },\n \"editable\": false,\n \"gnetId\": null,\n
+ \ \"graphTooltip\": 0,\n \"id\": null,\n \"iteration\": 1531345461465,\n \"links\":
+ [],\n \"panels\": [\n {\n \"content\": \"\",\n \"gridPos\":
+ {\n \"h\": 3,\n \"w\": 24,\n \"x\": 0,\n \"y\": 0\n
+ \ },\n \"id\": 89,\n \"links\": [],\n \"mode\": \"html\",\n
+ \ \"title\": \"\",\n \"transparent\": true,\n \"type\": \"text\"\n
+ \ },\n {\n \"cacheTimeout\": null,\n \"colorBackground\": false,\n
+ \ \"colorValue\": false,\n \"colors\": [\n \"rgba(245, 54, 54,
+ 0.9)\",\n \"rgba(237, 129, 40, 0.89)\",\n \"rgba(50, 172, 45, 0.97)\"\n
+ \ ],\n \"datasource\": \"Prometheus\",\n \"format\": \"ops\",\n
+ \ \"gauge\": {\n \"maxValue\": 100,\n \"minValue\": 0,\n \"show\":
+ false,\n \"thresholdLabels\": false,\n \"thresholdMarkers\": true\n
+ \ },\n \"gridPos\": {\n \"h\": 4,\n \"w\": 8,\n \"x\":
+ 0,\n \"y\": 3\n },\n \"id\": 12,\n \"interval\": null,\n
+ \ \"links\": [],\n \"mappingType\": 1,\n \"mappingTypes\": [\n {\n
+ \ \"name\": \"value to text\",\n \"value\": 1\n },\n {\n
+ \ \"name\": \"range to text\",\n \"value\": 2\n }\n ],\n
+ \ \"maxDataPoints\": 100,\n \"nullPointMode\": \"connected\",\n \"nullText\":
+ null,\n \"postfix\": \"\",\n \"postfixFontSize\": \"50%\",\n \"prefix\":
+ \"\",\n \"prefixFontSize\": \"50%\",\n \"rangeMaps\": [\n {\n
+ \ \"from\": \"null\",\n \"text\": \"N/A\",\n \"to\":
+ \"null\"\n }\n ],\n \"sparkline\": {\n \"fillColor\":
+ \"rgba(31, 118, 189, 0.18)\",\n \"full\": true,\n \"lineColor\":
+ \"rgb(31, 120, 193)\",\n \"show\": true\n },\n \"tableColumn\":
+ \"\",\n \"targets\": [\n {\n \"expr\": \"round(sum(irate(istio_requests_total{reporter=\\\"destination\\\",destination_workload_namespace=~\\\"$namespace\\\",destination_workload=~\\\"$workload\\\"}[5m])),
+ 0.001)\",\n \"format\": \"time_series\",\n \"intervalFactor\":
+ 1,\n \"refId\": \"A\",\n \"step\": 4\n }\n ],\n
+ \ \"thresholds\": \"\",\n \"title\": \"Incoming Request Volume\",\n \"transparent\":
+ false,\n \"type\": \"singlestat\",\n \"valueFontSize\": \"80%\",\n \"valueMaps\":
+ [\n {\n \"op\": \"=\",\n \"text\": \"N/A\",\n \"value\":
+ \"null\"\n }\n ],\n \"valueName\": \"current\"\n },\n {\n
+ \ \"cacheTimeout\": null,\n \"colorBackground\": false,\n \"colorValue\":
+ false,\n \"colors\": [\n \"rgba(50, 172, 45, 0.97)\",\n \"rgba(237,
+ 129, 40, 0.89)\",\n \"rgba(245, 54, 54, 0.9)\"\n ],\n \"datasource\":
+ \"Prometheus\",\n \"decimals\": null,\n \"format\": \"percentunit\",\n
+ \ \"gauge\": {\n \"maxValue\": 100,\n \"minValue\": 80,\n \"show\":
+ false,\n \"thresholdLabels\": false,\n \"thresholdMarkers\": false\n
+ \ },\n \"gridPos\": {\n \"h\": 4,\n \"w\": 8,\n \"x\":
+ 8,\n \"y\": 3\n },\n \"id\": 14,\n \"interval\": null,\n
+ \ \"links\": [],\n \"mappingType\": 1,\n \"mappingTypes\": [\n {\n
+ \ \"name\": \"value to text\",\n \"value\": 1\n },\n {\n
+ \ \"name\": \"range to text\",\n \"value\": 2\n }\n ],\n
+ \ \"maxDataPoints\": 100,\n \"nullPointMode\": \"connected\",\n \"nullText\":
+ null,\n \"postfix\": \"\",\n \"postfixFontSize\": \"50%\",\n \"prefix\":
+ \"\",\n \"prefixFontSize\": \"50%\",\n \"rangeMaps\": [\n {\n
+ \ \"from\": \"null\",\n \"text\": \"N/A\",\n \"to\":
+ \"null\"\n }\n ],\n \"sparkline\": {\n \"fillColor\":
+ \"rgba(31, 118, 189, 0.18)\",\n \"full\": true,\n \"lineColor\":
+ \"rgb(31, 120, 193)\",\n \"show\": true\n },\n \"tableColumn\":
+ \"\",\n \"targets\": [\n {\n \"expr\": \"sum(irate(istio_requests_total{reporter=\\\"destination\\\",destination_workload_namespace=~\\\"$namespace\\\",destination_workload=~\\\"$workload\\\",response_code!~\\\"5.*\\\"}[5m]))
+ / sum(irate(istio_requests_total{reporter=\\\"destination\\\",destination_workload_namespace=~\\\"$namespace\\\",destination_workload=~\\\"$workload\\\"}[5m]))\",\n
+ \ \"format\": \"time_series\",\n \"intervalFactor\": 1,\n \"refId\":
+ \"B\"\n }\n ],\n \"thresholds\": \"95, 99, 99.5\",\n \"title\":
+ \"Incoming Success Rate (non-5xx responses)\",\n \"transparent\": false,\n
+ \ \"type\": \"singlestat\",\n \"valueFontSize\": \"80%\",\n \"valueMaps\":
+ [\n {\n \"op\": \"=\",\n \"text\": \"N/A\",\n \"value\":
+ \"null\"\n }\n ],\n \"valueName\": \"avg\"\n },\n {\n \"aliasColors\":
+ {},\n \"bars\": false,\n \"dashLength\": 10,\n \"dashes\": false,\n
+ \ \"datasource\": \"Prometheus\",\n \"fill\": 1,\n \"gridPos\":
+ {\n \"h\": 4,\n \"w\": 8,\n \"x\": 16,\n \"y\": 3\n
+ \ },\n \"id\": 87,\n \"legend\": {\n \"alignAsTable\": false,\n
+ \ \"avg\": false,\n \"current\": false,\n \"hideEmpty\": false,\n
+ \ \"hideZero\": false,\n \"max\": false,\n \"min\": false,\n
+ \ \"rightSide\": true,\n \"show\": true,\n \"total\": false,\n
+ \ \"values\": false\n },\n \"lines\": true,\n \"linewidth\":
+ 1,\n \"links\": [],\n \"nullPointMode\": \"null\",\n \"percentage\":
+ false,\n \"pointradius\": 5,\n \"points\": false,\n \"renderer\":
+ \"flot\",\n \"seriesOverrides\": [],\n \"spaceLength\": 10,\n \"stack\":
+ false,\n \"steppedLine\": false,\n \"targets\": [\n {\n \"expr\":
+ \"(histogram_quantile(0.50, sum(irate(istio_request_duration_milliseconds_bucket{reporter=\\\"destination\\\",destination_workload=~\\\"$workload\\\",
+ destination_workload_namespace=~\\\"$namespace\\\"}[1m])) by (le)) / 1000) or
+ histogram_quantile(0.50, sum(irate(istio_request_duration_seconds_bucket{reporter=\\\"destination\\\",destination_workload=~\\\"$workload\\\",
+ destination_workload_namespace=~\\\"$namespace\\\"}[1m])) by (le))\",\n \"format\":
+ \"time_series\",\n \"interval\": \"\",\n \"intervalFactor\":
+ 1,\n \"legendFormat\": \"P50\",\n \"refId\": \"A\"\n },\n
+ \ {\n \"expr\": \"(histogram_quantile(0.50, sum(irate(istio_request_duration_milliseconds_bucket{reporter=\\\"destination\\\",destination_workload=~\\\"$workload\\\",
+ destination_workload_namespace=~\\\"$namespace\\\"}[1m])) by (le)) / 1000) or
+ histogram_quantile(0.90, sum(irate(istio_request_duration_seconds_bucket{reporter=\\\"destination\\\",destination_workload=~\\\"$workload\\\",
+ destination_workload_namespace=~\\\"$namespace\\\"}[1m])) by (le))\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"P90\",\n \"refId\": \"B\"\n },\n
+ \ {\n \"expr\": \"(histogram_quantile(0.50, sum(irate(istio_request_duration_milliseconds_bucket{reporter=\\\"destination\\\",destination_workload=~\\\"$workload\\\",
+ destination_workload_namespace=~\\\"$namespace\\\"}[1m])) by (le)) / 1000) or
+ histogram_quantile(0.99, sum(irate(istio_request_duration_seconds_bucket{reporter=\\\"destination\\\",destination_workload=~\\\"$workload\\\",
+ destination_workload_namespace=~\\\"$namespace\\\"}[1m])) by (le))\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"P99\",\n \"refId\": \"C\"\n }\n
+ \ ],\n \"thresholds\": [],\n \"timeFrom\": null,\n \"timeShift\":
+ null,\n \"title\": \"Request Duration\",\n \"tooltip\": {\n \"shared\":
+ true,\n \"sort\": 0,\n \"value_type\": \"individual\"\n },\n
+ \ \"type\": \"graph\",\n \"xaxis\": {\n \"buckets\": null,\n \"mode\":
+ \"time\",\n \"name\": null,\n \"show\": true,\n \"values\":
+ []\n },\n \"yaxes\": [\n {\n \"format\": \"s\",\n \"label\":
+ null,\n \"logBase\": 1,\n \"max\": null,\n \"min\":
+ null,\n \"show\": true\n },\n {\n \"format\":
+ \"short\",\n \"label\": null,\n \"logBase\": 1,\n \"max\":
+ null,\n \"min\": null,\n \"show\": false\n }\n ]\n
+ \ },\n {\n \"cacheTimeout\": null,\n \"colorBackground\": false,\n
+ \ \"colorValue\": false,\n \"colors\": [\n \"#299c46\",\n \"rgba(237,
+ 129, 40, 0.89)\",\n \"#d44a3a\"\n ],\n \"datasource\": \"Prometheus\",\n
+ \ \"format\": \"Bps\",\n \"gauge\": {\n \"maxValue\": 100,\n \"minValue\":
+ 0,\n \"show\": false,\n \"thresholdLabels\": false,\n \"thresholdMarkers\":
+ true\n },\n \"gridPos\": {\n \"h\": 4,\n \"w\": 12,\n
+ \ \"x\": 0,\n \"y\": 7\n },\n \"id\": 84,\n \"interval\":
+ null,\n \"links\": [],\n \"mappingType\": 1,\n \"mappingTypes\":
+ [\n {\n \"name\": \"value to text\",\n \"value\": 1\n
+ \ },\n {\n \"name\": \"range to text\",\n \"value\":
+ 2\n }\n ],\n \"maxDataPoints\": 100,\n \"nullPointMode\":
+ \"connected\",\n \"nullText\": null,\n \"postfix\": \"\",\n \"postfixFontSize\":
+ \"50%\",\n \"prefix\": \"\",\n \"prefixFontSize\": \"50%\",\n \"rangeMaps\":
+ [\n {\n \"from\": \"null\",\n \"text\": \"N/A\",\n \"to\":
+ \"null\"\n }\n ],\n \"sparkline\": {\n \"fillColor\":
+ \"rgba(31, 118, 189, 0.18)\",\n \"full\": true,\n \"lineColor\":
+ \"rgb(31, 120, 193)\",\n \"show\": true\n },\n \"tableColumn\":
+ \"\",\n \"targets\": [\n {\n \"expr\": \"sum(irate(istio_tcp_sent_bytes_total{reporter=\\\"destination\\\",
+ destination_workload_namespace=~\\\"$namespace\\\", destination_workload=~\\\"$workload\\\"}[1m]))
+ + sum(irate(istio_tcp_received_bytes_total{reporter=\\\"destination\\\", destination_workload_namespace=~\\\"$namespace\\\",
+ destination_workload=~\\\"$workload\\\"}[1m]))\",\n \"format\": \"time_series\",\n
+ \ \"hide\": false,\n \"intervalFactor\": 1,\n \"legendFormat\":
+ \"\",\n \"refId\": \"A\"\n }\n ],\n \"thresholds\":
+ \"\",\n \"title\": \"TCP Server Traffic\",\n \"transparent\": false,\n
+ \ \"type\": \"singlestat\",\n \"valueFontSize\": \"80%\",\n \"valueMaps\":
+ [\n {\n \"op\": \"=\",\n \"text\": \"N/A\",\n \"value\":
+ \"null\"\n }\n ],\n \"valueName\": \"avg\"\n },\n {\n \"cacheTimeout\":
+ null,\n \"colorBackground\": false,\n \"colorValue\": false,\n \"colors\":
+ [\n \"#299c46\",\n \"rgba(237, 129, 40, 0.89)\",\n \"#d44a3a\"\n
+ \ ],\n \"datasource\": \"Prometheus\",\n \"format\": \"Bps\",\n
+ \ \"gauge\": {\n \"maxValue\": 100,\n \"minValue\": 0,\n \"show\":
+ false,\n \"thresholdLabels\": false,\n \"thresholdMarkers\": true\n
+ \ },\n \"gridPos\": {\n \"h\": 4,\n \"w\": 12,\n \"x\":
+ 12,\n \"y\": 7\n },\n \"id\": 85,\n \"interval\": null,\n
+ \ \"links\": [],\n \"mappingType\": 1,\n \"mappingTypes\": [\n {\n
+ \ \"name\": \"value to text\",\n \"value\": 1\n },\n {\n
+ \ \"name\": \"range to text\",\n \"value\": 2\n }\n ],\n
+ \ \"maxDataPoints\": 100,\n \"nullPointMode\": \"connected\",\n \"nullText\":
+ null,\n \"postfix\": \"\",\n \"postfixFontSize\": \"50%\",\n \"prefix\":
+ \"\",\n \"prefixFontSize\": \"50%\",\n \"rangeMaps\": [\n {\n
+ \ \"from\": \"null\",\n \"text\": \"N/A\",\n \"to\":
+ \"null\"\n }\n ],\n \"sparkline\": {\n \"fillColor\":
+ \"rgba(31, 118, 189, 0.18)\",\n \"full\": true,\n \"lineColor\":
+ \"rgb(31, 120, 193)\",\n \"show\": true\n },\n \"tableColumn\":
+ \"\",\n \"targets\": [\n {\n \"expr\": \"sum(irate(istio_tcp_sent_bytes_total{reporter=\\\"source\\\",
+ source_workload_namespace=~\\\"$namespace\\\", source_workload=~\\\"$workload\\\"}[1m]))
+ + sum(irate(istio_tcp_received_bytes_total{reporter=\\\"source\\\", source_workload_namespace=~\\\"$namespace\\\",
+ source_workload=~\\\"$workload\\\"}[1m]))\",\n \"format\": \"time_series\",\n
+ \ \"hide\": false,\n \"intervalFactor\": 1,\n \"legendFormat\":
+ \"\",\n \"refId\": \"A\"\n }\n ],\n \"thresholds\":
+ \"\",\n \"title\": \"TCP Client Traffic\",\n \"transparent\": false,\n
+ \ \"type\": \"singlestat\",\n \"valueFontSize\": \"80%\",\n \"valueMaps\":
+ [\n {\n \"op\": \"=\",\n \"text\": \"N/A\",\n \"value\":
+ \"null\"\n }\n ],\n \"valueName\": \"avg\"\n },\n {\n \"content\":
+ \"\",\n
+ \ \"gridPos\": {\n \"h\": 3,\n \"w\": 24,\n \"x\": 0,\n
+ \ \"y\": 11\n },\n \"id\": 45,\n \"links\": [],\n \"mode\":
+ \"html\",\n \"title\": \"\",\n \"transparent\": true,\n \"type\":
+ \"text\"\n },\n {\n \"aliasColors\": {},\n \"bars\": false,\n
+ \ \"dashLength\": 10,\n \"dashes\": false,\n \"datasource\": \"Prometheus\",\n
+ \ \"fill\": 0,\n \"gridPos\": {\n \"h\": 6,\n \"w\": 12,\n
+ \ \"x\": 0,\n \"y\": 14\n },\n \"id\": 25,\n \"legend\":
+ {\n \"avg\": false,\n \"current\": false,\n \"hideEmpty\":
+ true,\n \"max\": false,\n \"min\": false,\n \"show\": true,\n
+ \ \"total\": false,\n \"values\": false\n },\n \"lines\":
+ true,\n \"linewidth\": 1,\n \"links\": [],\n \"nullPointMode\":
+ \"null as zero\",\n \"percentage\": false,\n \"pointradius\": 5,\n \"points\":
+ false,\n \"renderer\": \"flot\",\n \"seriesOverrides\": [],\n \"spaceLength\":
+ 10,\n \"stack\": false,\n \"steppedLine\": false,\n \"targets\":
+ [\n {\n \"expr\": \"round(sum(irate(istio_requests_total{connection_security_policy=\\\"mutual_tls\\\",
+ destination_workload_namespace=~\\\"$namespace\\\", destination_workload=~\\\"$workload\\\",
+ reporter=\\\"destination\\\", source_workload=~\\\"$srcwl\\\", source_workload_namespace=~\\\"$srcns\\\"}[5m]))
+ by (source_workload, source_workload_namespace, response_code), 0.001)\",\n \"format\":
+ \"time_series\",\n \"intervalFactor\": 1,\n \"legendFormat\":
+ \"{{ source_workload }}.{{ source_workload_namespace }} : {{ response_code }}
+ (\U0001F510mTLS)\",\n \"refId\": \"B\",\n \"step\": 2\n },\n
+ \ {\n \"expr\": \"round(sum(irate(istio_requests_total{connection_security_policy!=\\\"mutual_tls\\\",
+ destination_workload_namespace=~\\\"$namespace\\\", destination_workload=~\\\"$workload\\\",
+ reporter=\\\"destination\\\", source_workload=~\\\"$srcwl\\\", source_workload_namespace=~\\\"$srcns\\\"}[5m]))
+ by (source_workload, source_workload_namespace, response_code), 0.001)\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{ source_workload }}.{{ source_workload_namespace
+ }} : {{ response_code }}\",\n \"refId\": \"A\",\n \"step\":
+ 2\n }\n ],\n \"thresholds\": [],\n \"timeFrom\": null,\n
+ \ \"timeShift\": null,\n \"title\": \"Incoming Requests by Source And
+ Response Code\",\n \"tooltip\": {\n \"shared\": false,\n \"sort\":
+ 0,\n \"value_type\": \"individual\"\n },\n \"type\": \"graph\",\n
+ \ \"xaxis\": {\n \"buckets\": null,\n \"mode\": \"time\",\n
+ \ \"name\": null,\n \"show\": true,\n \"values\": [\n \"total\"\n
+ \ ]\n },\n \"yaxes\": [\n {\n \"format\": \"ops\",\n
+ \ \"label\": null,\n \"logBase\": 1,\n \"max\": null,\n
+ \ \"min\": \"0\",\n \"show\": true\n },\n {\n \"format\":
+ \"short\",\n \"label\": null,\n \"logBase\": 1,\n \"max\":
+ null,\n \"min\": null,\n \"show\": false\n }\n ]\n
+ \ },\n {\n \"aliasColors\": {},\n \"bars\": false,\n \"dashLength\":
+ 10,\n \"dashes\": false,\n \"datasource\": \"Prometheus\",\n \"fill\":
+ 1,\n \"gridPos\": {\n \"h\": 6,\n \"w\": 12,\n \"x\":
+ 12,\n \"y\": 14\n },\n \"id\": 26,\n \"legend\": {\n \"avg\":
+ false,\n \"current\": false,\n \"hideEmpty\": true,\n \"hideZero\":
+ false,\n \"max\": false,\n \"min\": false,\n \"show\": true,\n
+ \ \"total\": false,\n \"values\": false\n },\n \"lines\":
+ true,\n \"linewidth\": 1,\n \"links\": [],\n \"nullPointMode\":
+ \"null\",\n \"percentage\": false,\n \"pointradius\": 5,\n \"points\":
+ false,\n \"renderer\": \"flot\",\n \"seriesOverrides\": [],\n \"spaceLength\":
+ 10,\n \"stack\": false,\n \"steppedLine\": false,\n \"targets\":
+ [\n {\n \"expr\": \"sum(irate(istio_requests_total{reporter=\\\"destination\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_workload_namespace=~\\\"$namespace\\\",
+ destination_workload=~\\\"$workload\\\",response_code!~\\\"5.*\\\", source_workload=~\\\"$srcwl\\\",
+ source_workload_namespace=~\\\"$srcns\\\"}[5m])) by (source_workload, source_workload_namespace)
+ / sum(irate(istio_requests_total{reporter=\\\"destination\\\", connection_security_policy=\\\"mutual_tls\\\",
+ destination_workload_namespace=~\\\"$namespace\\\", destination_workload=~\\\"$workload\\\",
+ source_workload=~\\\"$srcwl\\\", source_workload_namespace=~\\\"$srcns\\\"}[5m]))
+ by (source_workload, source_workload_namespace)\",\n \"format\": \"time_series\",\n
+ \ \"hide\": false,\n \"intervalFactor\": 1,\n \"legendFormat\":
+ \"{{ source_workload }}.{{ source_workload_namespace }} (\U0001F510mTLS)\",\n
+ \ \"refId\": \"A\",\n \"step\": 2\n },\n {\n \"expr\":
+ \"sum(irate(istio_requests_total{reporter=\\\"destination\\\", connection_security_policy!=\\\"mutual_tls\\\",
+ destination_workload_namespace=~\\\"$namespace\\\", destination_workload=~\\\"$workload\\\",response_code!~\\\"5.*\\\",
+ source_workload=~\\\"$srcwl\\\", source_workload_namespace=~\\\"$srcns\\\"}[5m]))
+ by (source_workload, source_workload_namespace) / sum(irate(istio_requests_total{reporter=\\\"destination\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", destination_workload_namespace=~\\\"$namespace\\\",
+ destination_workload=~\\\"$workload\\\", source_workload=~\\\"$srcwl\\\", source_workload_namespace=~\\\"$srcns\\\"}[5m]))
+ by (source_workload, source_workload_namespace)\",\n \"format\": \"time_series\",\n
+ \ \"hide\": false,\n \"intervalFactor\": 1,\n \"legendFormat\":
+ \"{{ source_workload }}.{{ source_workload_namespace }}\",\n \"refId\":
+ \"B\",\n \"step\": 2\n }\n ],\n \"thresholds\": [],\n
+ \ \"timeFrom\": null,\n \"timeShift\": null,\n \"title\": \"Incoming
+ Success Rate (non-5xx responses) By Source\",\n \"tooltip\": {\n \"shared\":
+ true,\n \"sort\": 0,\n \"value_type\": \"individual\"\n },\n
+ \ \"type\": \"graph\",\n \"xaxis\": {\n \"buckets\": null,\n \"mode\":
+ \"time\",\n \"name\": null,\n \"show\": true,\n \"values\":
+ []\n },\n \"yaxes\": [\n {\n \"format\": \"percentunit\",\n
+ \ \"label\": null,\n \"logBase\": 1,\n \"max\": \"1.01\",\n
+ \ \"min\": \"0\",\n \"show\": true\n },\n {\n \"format\":
+ \"short\",\n \"label\": null,\n \"logBase\": 1,\n \"max\":
+ null,\n \"min\": null,\n \"show\": false\n }\n ]\n
+ \ },\n {\n \"aliasColors\": {},\n \"bars\": false,\n \"dashLength\":
+ 10,\n \"dashes\": false,\n \"datasource\": \"Prometheus\",\n \"description\":
+ \"\",\n \"fill\": 1,\n \"gridPos\": {\n \"h\": 6,\n \"w\":
+ 8,\n \"x\": 0,\n \"y\": 20\n },\n \"id\": 27,\n \"legend\":
+ {\n \"alignAsTable\": false,\n \"avg\": false,\n \"current\":
+ false,\n \"hideEmpty\": true,\n \"hideZero\": false,\n \"max\":
+ false,\n \"min\": false,\n \"rightSide\": false,\n \"show\":
+ true,\n \"total\": false,\n \"values\": false\n },\n \"lines\":
+ true,\n \"linewidth\": 1,\n \"links\": [],\n \"nullPointMode\":
+ \"null\",\n \"percentage\": false,\n \"pointradius\": 5,\n \"points\":
+ false,\n \"renderer\": \"flot\",\n \"seriesOverrides\": [],\n \"spaceLength\":
+ 10,\n \"stack\": false,\n \"steppedLine\": false,\n \"targets\":
+ [\n {\n \"expr\": \"(histogram_quantile(0.50, sum(irate(istio_request_duration_milliseconds_bucket{reporter=\\\"destination\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_workload=~\\\"$workload\\\",
+ destination_workload_namespace=~\\\"$namespace\\\", source_workload=~\\\"$srcwl\\\",
+ source_workload_namespace=~\\\"$srcns\\\"}[1m])) by (source_workload, source_workload_namespace,
+ le)) / 1000) or histogram_quantile(0.50, sum(irate(istio_request_duration_seconds_bucket{reporter=\\\"destination\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_workload=~\\\"$workload\\\",
+ destination_workload_namespace=~\\\"$namespace\\\", source_workload=~\\\"$srcwl\\\",
+ source_workload_namespace=~\\\"$srcns\\\"}[1m])) by (source_workload, source_workload_namespace,
+ le))\",\n \"format\": \"time_series\",\n \"hide\": false,\n
+ \ \"intervalFactor\": 1,\n \"legendFormat\": \"{{source_workload}}.{{source_workload_namespace}}
+ P50 (\U0001F510mTLS)\",\n \"refId\": \"D\",\n \"step\": 2\n
+ \ },\n {\n \"expr\": \"(histogram_quantile(0.90, sum(irate(istio_request_duration_milliseconds_bucket{reporter=\\\"destination\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_workload=~\\\"$workload\\\",
+ destination_workload_namespace=~\\\"$namespace\\\", source_workload=~\\\"$srcwl\\\",
+ source_workload_namespace=~\\\"$srcns\\\"}[1m])) by (source_workload, source_workload_namespace,
+ le)) / 1000) or histogram_quantile(0.90, sum(irate(istio_request_duration_seconds_bucket{reporter=\\\"destination\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_workload=~\\\"$workload\\\",
+ destination_workload_namespace=~\\\"$namespace\\\", source_workload=~\\\"$srcwl\\\",
+ source_workload_namespace=~\\\"$srcns\\\"}[1m])) by (source_workload, source_workload_namespace,
+ le))\",\n \"format\": \"time_series\",\n \"hide\": false,\n
+ \ \"intervalFactor\": 1,\n \"legendFormat\": \"{{source_workload}}.{{source_workload_namespace}}
+ P90 (\U0001F510mTLS)\",\n \"refId\": \"A\",\n \"step\": 2\n
+ \ },\n {\n \"expr\": \"(histogram_quantile(0.95, sum(irate(istio_request_duration_milliseconds_bucket{reporter=\\\"destination\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_workload=~\\\"$workload\\\",
+ destination_workload_namespace=~\\\"$namespace\\\", source_workload=~\\\"$srcwl\\\",
+ source_workload_namespace=~\\\"$srcns\\\"}[1m])) by (source_workload, source_workload_namespace,
+ le)) / 1000) or histogram_quantile(0.95, sum(irate(istio_request_duration_seconds_bucket{reporter=\\\"destination\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_workload=~\\\"$workload\\\",
+ destination_workload_namespace=~\\\"$namespace\\\", source_workload=~\\\"$srcwl\\\",
+ source_workload_namespace=~\\\"$srcns\\\"}[1m])) by (source_workload, source_workload_namespace,
+ le))\",\n \"format\": \"time_series\",\n \"hide\": false,\n
+ \ \"intervalFactor\": 1,\n \"legendFormat\": \"{{source_workload}}.{{source_workload_namespace}}
+ P95 (\U0001F510mTLS)\",\n \"refId\": \"B\",\n \"step\": 2\n
+ \ },\n {\n \"expr\": \"(histogram_quantile(0.99, sum(irate(istio_request_duration_milliseconds_bucket{reporter=\\\"destination\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_workload=~\\\"$workload\\\",
+ destination_workload_namespace=~\\\"$namespace\\\", source_workload=~\\\"$srcwl\\\",
+ source_workload_namespace=~\\\"$srcns\\\"}[1m])) by (source_workload, source_workload_namespace,
+ le)) / 1000) or histogram_quantile(0.99, sum(irate(istio_request_duration_seconds_bucket{reporter=\\\"destination\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_workload=~\\\"$workload\\\",
+ destination_workload_namespace=~\\\"$namespace\\\", source_workload=~\\\"$srcwl\\\",
+ source_workload_namespace=~\\\"$srcns\\\"}[1m])) by (source_workload, source_workload_namespace,
+ le))\",\n \"format\": \"time_series\",\n \"hide\": false,\n
+ \ \"intervalFactor\": 1,\n \"legendFormat\": \"{{source_workload}}.{{source_workload_namespace}}
+ P99 (\U0001F510mTLS)\",\n \"refId\": \"C\",\n \"step\": 2\n
+ \ },\n {\n \"expr\": \"(histogram_quantile(0.50, sum(irate(istio_request_duration_milliseconds_bucket{reporter=\\\"destination\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", destination_workload=~\\\"$workload\\\",
+ destination_workload_namespace=~\\\"$namespace\\\", source_workload=~\\\"$srcwl\\\",
+ source_workload_namespace=~\\\"$srcns\\\"}[1m])) by (source_workload, source_workload_namespace,
+ le)) / 1000) or histogram_quantile(0.50, sum(irate(istio_request_duration_seconds_bucket{reporter=\\\"destination\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", destination_workload=~\\\"$workload\\\",
+ destination_workload_namespace=~\\\"$namespace\\\", source_workload=~\\\"$srcwl\\\",
+ source_workload_namespace=~\\\"$srcns\\\"}[1m])) by (source_workload, source_workload_namespace,
+ le))\",\n \"format\": \"time_series\",\n \"hide\": false,\n
+ \ \"intervalFactor\": 1,\n \"legendFormat\": \"{{source_workload}}.{{source_workload_namespace}}
+ P50\",\n \"refId\": \"E\",\n \"step\": 2\n },\n {\n
+ \ \"expr\": \"(histogram_quantile(0.90, sum(irate(istio_request_duration_milliseconds_bucket{reporter=\\\"destination\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", destination_workload=~\\\"$workload\\\",
+ destination_workload_namespace=~\\\"$namespace\\\", source_workload=~\\\"$srcwl\\\",
+ source_workload_namespace=~\\\"$srcns\\\"}[1m])) by (source_workload, source_workload_namespace,
+ le)) / 1000) or histogram_quantile(0.90, sum(irate(istio_request_duration_seconds_bucket{reporter=\\\"destination\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", destination_workload=~\\\"$workload\\\",
+ destination_workload_namespace=~\\\"$namespace\\\", source_workload=~\\\"$srcwl\\\",
+ source_workload_namespace=~\\\"$srcns\\\"}[1m])) by (source_workload, source_workload_namespace,
+ le))\",\n \"format\": \"time_series\",\n \"hide\": false,\n
+ \ \"intervalFactor\": 1,\n \"legendFormat\": \"{{source_workload}}.{{source_workload_namespace}}
+ P90\",\n \"refId\": \"F\",\n \"step\": 2\n },\n {\n
+ \ \"expr\": \"(histogram_quantile(0.95, sum(irate(istio_request_duration_milliseconds_bucket{reporter=\\\"destination\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", destination_workload=~\\\"$workload\\\",
+ destination_workload_namespace=~\\\"$namespace\\\", source_workload=~\\\"$srcwl\\\",
+ source_workload_namespace=~\\\"$srcns\\\"}[1m])) by (source_workload, source_workload_namespace,
+ le)) / 1000) or histogram_quantile(0.95, sum(irate(istio_request_duration_seconds_bucket{reporter=\\\"destination\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", destination_workload=~\\\"$workload\\\",
+ destination_workload_namespace=~\\\"$namespace\\\", source_workload=~\\\"$srcwl\\\",
+ source_workload_namespace=~\\\"$srcns\\\"}[1m])) by (source_workload, source_workload_namespace,
+ le))\",\n \"format\": \"time_series\",\n \"hide\": false,\n
+ \ \"intervalFactor\": 1,\n \"legendFormat\": \"{{source_workload}}.{{source_workload_namespace}}
+ P95\",\n \"refId\": \"G\",\n \"step\": 2\n },\n {\n
+ \ \"expr\": \"(histogram_quantile(0.99, sum(irate(istio_request_duration_milliseconds_bucket{reporter=\\\"destination\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", destination_workload=~\\\"$workload\\\",
+ destination_workload_namespace=~\\\"$namespace\\\", source_workload=~\\\"$srcwl\\\",
+ source_workload_namespace=~\\\"$srcns\\\"}[1m])) by (source_workload, source_workload_namespace,
+ le)) / 1000) or histogram_quantile(0.99, sum(irate(istio_request_duration_seconds_bucket{reporter=\\\"destination\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", destination_workload=~\\\"$workload\\\",
+ destination_workload_namespace=~\\\"$namespace\\\", source_workload=~\\\"$srcwl\\\",
+ source_workload_namespace=~\\\"$srcns\\\"}[1m])) by (source_workload, source_workload_namespace,
+ le))\",\n \"format\": \"time_series\",\n \"hide\": false,\n
+ \ \"intervalFactor\": 1,\n \"legendFormat\": \"{{source_workload}}.{{source_workload_namespace}}
+ P99\",\n \"refId\": \"H\",\n \"step\": 2\n }\n ],\n
+ \ \"thresholds\": [],\n \"timeFrom\": null,\n \"timeShift\": null,\n
+ \ \"title\": \"Incoming Request Duration by Source\",\n \"tooltip\":
+ {\n \"shared\": true,\n \"sort\": 0,\n \"value_type\": \"individual\"\n
+ \ },\n \"type\": \"graph\",\n \"xaxis\": {\n \"buckets\":
+ null,\n \"mode\": \"time\",\n \"name\": null,\n \"show\":
+ true,\n \"values\": []\n },\n \"yaxes\": [\n {\n \"format\":
+ \"s\",\n \"label\": null,\n \"logBase\": 1,\n \"max\":
+ null,\n \"min\": \"0\",\n \"show\": true\n },\n {\n
+ \ \"format\": \"short\",\n \"label\": null,\n \"logBase\":
+ 1,\n \"max\": null,\n \"min\": null,\n \"show\": false\n
+ \ }\n ]\n },\n {\n \"aliasColors\": {},\n \"bars\":
+ false,\n \"dashLength\": 10,\n \"dashes\": false,\n \"datasource\":
+ \"Prometheus\",\n \"fill\": 1,\n \"gridPos\": {\n \"h\": 6,\n
+ \ \"w\": 8,\n \"x\": 8,\n \"y\": 20\n },\n \"id\":
+ 28,\n \"legend\": {\n \"alignAsTable\": false,\n \"avg\": false,\n
+ \ \"current\": false,\n \"hideEmpty\": true,\n \"max\": false,\n
+ \ \"min\": false,\n \"rightSide\": false,\n \"show\": true,\n
+ \ \"total\": false,\n \"values\": false\n },\n \"lines\":
+ true,\n \"linewidth\": 1,\n \"links\": [],\n \"nullPointMode\":
+ \"null\",\n \"percentage\": false,\n \"pointradius\": 5,\n \"points\":
+ false,\n \"renderer\": \"flot\",\n \"seriesOverrides\": [],\n \"spaceLength\":
+ 10,\n \"stack\": false,\n \"steppedLine\": false,\n \"targets\":
+ [\n {\n \"expr\": \"histogram_quantile(0.50, sum(irate(istio_request_bytes_bucket{reporter=\\\"destination\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_workload=~\\\"$workload\\\",
+ destination_workload_namespace=~\\\"$namespace\\\", source_workload=~\\\"$srcwl\\\",
+ source_workload_namespace=~\\\"$srcns\\\"}[1m])) by (source_workload, source_workload_namespace,
+ le))\",\n \"format\": \"time_series\",\n \"hide\": false,\n
+ \ \"intervalFactor\": 1,\n \"legendFormat\": \"{{source_workload}}.{{source_workload_namespace}}
+ P50 (\U0001F510mTLS)\",\n \"refId\": \"D\",\n \"step\": 2\n
+ \ },\n {\n \"expr\": \"histogram_quantile(0.90, sum(irate(istio_request_bytes_bucket{reporter=\\\"destination\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_workload=~\\\"$workload\\\",
+ destination_workload_namespace=~\\\"$namespace\\\", source_workload=~\\\"$srcwl\\\",
+ source_workload_namespace=~\\\"$srcns\\\"}[1m])) by (source_workload, source_workload_namespace,
+ le))\",\n \"format\": \"time_series\",\n \"hide\": false,\n
+ \ \"intervalFactor\": 1,\n \"legendFormat\": \"{{source_workload}}.{{source_workload_namespace}}
+ \ P90 (\U0001F510mTLS)\",\n \"refId\": \"A\",\n \"step\": 2\n
+ \ },\n {\n \"expr\": \"histogram_quantile(0.95, sum(irate(istio_request_bytes_bucket{reporter=\\\"destination\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_workload=~\\\"$workload\\\",
+ destination_workload_namespace=~\\\"$namespace\\\", source_workload=~\\\"$srcwl\\\",
+ source_workload_namespace=~\\\"$srcns\\\"}[1m])) by (source_workload, source_workload_namespace,
+ le))\",\n \"format\": \"time_series\",\n \"hide\": false,\n
+ \ \"intervalFactor\": 1,\n \"legendFormat\": \"{{source_workload}}.{{source_workload_namespace}}
+ P95 (\U0001F510mTLS)\",\n \"refId\": \"B\",\n \"step\": 2\n
+ \ },\n {\n \"expr\": \"histogram_quantile(0.99, sum(irate(istio_request_bytes_bucket{reporter=\\\"destination\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_workload=~\\\"$workload\\\",
+ destination_workload_namespace=~\\\"$namespace\\\", source_workload=~\\\"$srcwl\\\",
+ source_workload_namespace=~\\\"$srcns\\\"}[1m])) by (source_workload, source_workload_namespace,
+ le))\",\n \"format\": \"time_series\",\n \"hide\": false,\n
+ \ \"intervalFactor\": 1,\n \"legendFormat\": \"{{source_workload}}.{{source_workload_namespace}}
+ \ P99 (\U0001F510mTLS)\",\n \"refId\": \"C\",\n \"step\": 2\n
+ \ },\n {\n \"expr\": \"histogram_quantile(0.50, sum(irate(istio_request_bytes_bucket{reporter=\\\"destination\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", destination_workload=~\\\"$workload\\\",
+ destination_workload_namespace=~\\\"$namespace\\\", source_workload=~\\\"$srcwl\\\",
+ source_workload_namespace=~\\\"$srcns\\\"}[1m])) by (source_workload, source_workload_namespace,
+ le))\",\n \"format\": \"time_series\",\n \"hide\": false,\n
+ \ \"intervalFactor\": 1,\n \"legendFormat\": \"{{source_workload}}.{{source_workload_namespace}}
+ P50\",\n \"refId\": \"E\",\n \"step\": 2\n },\n {\n
+ \ \"expr\": \"histogram_quantile(0.90, sum(irate(istio_request_bytes_bucket{reporter=\\\"destination\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", destination_workload=~\\\"$workload\\\",
+ destination_workload_namespace=~\\\"$namespace\\\", source_workload=~\\\"$srcwl\\\",
+ source_workload_namespace=~\\\"$srcns\\\"}[1m])) by (source_workload, source_workload_namespace,
+ le))\",\n \"format\": \"time_series\",\n \"hide\": false,\n
+ \ \"intervalFactor\": 1,\n \"legendFormat\": \"{{source_workload}}.{{source_workload_namespace}}
+ P90\",\n \"refId\": \"F\",\n \"step\": 2\n },\n {\n
+ \ \"expr\": \"histogram_quantile(0.95, sum(irate(istio_request_bytes_bucket{reporter=\\\"destination\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", destination_workload=~\\\"$workload\\\",
+ destination_workload_namespace=~\\\"$namespace\\\", source_workload=~\\\"$srcwl\\\",
+ source_workload_namespace=~\\\"$srcns\\\"}[1m])) by (source_workload, source_workload_namespace,
+ le))\",\n \"format\": \"time_series\",\n \"hide\": false,\n
+ \ \"intervalFactor\": 1,\n \"legendFormat\": \"{{source_workload}}.{{source_workload_namespace}}
+ P95\",\n \"refId\": \"G\",\n \"step\": 2\n },\n {\n
+ \ \"expr\": \"histogram_quantile(0.99, sum(irate(istio_request_bytes_bucket{reporter=\\\"destination\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", destination_workload=~\\\"$workload\\\",
+ destination_workload_namespace=~\\\"$namespace\\\", source_workload=~\\\"$srcwl\\\",
+ source_workload_namespace=~\\\"$srcns\\\"}[1m])) by (source_workload, source_workload_namespace,
+ le))\",\n \"format\": \"time_series\",\n \"hide\": false,\n
+ \ \"intervalFactor\": 1,\n \"legendFormat\": \"{{source_workload}}.{{source_workload_namespace}}
+ P99\",\n \"refId\": \"H\",\n \"step\": 2\n }\n ],\n
+ \ \"thresholds\": [],\n \"timeFrom\": null,\n \"timeShift\": null,\n
+ \ \"title\": \"Incoming Request Size By Source\",\n \"tooltip\": {\n
+ \ \"shared\": true,\n \"sort\": 0,\n \"value_type\": \"individual\"\n
+ \ },\n \"type\": \"graph\",\n \"xaxis\": {\n \"buckets\":
+ null,\n \"mode\": \"time\",\n \"name\": null,\n \"show\":
+ true,\n \"values\": []\n },\n \"yaxes\": [\n {\n \"format\":
+ \"decbytes\",\n \"label\": null,\n \"logBase\": 1,\n \"max\":
+ null,\n \"min\": \"0\",\n \"show\": true\n },\n {\n
+ \ \"format\": \"short\",\n \"label\": null,\n \"logBase\":
+ 1,\n \"max\": null,\n \"min\": null,\n \"show\": false\n
+ \ }\n ]\n },\n {\n \"aliasColors\": {},\n \"bars\":
+ false,\n \"dashLength\": 10,\n \"dashes\": false,\n \"datasource\":
+ \"Prometheus\",\n \"fill\": 1,\n \"gridPos\": {\n \"h\": 6,\n
+ \ \"w\": 8,\n \"x\": 16,\n \"y\": 20\n },\n \"id\":
+ 68,\n \"legend\": {\n \"alignAsTable\": false,\n \"avg\": false,\n
+ \ \"current\": false,\n \"hideEmpty\": true,\n \"max\": false,\n
+ \ \"min\": false,\n \"rightSide\": false,\n \"show\": true,\n
+ \ \"total\": false,\n \"values\": false\n },\n \"lines\":
+ true,\n \"linewidth\": 1,\n \"links\": [],\n \"nullPointMode\":
+ \"null\",\n \"percentage\": false,\n \"pointradius\": 5,\n \"points\":
+ false,\n \"renderer\": \"flot\",\n \"seriesOverrides\": [],\n \"spaceLength\":
+ 10,\n \"stack\": false,\n \"steppedLine\": false,\n \"targets\":
+ [\n {\n \"expr\": \"histogram_quantile(0.50, sum(irate(istio_response_bytes_bucket{reporter=\\\"destination\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_workload=~\\\"$workload\\\",
+ destination_workload_namespace=~\\\"$namespace\\\", source_workload=~\\\"$srcwl\\\",
+ source_workload_namespace=~\\\"$srcns\\\"}[1m])) by (source_workload, source_workload_namespace,
+ le))\",\n \"format\": \"time_series\",\n \"hide\": false,\n
+ \ \"intervalFactor\": 1,\n \"legendFormat\": \"{{source_workload}}.{{source_workload_namespace}}
+ P50 (\U0001F510mTLS)\",\n \"refId\": \"D\",\n \"step\": 2\n
+ \ },\n {\n \"expr\": \"histogram_quantile(0.90, sum(irate(istio_response_bytes_bucket{reporter=\\\"destination\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_workload=~\\\"$workload\\\",
+ destination_workload_namespace=~\\\"$namespace\\\", source_workload=~\\\"$srcwl\\\",
+ source_workload_namespace=~\\\"$srcns\\\"}[1m])) by (source_workload, source_workload_namespace,
+ le))\",\n \"format\": \"time_series\",\n \"hide\": false,\n
+ \ \"intervalFactor\": 1,\n \"legendFormat\": \"{{source_workload}}.{{source_workload_namespace}}
+ \ P90 (\U0001F510mTLS)\",\n \"refId\": \"A\",\n \"step\": 2\n
+ \ },\n {\n \"expr\": \"histogram_quantile(0.95, sum(irate(istio_response_bytes_bucket{reporter=\\\"destination\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_workload=~\\\"$workload\\\",
+ destination_workload_namespace=~\\\"$namespace\\\", source_workload=~\\\"$srcwl\\\",
+ source_workload_namespace=~\\\"$srcns\\\"}[1m])) by (source_workload, source_workload_namespace,
+ le))\",\n \"format\": \"time_series\",\n \"hide\": false,\n
+ \ \"intervalFactor\": 1,\n \"legendFormat\": \"{{source_workload}}.{{source_workload_namespace}}
+ P95 (\U0001F510mTLS)\",\n \"refId\": \"B\",\n \"step\": 2\n
+ \ },\n {\n \"expr\": \"histogram_quantile(0.99, sum(irate(istio_response_bytes_bucket{reporter=\\\"destination\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_workload=~\\\"$workload\\\",
+ destination_workload_namespace=~\\\"$namespace\\\", source_workload=~\\\"$srcwl\\\",
+ source_workload_namespace=~\\\"$srcns\\\"}[1m])) by (source_workload, source_workload_namespace,
+ le))\",\n \"format\": \"time_series\",\n \"hide\": false,\n
+ \ \"intervalFactor\": 1,\n \"legendFormat\": \"{{source_workload}}.{{source_workload_namespace}}
+ \ P99 (\U0001F510mTLS)\",\n \"refId\": \"C\",\n \"step\": 2\n
+ \ },\n {\n \"expr\": \"histogram_quantile(0.50, sum(irate(istio_response_bytes_bucket{reporter=\\\"destination\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", destination_workload=~\\\"$workload\\\",
+ destination_workload_namespace=~\\\"$namespace\\\", source_workload=~\\\"$srcwl\\\",
+ source_workload_namespace=~\\\"$srcns\\\"}[1m])) by (source_workload, source_workload_namespace,
+ le))\",\n \"format\": \"time_series\",\n \"hide\": false,\n
+ \ \"intervalFactor\": 1,\n \"legendFormat\": \"{{source_workload}}.{{source_workload_namespace}}
+ P50\",\n \"refId\": \"E\",\n \"step\": 2\n },\n {\n
+ \ \"expr\": \"histogram_quantile(0.90, sum(irate(istio_response_bytes_bucket{reporter=\\\"destination\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", destination_workload=~\\\"$workload\\\",
+ destination_workload_namespace=~\\\"$namespace\\\", source_workload=~\\\"$srcwl\\\",
+ source_workload_namespace=~\\\"$srcns\\\"}[1m])) by (source_workload, source_workload_namespace,
+ le))\",\n \"format\": \"time_series\",\n \"hide\": false,\n
+ \ \"intervalFactor\": 1,\n \"legendFormat\": \"{{source_workload}}.{{source_workload_namespace}}
+ P90\",\n \"refId\": \"F\",\n \"step\": 2\n },\n {\n
+ \ \"expr\": \"histogram_quantile(0.95, sum(irate(istio_response_bytes_bucket{reporter=\\\"destination\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", destination_workload=~\\\"$workload\\\",
+ destination_workload_namespace=~\\\"$namespace\\\", source_workload=~\\\"$srcwl\\\",
+ source_workload_namespace=~\\\"$srcns\\\"}[1m])) by (source_workload, source_workload_namespace,
+ le))\",\n \"format\": \"time_series\",\n \"hide\": false,\n
+ \ \"intervalFactor\": 1,\n \"legendFormat\": \"{{source_workload}}.{{source_workload_namespace}}
+ P95\",\n \"refId\": \"G\",\n \"step\": 2\n },\n {\n
+ \ \"expr\": \"histogram_quantile(0.99, sum(irate(istio_response_bytes_bucket{reporter=\\\"destination\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", destination_workload=~\\\"$workload\\\",
+ destination_workload_namespace=~\\\"$namespace\\\", source_workload=~\\\"$srcwl\\\",
+ source_workload_namespace=~\\\"$srcns\\\"}[1m])) by (source_workload, source_workload_namespace,
+ le))\",\n \"format\": \"time_series\",\n \"hide\": false,\n
+ \ \"intervalFactor\": 1,\n \"legendFormat\": \"{{source_workload}}.{{source_workload_namespace}}
+ P99\",\n \"refId\": \"H\",\n \"step\": 2\n }\n ],\n
+ \ \"thresholds\": [],\n \"timeFrom\": null,\n \"timeShift\": null,\n
+ \ \"title\": \"Response Size By Source\",\n \"tooltip\": {\n \"shared\":
+ true,\n \"sort\": 0,\n \"value_type\": \"individual\"\n },\n
+ \ \"type\": \"graph\",\n \"xaxis\": {\n \"buckets\": null,\n \"mode\":
+ \"time\",\n \"name\": null,\n \"show\": true,\n \"values\":
+ []\n },\n \"yaxes\": [\n {\n \"format\": \"decbytes\",\n
+ \ \"label\": null,\n \"logBase\": 1,\n \"max\": null,\n
+ \ \"min\": \"0\",\n \"show\": true\n },\n {\n \"format\":
+ \"short\",\n \"label\": null,\n \"logBase\": 1,\n \"max\":
+ null,\n \"min\": null,\n \"show\": false\n }\n ]\n
+ \ },\n {\n \"aliasColors\": {},\n \"bars\": false,\n \"dashLength\":
+ 10,\n \"dashes\": false,\n \"datasource\": \"Prometheus\",\n \"fill\":
+ 1,\n \"gridPos\": {\n \"h\": 6,\n \"w\": 12,\n \"x\":
+ 0,\n \"y\": 26\n },\n \"id\": 80,\n \"legend\": {\n \"avg\":
+ false,\n \"current\": false,\n \"max\": false,\n \"min\":
+ false,\n \"show\": true,\n \"total\": false,\n \"values\":
+ false\n },\n \"lines\": true,\n \"linewidth\": 1,\n \"links\":
+ [],\n \"nullPointMode\": \"null\",\n \"percentage\": false,\n \"pointradius\":
+ 5,\n \"points\": false,\n \"renderer\": \"flot\",\n \"seriesOverrides\":
+ [],\n \"spaceLength\": 10,\n \"stack\": false,\n \"steppedLine\":
+ false,\n \"targets\": [\n {\n \"expr\": \"round(sum(irate(istio_tcp_received_bytes_total{reporter=\\\"destination\\\",
+ connection_security_policy=\\\"mutual_tls\\\", destination_workload_namespace=~\\\"$namespace\\\",
+ destination_workload=~\\\"$workload\\\", source_workload=~\\\"$srcwl\\\", source_workload_namespace=~\\\"$srcns\\\"}[1m]))
+ by (source_workload, source_workload_namespace), 0.001)\",\n \"format\":
+ \"time_series\",\n \"hide\": false,\n \"intervalFactor\": 1,\n
+ \ \"legendFormat\": \"{{ source_workload }}.{{ source_workload_namespace}}
+ (\U0001F510mTLS)\",\n \"refId\": \"A\",\n \"step\": 2\n },\n
+ \ {\n \"expr\": \"round(sum(irate(istio_tcp_received_bytes_total{reporter=\\\"destination\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", destination_workload_namespace=~\\\"$namespace\\\",
+ destination_workload=~\\\"$workload\\\", source_workload=~\\\"$srcwl\\\", source_workload_namespace=~\\\"$srcns\\\"}[1m]))
+ by (source_workload, source_workload_namespace), 0.001)\",\n \"format\":
+ \"time_series\",\n \"intervalFactor\": 1,\n \"legendFormat\":
+ \"{{ source_workload }}.{{ source_workload_namespace}}\",\n \"refId\":
+ \"B\",\n \"step\": 2\n }\n ],\n \"thresholds\": [],\n
+ \ \"timeFrom\": null,\n \"timeShift\": null,\n \"title\": \"Bytes
+ Received from Incoming TCP Connection\",\n \"tooltip\": {\n \"shared\":
+ true,\n \"sort\": 0,\n \"value_type\": \"individual\"\n },\n
+ \ \"type\": \"graph\",\n \"xaxis\": {\n \"buckets\": null,\n \"mode\":
+ \"time\",\n \"name\": null,\n \"show\": true,\n \"values\":
+ []\n },\n \"yaxes\": [\n {\n \"format\": \"Bps\",\n
+ \ \"label\": null,\n \"logBase\": 1,\n \"max\": null,\n
+ \ \"min\": \"0\",\n \"show\": true\n },\n {\n \"format\":
+ \"short\",\n \"label\": null,\n \"logBase\": 1,\n \"max\":
+ null,\n \"min\": null,\n \"show\": true\n }\n ]\n
+ \ },\n {\n \"aliasColors\": {},\n \"bars\": false,\n \"dashLength\":
+ 10,\n \"dashes\": false,\n \"datasource\": \"Prometheus\",\n \"fill\":
+ 1,\n \"gridPos\": {\n \"h\": 6,\n \"w\": 12,\n \"x\":
+ 12,\n \"y\": 26\n },\n \"id\": 82,\n \"legend\": {\n \"avg\":
+ false,\n \"current\": false,\n \"max\": false,\n \"min\":
+ false,\n \"show\": true,\n \"total\": false,\n \"values\":
+ false\n },\n \"lines\": true,\n \"linewidth\": 1,\n \"links\":
+ [],\n \"nullPointMode\": \"null\",\n \"percentage\": false,\n \"pointradius\":
+ 5,\n \"points\": false,\n \"renderer\": \"flot\",\n \"seriesOverrides\":
+ [],\n \"spaceLength\": 10,\n \"stack\": false,\n \"steppedLine\":
+ false,\n \"targets\": [\n {\n \"expr\": \"round(sum(irate(istio_tcp_sent_bytes_total{connection_security_policy=\\\"mutual_tls\\\",
+ reporter=\\\"destination\\\", destination_workload_namespace=~\\\"$namespace\\\",
+ destination_workload=~\\\"$workload\\\", source_workload=~\\\"$srcwl\\\", source_workload_namespace=~\\\"$srcns\\\"}[1m]))
+ by (source_workload, source_workload_namespace), 0.001)\",\n \"format\":
+ \"time_series\",\n \"intervalFactor\": 1,\n \"legendFormat\":
+ \"{{ source_workload }}.{{ source_workload_namespace}} (\U0001F510mTLS)\",\n \"refId\":
+ \"A\",\n \"step\": 2\n },\n {\n \"expr\": \"round(sum(irate(istio_tcp_sent_bytes_total{connection_security_policy!=\\\"mutual_tls\\\",
+ reporter=\\\"destination\\\", destination_workload_namespace=~\\\"$namespace\\\",
+ destination_workload=~\\\"$workload\\\", source_workload=~\\\"$srcwl\\\", source_workload_namespace=~\\\"$srcns\\\"}[1m]))
+ by (source_workload, source_workload_namespace), 0.001)\",\n \"format\":
+ \"time_series\",\n \"intervalFactor\": 1,\n \"legendFormat\":
+ \"{{ source_workload }}.{{ source_workload_namespace}}\",\n \"refId\":
+ \"B\",\n \"step\": 2\n }\n ],\n \"thresholds\": [],\n
+ \ \"timeFrom\": null,\n \"timeShift\": null,\n \"title\": \"Bytes
+ Sent to Incoming TCP Connection\",\n \"tooltip\": {\n \"shared\":
+ true,\n \"sort\": 0,\n \"value_type\": \"individual\"\n },\n
+ \ \"type\": \"graph\",\n \"xaxis\": {\n \"buckets\": null,\n \"mode\":
+ \"time\",\n \"name\": null,\n \"show\": true,\n \"values\":
+ []\n },\n \"yaxes\": [\n {\n \"format\": \"Bps\",\n
+ \ \"label\": null,\n \"logBase\": 1,\n \"max\": null,\n
+ \ \"min\": \"0\",\n \"show\": true\n },\n {\n \"format\":
+ \"short\",\n \"label\": null,\n \"logBase\": 1,\n \"max\":
+ null,\n \"min\": null,\n \"show\": true\n }\n ]\n
+ \ },\n {\n \"content\": \"\",\n \"gridPos\": {\n \"h\": 3,\n \"w\":
+ 24,\n \"x\": 0,\n \"y\": 32\n },\n \"id\": 69,\n \"links\":
+ [],\n \"mode\": \"html\",\n \"title\": \"\",\n \"transparent\":
+ true,\n \"type\": \"text\"\n },\n {\n \"aliasColors\": {},\n \"bars\":
+ false,\n \"dashLength\": 10,\n \"dashes\": false,\n \"datasource\":
+ \"Prometheus\",\n \"fill\": 0,\n \"gridPos\": {\n \"h\": 6,\n
+ \ \"w\": 12,\n \"x\": 0,\n \"y\": 35\n },\n \"id\":
+ 70,\n \"legend\": {\n \"avg\": false,\n \"current\": false,\n
+ \ \"hideEmpty\": true,\n \"max\": false,\n \"min\": false,\n
+ \ \"show\": true,\n \"total\": false,\n \"values\": false\n
+ \ },\n \"lines\": true,\n \"linewidth\": 1,\n \"links\": [],\n
+ \ \"nullPointMode\": \"null as zero\",\n \"percentage\": false,\n \"pointradius\":
+ 5,\n \"points\": false,\n \"renderer\": \"flot\",\n \"seriesOverrides\":
+ [],\n \"spaceLength\": 10,\n \"stack\": false,\n \"steppedLine\":
+ false,\n \"targets\": [\n {\n \"expr\": \"round(sum(irate(istio_requests_total{connection_security_policy=\\\"mutual_tls\\\",
+ source_workload_namespace=~\\\"$namespace\\\", source_workload=~\\\"$workload\\\",
+ reporter=\\\"source\\\", destination_service=~\\\"$dstsvc\\\"}[5m])) by (destination_service,
+ response_code), 0.001)\",\n \"format\": \"time_series\",\n \"intervalFactor\":
+ 1,\n \"legendFormat\": \"{{ destination_service }} : {{ response_code
+ }} (\U0001F510mTLS)\",\n \"refId\": \"B\",\n \"step\": 2\n },\n
+ \ {\n \"expr\": \"round(sum(irate(istio_requests_total{connection_security_policy!=\\\"mutual_tls\\\",
+ source_workload_namespace=~\\\"$namespace\\\", source_workload=~\\\"$workload\\\",
+ reporter=\\\"source\\\", destination_service=~\\\"$dstsvc\\\"}[5m])) by (destination_service,
+ response_code), 0.001)\",\n \"format\": \"time_series\",\n \"hide\":
+ false,\n \"intervalFactor\": 1,\n \"legendFormat\": \"{{ destination_service
+ }} : {{ response_code }}\",\n \"refId\": \"A\",\n \"step\":
+ 2\n }\n ],\n \"thresholds\": [],\n \"timeFrom\": null,\n
+ \ \"timeShift\": null,\n \"title\": \"Outgoing Requests by Destination
+ And Response Code\",\n \"tooltip\": {\n \"shared\": false,\n \"sort\":
+ 0,\n \"value_type\": \"individual\"\n },\n \"type\": \"graph\",\n
+ \ \"xaxis\": {\n \"buckets\": null,\n \"mode\": \"time\",\n
+ \ \"name\": null,\n \"show\": true,\n \"values\": [\n \"total\"\n
+ \ ]\n },\n \"yaxes\": [\n {\n \"format\": \"ops\",\n
+ \ \"label\": null,\n \"logBase\": 1,\n \"max\": null,\n
+ \ \"min\": \"0\",\n \"show\": true\n },\n {\n \"format\":
+ \"short\",\n \"label\": null,\n \"logBase\": 1,\n \"max\":
+ null,\n \"min\": null,\n \"show\": false\n }\n ]\n
+ \ },\n {\n \"aliasColors\": {},\n \"bars\": false,\n \"dashLength\":
+ 10,\n \"dashes\": false,\n \"datasource\": \"Prometheus\",\n \"fill\":
+ 1,\n \"gridPos\": {\n \"h\": 6,\n \"w\": 12,\n \"x\":
+ 12,\n \"y\": 35\n },\n \"id\": 71,\n \"legend\": {\n \"avg\":
+ false,\n \"current\": false,\n \"hideEmpty\": true,\n \"hideZero\":
+ false,\n \"max\": false,\n \"min\": false,\n \"show\": true,\n
+ \ \"total\": false,\n \"values\": false\n },\n \"lines\":
+ true,\n \"linewidth\": 1,\n \"links\": [],\n \"nullPointMode\":
+ \"null\",\n \"percentage\": false,\n \"pointradius\": 5,\n \"points\":
+ false,\n \"renderer\": \"flot\",\n \"seriesOverrides\": [],\n \"spaceLength\":
+ 10,\n \"stack\": false,\n \"steppedLine\": false,\n \"targets\":
+ [\n {\n \"expr\": \"sum(irate(istio_requests_total{reporter=\\\"source\\\",
+ connection_security_policy=\\\"mutual_tls\\\", source_workload_namespace=~\\\"$namespace\\\",
+ source_workload=~\\\"$workload\\\",response_code!~\\\"5.*\\\", destination_service=~\\\"$dstsvc\\\"}[5m]))
+ by (destination_service) / sum(irate(istio_requests_total{reporter=\\\"source\\\",
+ connection_security_policy=\\\"mutual_tls\\\", source_workload_namespace=~\\\"$namespace\\\",
+ source_workload=~\\\"$workload\\\", destination_service=~\\\"$dstsvc\\\"}[5m]))
+ by (destination_service)\",\n \"format\": \"time_series\",\n \"hide\":
+ false,\n \"intervalFactor\": 1,\n \"legendFormat\": \"{{ destination_service
+ }} (\U0001F510mTLS)\",\n \"refId\": \"A\",\n \"step\": 2\n },\n
+ \ {\n \"expr\": \"sum(irate(istio_requests_total{reporter=\\\"source\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", source_workload_namespace=~\\\"$namespace\\\",
+ source_workload=~\\\"$workload\\\",response_code!~\\\"5.*\\\", destination_service=~\\\"$dstsvc\\\"}[5m]))
+ by (destination_service) / sum(irate(istio_requests_total{reporter=\\\"source\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", source_workload_namespace=~\\\"$namespace\\\",
+ source_workload=~\\\"$workload\\\", destination_service=~\\\"$dstsvc\\\"}[5m]))
+ by (destination_service)\",\n \"format\": \"time_series\",\n \"hide\":
+ false,\n \"intervalFactor\": 1,\n \"legendFormat\": \"{{destination_service
+ }}\",\n \"refId\": \"B\",\n \"step\": 2\n }\n ],\n
+ \ \"thresholds\": [],\n \"timeFrom\": null,\n \"timeShift\": null,\n
+ \ \"title\": \"Outgoing Success Rate (non-5xx responses) By Destination\",\n
+ \ \"tooltip\": {\n \"shared\": true,\n \"sort\": 0,\n \"value_type\":
+ \"individual\"\n },\n \"type\": \"graph\",\n \"xaxis\": {\n \"buckets\":
+ null,\n \"mode\": \"time\",\n \"name\": null,\n \"show\":
+ true,\n \"values\": []\n },\n \"yaxes\": [\n {\n \"format\":
+ \"percentunit\",\n \"label\": null,\n \"logBase\": 1,\n \"max\":
+ \"1.01\",\n \"min\": \"0\",\n \"show\": true\n },\n {\n
+ \ \"format\": \"short\",\n \"label\": null,\n \"logBase\":
+ 1,\n \"max\": null,\n \"min\": null,\n \"show\": false\n
+ \ }\n ]\n },\n {\n \"aliasColors\": {},\n \"bars\":
+ false,\n \"dashLength\": 10,\n \"dashes\": false,\n \"datasource\":
+ \"Prometheus\",\n \"description\": \"\",\n \"fill\": 1,\n \"gridPos\":
+ {\n \"h\": 6,\n \"w\": 8,\n \"x\": 0,\n \"y\": 41\n
+ \ },\n \"id\": 72,\n \"legend\": {\n \"alignAsTable\": false,\n
+ \ \"avg\": false,\n \"current\": false,\n \"hideEmpty\": true,\n
+ \ \"hideZero\": false,\n \"max\": false,\n \"min\": false,\n
+ \ \"rightSide\": false,\n \"show\": true,\n \"total\": false,\n
+ \ \"values\": false\n },\n \"lines\": true,\n \"linewidth\":
+ 1,\n \"links\": [],\n \"nullPointMode\": \"null\",\n \"percentage\":
+ false,\n \"pointradius\": 5,\n \"points\": false,\n \"renderer\":
+ \"flot\",\n \"seriesOverrides\": [],\n \"spaceLength\": 10,\n \"stack\":
+ false,\n \"steppedLine\": false,\n \"targets\": [\n {\n \"expr\":
+ \"(histogram_quantile(0.50, sum(irate(istio_request_duration_milliseconds_bucket{reporter=\\\"source\\\",
+ connection_security_policy=\\\"mutual_tls\\\", source_workload=~\\\"$workload\\\",
+ source_workload_namespace=~\\\"$namespace\\\", destination_service=~\\\"$dstsvc\\\"}[1m]))
+ by (destination_service, le)) / 1000) or histogram_quantile(0.50, sum(irate(istio_request_duration_seconds_bucket{reporter=\\\"source\\\",
+ connection_security_policy=\\\"mutual_tls\\\", source_workload=~\\\"$workload\\\",
+ source_workload_namespace=~\\\"$namespace\\\", destination_service=~\\\"$dstsvc\\\"}[1m]))
+ by (destination_service, le))\",\n \"format\": \"time_series\",\n \"hide\":
+ false,\n \"intervalFactor\": 1,\n \"legendFormat\": \"{{ destination_service
+ }} P50 (\U0001F510mTLS)\",\n \"refId\": \"D\",\n \"step\": 2\n
+ \ },\n {\n \"expr\": \"(histogram_quantile(0.90, sum(irate(istio_request_duration_milliseconds_bucket{reporter=\\\"source\\\",
+ connection_security_policy=\\\"mutual_tls\\\", source_workload=~\\\"$workload\\\",
+ source_workload_namespace=~\\\"$namespace\\\", destination_service=~\\\"$dstsvc\\\"}[1m]))
+ by (destination_service, le)) / 1000) or histogram_quantile(0.90, sum(irate(istio_request_duration_seconds_bucket{reporter=\\\"source\\\",
+ connection_security_policy=\\\"mutual_tls\\\", source_workload=~\\\"$workload\\\",
+ source_workload_namespace=~\\\"$namespace\\\", destination_service=~\\\"$dstsvc\\\"}[1m]))
+ by (destination_service, le))\",\n \"format\": \"time_series\",\n \"hide\":
+ false,\n \"intervalFactor\": 1,\n \"legendFormat\": \"{{ destination_service
+ }} P90 (\U0001F510mTLS)\",\n \"refId\": \"A\",\n \"step\": 2\n
+ \ },\n {\n \"expr\": \"(histogram_quantile(0.95, sum(irate(istio_request_duration_milliseconds_bucket{reporter=\\\"source\\\",
+ connection_security_policy=\\\"mutual_tls\\\", source_workload=~\\\"$workload\\\",
+ source_workload_namespace=~\\\"$namespace\\\", destination_service=~\\\"$dstsvc\\\"}[1m]))
+ by (destination_service, le)) / 1000) or histogram_quantile(0.95, sum(irate(istio_request_duration_seconds_bucket{reporter=\\\"source\\\",
+ connection_security_policy=\\\"mutual_tls\\\", source_workload=~\\\"$workload\\\",
+ source_workload_namespace=~\\\"$namespace\\\", destination_service=~\\\"$dstsvc\\\"}[1m]))
+ by (destination_service, le))\",\n \"format\": \"time_series\",\n \"hide\":
+ false,\n \"intervalFactor\": 1,\n \"legendFormat\": \"{{ destination_service
+ }} P95 (\U0001F510mTLS)\",\n \"refId\": \"B\",\n \"step\": 2\n
+ \ },\n {\n \"expr\": \"(histogram_quantile(0.99, sum(irate(istio_request_duration_milliseconds_bucket{reporter=\\\"source\\\",
+ connection_security_policy=\\\"mutual_tls\\\", source_workload=~\\\"$workload\\\",
+ source_workload_namespace=~\\\"$namespace\\\", destination_service=~\\\"$dstsvc\\\"}[1m]))
+ by (destination_service, le)) / 1000) or histogram_quantile(0.99, sum(irate(istio_request_duration_seconds_bucket{reporter=\\\"source\\\",
+ connection_security_policy=\\\"mutual_tls\\\", source_workload=~\\\"$workload\\\",
+ source_workload_namespace=~\\\"$namespace\\\", destination_service=~\\\"$dstsvc\\\"}[1m]))
+ by (destination_service, le))\",\n \"format\": \"time_series\",\n \"hide\":
+ false,\n \"intervalFactor\": 1,\n \"legendFormat\": \"{{ destination_service
+ }} P99 (\U0001F510mTLS)\",\n \"refId\": \"C\",\n \"step\": 2\n
+ \ },\n {\n \"expr\": \"(histogram_quantile(0.50, sum(irate(istio_request_duration_milliseconds_bucket{reporter=\\\"source\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", source_workload=~\\\"$workload\\\",
+ source_workload_namespace=~\\\"$namespace\\\", destination_service=~\\\"$dstsvc\\\"}[1m]))
+ by (destination_service, le)) / 1000) or histogram_quantile(0.50, sum(irate(istio_request_duration_seconds_bucket{reporter=\\\"source\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", source_workload=~\\\"$workload\\\",
+ source_workload_namespace=~\\\"$namespace\\\", destination_service=~\\\"$dstsvc\\\"}[1m]))
+ by (destination_service, le))\",\n \"format\": \"time_series\",\n \"hide\":
+ false,\n \"intervalFactor\": 1,\n \"legendFormat\": \"{{ destination_service
+ }} P50\",\n \"refId\": \"E\",\n \"step\": 2\n },\n {\n
+ \ \"expr\": \"(histogram_quantile(0.90, sum(irate(istio_request_duration_milliseconds_bucket{reporter=\\\"source\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", source_workload=~\\\"$workload\\\",
+ source_workload_namespace=~\\\"$namespace\\\", destination_service=~\\\"$dstsvc\\\"}[1m]))
+ by (destination_service, le)) / 1000) or histogram_quantile(0.90, sum(irate(istio_request_duration_seconds_bucket{reporter=\\\"source\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", source_workload=~\\\"$workload\\\",
+ source_workload_namespace=~\\\"$namespace\\\", destination_service=~\\\"$dstsvc\\\"}[1m]))
+ by (destination_service, le))\",\n \"format\": \"time_series\",\n \"hide\":
+ false,\n \"intervalFactor\": 1,\n \"legendFormat\": \"{{ destination_service
+ }} P90\",\n \"refId\": \"F\",\n \"step\": 2\n },\n {\n
+ \ \"expr\": \"(histogram_quantile(0.95, sum(irate(istio_request_duration_milliseconds_bucket{reporter=\\\"source\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", source_workload=~\\\"$workload\\\",
+ source_workload_namespace=~\\\"$namespace\\\", destination_service=~\\\"$dstsvc\\\"}[1m]))
+ by (destination_service, le)) / 1000) or histogram_quantile(0.95, sum(irate(istio_request_duration_seconds_bucket{reporter=\\\"source\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", source_workload=~\\\"$workload\\\",
+ source_workload_namespace=~\\\"$namespace\\\", destination_service=~\\\"$dstsvc\\\"}[1m]))
+ by (destination_service, le))\",\n \"format\": \"time_series\",\n \"hide\":
+ false,\n \"intervalFactor\": 1,\n \"legendFormat\": \"{{ destination_service
+ }} P95\",\n \"refId\": \"G\",\n \"step\": 2\n },\n {\n
+ \ \"expr\": \"(histogram_quantile(0.99, sum(irate(istio_request_duration_milliseconds_bucket{reporter=\\\"source\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", source_workload=~\\\"$workload\\\",
+ source_workload_namespace=~\\\"$namespace\\\", destination_service=~\\\"$dstsvc\\\"}[1m]))
+ by (destination_service, le)) / 1000) or histogram_quantile(0.99, sum(irate(istio_request_duration_seconds_bucket{reporter=\\\"source\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", source_workload=~\\\"$workload\\\",
+ source_workload_namespace=~\\\"$namespace\\\", destination_service=~\\\"$dstsvc\\\"}[1m]))
+ by (destination_service, le))\",\n \"format\": \"time_series\",\n \"hide\":
+ false,\n \"intervalFactor\": 1,\n \"legendFormat\": \"{{ destination_service
+ }} P99\",\n \"refId\": \"H\",\n \"step\": 2\n }\n ],\n
+ \ \"thresholds\": [],\n \"timeFrom\": null,\n \"timeShift\": null,\n
+ \ \"title\": \"Outgoing Request Duration by Destination\",\n \"tooltip\":
+ {\n \"shared\": true,\n \"sort\": 0,\n \"value_type\": \"individual\"\n
+ \ },\n \"type\": \"graph\",\n \"xaxis\": {\n \"buckets\":
+ null,\n \"mode\": \"time\",\n \"name\": null,\n \"show\":
+ true,\n \"values\": []\n },\n \"yaxes\": [\n {\n \"format\":
+ \"s\",\n \"label\": null,\n \"logBase\": 1,\n \"max\":
+ null,\n \"min\": \"0\",\n \"show\": true\n },\n {\n
+ \ \"format\": \"short\",\n \"label\": null,\n \"logBase\":
+ 1,\n \"max\": null,\n \"min\": null,\n \"show\": false\n
+ \ }\n ]\n },\n {\n \"aliasColors\": {},\n \"bars\":
+ false,\n \"dashLength\": 10,\n \"dashes\": false,\n \"datasource\":
+ \"Prometheus\",\n \"fill\": 1,\n \"gridPos\": {\n \"h\": 6,\n
+ \ \"w\": 8,\n \"x\": 8,\n \"y\": 41\n },\n \"id\":
+ 73,\n \"legend\": {\n \"alignAsTable\": false,\n \"avg\": false,\n
+ \ \"current\": false,\n \"hideEmpty\": true,\n \"max\": false,\n
+ \ \"min\": false,\n \"rightSide\": false,\n \"show\": true,\n
+ \ \"total\": false,\n \"values\": false\n },\n \"lines\":
+ true,\n \"linewidth\": 1,\n \"links\": [],\n \"nullPointMode\":
+ \"null\",\n \"percentage\": false,\n \"pointradius\": 5,\n \"points\":
+ false,\n \"renderer\": \"flot\",\n \"seriesOverrides\": [],\n \"spaceLength\":
+ 10,\n \"stack\": false,\n \"steppedLine\": false,\n \"targets\":
+ [\n {\n \"expr\": \"histogram_quantile(0.50, sum(irate(istio_request_bytes_bucket{reporter=\\\"source\\\",
+ connection_security_policy=\\\"mutual_tls\\\", source_workload=~\\\"$workload\\\",
+ source_workload_namespace=~\\\"$namespace\\\", destination_service=~\\\"$dstsvc\\\"}[1m]))
+ by (destination_service, le))\",\n \"format\": \"time_series\",\n \"hide\":
+ false,\n \"intervalFactor\": 1,\n \"legendFormat\": \"{{ destination_service
+ }} P50 (\U0001F510mTLS)\",\n \"refId\": \"D\",\n \"step\": 2\n
+ \ },\n {\n \"expr\": \"histogram_quantile(0.90, sum(irate(istio_request_bytes_bucket{reporter=\\\"source\\\",
+ connection_security_policy=\\\"mutual_tls\\\", source_workload=~\\\"$workload\\\",
+ source_workload_namespace=~\\\"$namespace\\\", destination_service=~\\\"$dstsvc\\\"}[1m]))
+ by (destination_service, le))\",\n \"format\": \"time_series\",\n \"hide\":
+ false,\n \"intervalFactor\": 1,\n \"legendFormat\": \"{{ destination_service
+ }} P90 (\U0001F510mTLS)\",\n \"refId\": \"A\",\n \"step\": 2\n
+ \ },\n {\n \"expr\": \"histogram_quantile(0.95, sum(irate(istio_request_bytes_bucket{reporter=\\\"source\\\",
+ connection_security_policy=\\\"mutual_tls\\\", source_workload=~\\\"$workload\\\",
+ source_workload_namespace=~\\\"$namespace\\\", destination_service=~\\\"$dstsvc\\\"}[1m]))
+ by (destination_service, le))\",\n \"format\": \"time_series\",\n \"hide\":
+ false,\n \"intervalFactor\": 1,\n \"legendFormat\": \"{{ destination_service
+ }} P95 (\U0001F510mTLS)\",\n \"refId\": \"B\",\n \"step\": 2\n
+ \ },\n {\n \"expr\": \"histogram_quantile(0.99, sum(irate(istio_request_bytes_bucket{reporter=\\\"source\\\",
+ connection_security_policy=\\\"mutual_tls\\\", source_workload=~\\\"$workload\\\",
+ source_workload_namespace=~\\\"$namespace\\\", destination_service=~\\\"$dstsvc\\\"}[1m]))
+ by (destination_service, le))\",\n \"format\": \"time_series\",\n \"hide\":
+ false,\n \"intervalFactor\": 1,\n \"legendFormat\": \"{{ destination_service
+ }} P99 (\U0001F510mTLS)\",\n \"refId\": \"C\",\n \"step\": 2\n
+ \ },\n {\n \"expr\": \"histogram_quantile(0.50, sum(irate(istio_request_bytes_bucket{reporter=\\\"source\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", source_workload=~\\\"$workload\\\",
+ source_workload_namespace=~\\\"$namespace\\\", destination_service=~\\\"$dstsvc\\\"}[1m]))
+ by (destination_service, le))\",\n \"format\": \"time_series\",\n \"hide\":
+ false,\n \"intervalFactor\": 1,\n \"legendFormat\": \"{{ destination_service
+ }} P50\",\n \"refId\": \"E\",\n \"step\": 2\n },\n {\n
+ \ \"expr\": \"histogram_quantile(0.90, sum(irate(istio_request_bytes_bucket{reporter=\\\"source\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", source_workload=~\\\"$workload\\\",
+ source_workload_namespace=~\\\"$namespace\\\", destination_service=~\\\"$dstsvc\\\"}[1m]))
+ by (destination_service, le))\",\n \"format\": \"time_series\",\n \"hide\":
+ false,\n \"intervalFactor\": 1,\n \"legendFormat\": \"{{ destination_service
+ }} P90\",\n \"refId\": \"F\",\n \"step\": 2\n },\n {\n
+ \ \"expr\": \"histogram_quantile(0.95, sum(irate(istio_request_bytes_bucket{reporter=\\\"source\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", source_workload=~\\\"$workload\\\",
+ source_workload_namespace=~\\\"$namespace\\\", destination_service=~\\\"$dstsvc\\\"}[1m]))
+ by (destination_service, le))\",\n \"format\": \"time_series\",\n \"hide\":
+ false,\n \"intervalFactor\": 1,\n \"legendFormat\": \"{{ destination_service
+ }} P95\",\n \"refId\": \"G\",\n \"step\": 2\n },\n {\n
+ \ \"expr\": \"histogram_quantile(0.99, sum(irate(istio_request_bytes_bucket{reporter=\\\"source\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", source_workload=~\\\"$workload\\\",
+ source_workload_namespace=~\\\"$namespace\\\", destination_service=~\\\"$dstsvc\\\"}[1m]))
+ by (destination_service, le))\",\n \"format\": \"time_series\",\n \"hide\":
+ false,\n \"intervalFactor\": 1,\n \"legendFormat\": \"{{ destination_service
+ }} P99\",\n \"refId\": \"H\",\n \"step\": 2\n }\n ],\n
+ \ \"thresholds\": [],\n \"timeFrom\": null,\n \"timeShift\": null,\n
+ \ \"title\": \"Outgoing Request Size By Destination\",\n \"tooltip\":
+ {\n \"shared\": true,\n \"sort\": 0,\n \"value_type\": \"individual\"\n
+ \ },\n \"type\": \"graph\",\n \"xaxis\": {\n \"buckets\":
+ null,\n \"mode\": \"time\",\n \"name\": null,\n \"show\":
+ true,\n \"values\": []\n },\n \"yaxes\": [\n {\n \"format\":
+ \"decbytes\",\n \"label\": null,\n \"logBase\": 1,\n \"max\":
+ null,\n \"min\": \"0\",\n \"show\": true\n },\n {\n
+ \ \"format\": \"short\",\n \"label\": null,\n \"logBase\":
+ 1,\n \"max\": null,\n \"min\": null,\n \"show\": false\n
+ \ }\n ]\n },\n {\n \"aliasColors\": {},\n \"bars\":
+ false,\n \"dashLength\": 10,\n \"dashes\": false,\n \"datasource\":
+ \"Prometheus\",\n \"fill\": 1,\n \"gridPos\": {\n \"h\": 6,\n
+ \ \"w\": 8,\n \"x\": 16,\n \"y\": 41\n },\n \"id\":
+ 74,\n \"legend\": {\n \"alignAsTable\": false,\n \"avg\": false,\n
+ \ \"current\": false,\n \"hideEmpty\": true,\n \"max\": false,\n
+ \ \"min\": false,\n \"rightSide\": false,\n \"show\": true,\n
+ \ \"total\": false,\n \"values\": false\n },\n \"lines\":
+ true,\n \"linewidth\": 1,\n \"links\": [],\n \"nullPointMode\":
+ \"null\",\n \"percentage\": false,\n \"pointradius\": 5,\n \"points\":
+ false,\n \"renderer\": \"flot\",\n \"seriesOverrides\": [],\n \"spaceLength\":
+ 10,\n \"stack\": false,\n \"steppedLine\": false,\n \"targets\":
+ [\n {\n \"expr\": \"histogram_quantile(0.50, sum(irate(istio_response_bytes_bucket{reporter=\\\"source\\\",
+ connection_security_policy=\\\"mutual_tls\\\", source_workload=~\\\"$workload\\\",
+ source_workload_namespace=~\\\"$namespace\\\", destination_service=~\\\"$dstsvc\\\"}[1m]))
+ by (destination_service, le))\",\n \"format\": \"time_series\",\n \"hide\":
+ false,\n \"intervalFactor\": 1,\n \"legendFormat\": \"{{ destination_service
+ }} P50 (\U0001F510mTLS)\",\n \"refId\": \"D\",\n \"step\": 2\n
+ \ },\n {\n \"expr\": \"histogram_quantile(0.90, sum(irate(istio_response_bytes_bucket{reporter=\\\"source\\\",
+ connection_security_policy=\\\"mutual_tls\\\", source_workload=~\\\"$workload\\\",
+ source_workload_namespace=~\\\"$namespace\\\", destination_service=~\\\"$dstsvc\\\"}[1m]))
+ by (destination_service, le))\",\n \"format\": \"time_series\",\n \"hide\":
+ false,\n \"intervalFactor\": 1,\n \"legendFormat\": \"{{ destination_service
+ }} P90 (\U0001F510mTLS)\",\n \"refId\": \"A\",\n \"step\": 2\n
+ \ },\n {\n \"expr\": \"histogram_quantile(0.95, sum(irate(istio_response_bytes_bucket{reporter=\\\"source\\\",
+ connection_security_policy=\\\"mutual_tls\\\", source_workload=~\\\"$workload\\\",
+ source_workload_namespace=~\\\"$namespace\\\", destination_service=~\\\"$dstsvc\\\"}[1m]))
+ by (destination_service, le))\",\n \"format\": \"time_series\",\n \"hide\":
+ false,\n \"intervalFactor\": 1,\n \"legendFormat\": \"{{ destination_service
+ }} P95 (\U0001F510mTLS)\",\n \"refId\": \"B\",\n \"step\": 2\n
+ \ },\n {\n \"expr\": \"histogram_quantile(0.99, sum(irate(istio_response_bytes_bucket{reporter=\\\"source\\\",
+ connection_security_policy=\\\"mutual_tls\\\", source_workload=~\\\"$workload\\\",
+ source_workload_namespace=~\\\"$namespace\\\", destination_service=~\\\"$dstsvc\\\"}[1m]))
+ by (destination_service, le))\",\n \"format\": \"time_series\",\n \"hide\":
+ false,\n \"intervalFactor\": 1,\n \"legendFormat\": \"{{ destination_service
+ }} P99 (\U0001F510mTLS)\",\n \"refId\": \"C\",\n \"step\":
+ 2\n },\n {\n \"expr\": \"histogram_quantile(0.50, sum(irate(istio_response_bytes_bucket{reporter=\\\"source\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", source_workload=~\\\"$workload\\\",
+ source_workload_namespace=~\\\"$namespace\\\", destination_service=~\\\"$dstsvc\\\"}[1m]))
+ by (destination_service, le))\",\n \"format\": \"time_series\",\n \"hide\":
+ false,\n \"intervalFactor\": 1,\n \"legendFormat\": \"{{ destination_service
+ }} P50\",\n \"refId\": \"E\",\n \"step\": 2\n },\n {\n
+ \ \"expr\": \"histogram_quantile(0.90, sum(irate(istio_response_bytes_bucket{reporter=\\\"source\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", source_workload=~\\\"$workload\\\",
+ source_workload_namespace=~\\\"$namespace\\\", destination_service=~\\\"$dstsvc\\\"}[1m]))
+ by (destination_service, le))\",\n \"format\": \"time_series\",\n \"hide\":
+ false,\n \"intervalFactor\": 1,\n \"legendFormat\": \"{{ destination_service
+ }} P90\",\n \"refId\": \"F\",\n \"step\": 2\n },\n {\n
+ \ \"expr\": \"histogram_quantile(0.95, sum(irate(istio_response_bytes_bucket{reporter=\\\"source\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", source_workload=~\\\"$workload\\\",
+ source_workload_namespace=~\\\"$namespace\\\", destination_service=~\\\"$dstsvc\\\"}[1m]))
+ by (destination_service, le))\",\n \"format\": \"time_series\",\n \"hide\":
+ false,\n \"intervalFactor\": 1,\n \"legendFormat\": \"{{ destination_service
+ }} P95\",\n \"refId\": \"G\",\n \"step\": 2\n },\n {\n
+ \ \"expr\": \"histogram_quantile(0.99, sum(irate(istio_response_bytes_bucket{reporter=\\\"source\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", source_workload=~\\\"$workload\\\",
+ source_workload_namespace=~\\\"$namespace\\\", destination_service=~\\\"$dstsvc\\\"}[1m]))
+ by (destination_service, le))\",\n \"format\": \"time_series\",\n \"hide\":
+ false,\n \"intervalFactor\": 1,\n \"legendFormat\": \"{{ destination_service
+ }} P99\",\n \"refId\": \"H\",\n \"step\": 2\n }\n ],\n
+ \ \"thresholds\": [],\n \"timeFrom\": null,\n \"timeShift\": null,\n
+ \ \"title\": \"Response Size By Destination\",\n \"tooltip\": {\n \"shared\":
+ true,\n \"sort\": 0,\n \"value_type\": \"individual\"\n },\n
+ \ \"type\": \"graph\",\n \"xaxis\": {\n \"buckets\": null,\n \"mode\":
+ \"time\",\n \"name\": null,\n \"show\": true,\n \"values\":
+ []\n },\n \"yaxes\": [\n {\n \"format\": \"decbytes\",\n
+ \ \"label\": null,\n \"logBase\": 1,\n \"max\": null,\n
+ \ \"min\": \"0\",\n \"show\": true\n },\n {\n \"format\":
+ \"short\",\n \"label\": null,\n \"logBase\": 1,\n \"max\":
+ null,\n \"min\": null,\n \"show\": false\n }\n ]\n
+ \ },\n {\n \"aliasColors\": {},\n \"bars\": false,\n \"dashLength\":
+ 10,\n \"dashes\": false,\n \"datasource\": \"Prometheus\",\n \"fill\":
+ 1,\n \"gridPos\": {\n \"h\": 6,\n \"w\": 12,\n \"x\":
+ 0,\n \"y\": 47\n },\n \"id\": 76,\n \"legend\": {\n \"avg\":
+ false,\n \"current\": false,\n \"max\": false,\n \"min\":
+ false,\n \"show\": true,\n \"total\": false,\n \"values\":
+ false\n },\n \"lines\": true,\n \"linewidth\": 1,\n \"links\":
+ [],\n \"nullPointMode\": \"null\",\n \"percentage\": false,\n \"pointradius\":
+ 5,\n \"points\": false,\n \"renderer\": \"flot\",\n \"seriesOverrides\":
+ [],\n \"spaceLength\": 10,\n \"stack\": false,\n \"steppedLine\":
+ false,\n \"targets\": [\n {\n \"expr\": \"round(sum(irate(istio_tcp_sent_bytes_total{connection_security_policy=\\\"mutual_tls\\\",
+ reporter=\\\"source\\\", source_workload_namespace=~\\\"$namespace\\\", source_workload=~\\\"$workload\\\",
+ destination_service=~\\\"$dstsvc\\\"}[1m])) by (destination_service), 0.001)\",\n
+ \ \"format\": \"time_series\",\n \"intervalFactor\": 1,\n \"legendFormat\":
+ \"{{ destination_service }} (\U0001F510mTLS)\",\n \"refId\": \"A\",\n
+ \ \"step\": 2\n },\n {\n \"expr\": \"round(sum(irate(istio_tcp_sent_bytes_total{connection_security_policy!=\\\"mutual_tls\\\",
+ reporter=\\\"source\\\", source_workload_namespace=~\\\"$namespace\\\", source_workload=~\\\"$workload\\\",
+ destination_service=~\\\"$dstsvc\\\"}[1m])) by (destination_service), 0.001)\",\n
+ \ \"format\": \"time_series\",\n \"intervalFactor\": 1,\n \"legendFormat\":
+ \"{{ destination_service }}\",\n \"refId\": \"B\",\n \"step\":
+ 2\n }\n ],\n \"thresholds\": [],\n \"timeFrom\": null,\n
+ \ \"timeShift\": null,\n \"title\": \"Bytes Sent on Outgoing TCP Connection\",\n
+ \ \"tooltip\": {\n \"shared\": true,\n \"sort\": 0,\n \"value_type\":
+ \"individual\"\n },\n \"type\": \"graph\",\n \"xaxis\": {\n \"buckets\":
+ null,\n \"mode\": \"time\",\n \"name\": null,\n \"show\":
+ true,\n \"values\": []\n },\n \"yaxes\": [\n {\n \"format\":
+ \"Bps\",\n \"label\": null,\n \"logBase\": 1,\n \"max\":
+ null,\n \"min\": \"0\",\n \"show\": true\n },\n {\n
+ \ \"format\": \"short\",\n \"label\": null,\n \"logBase\":
+ 1,\n \"max\": null,\n \"min\": null,\n \"show\": true\n
+ \ }\n ]\n },\n {\n \"aliasColors\": {},\n \"bars\":
+ false,\n \"dashLength\": 10,\n \"dashes\": false,\n \"datasource\":
+ \"Prometheus\",\n \"fill\": 1,\n \"gridPos\": {\n \"h\": 6,\n
+ \ \"w\": 12,\n \"x\": 12,\n \"y\": 47\n },\n \"id\":
+ 78,\n \"legend\": {\n \"avg\": false,\n \"current\": false,\n
+ \ \"max\": false,\n \"min\": false,\n \"show\": true,\n \"total\":
+ false,\n \"values\": false\n },\n \"lines\": true,\n \"linewidth\":
+ 1,\n \"links\": [],\n \"nullPointMode\": \"null\",\n \"percentage\":
+ false,\n \"pointradius\": 5,\n \"points\": false,\n \"renderer\":
+ \"flot\",\n \"seriesOverrides\": [],\n \"spaceLength\": 10,\n \"stack\":
+ false,\n \"steppedLine\": false,\n \"targets\": [\n {\n \"expr\":
+ \"round(sum(irate(istio_tcp_received_bytes_total{reporter=\\\"source\\\", connection_security_policy=\\\"mutual_tls\\\",
+ source_workload_namespace=~\\\"$namespace\\\", source_workload=~\\\"$workload\\\",
+ destination_service=~\\\"$dstsvc\\\"}[1m])) by (destination_service), 0.001)\",\n
+ \ \"format\": \"time_series\",\n \"intervalFactor\": 1,\n \"legendFormat\":
+ \"{{ destination_service }} (\U0001F510mTLS)\",\n \"refId\": \"A\",\n
+ \ \"step\": 2\n },\n {\n \"expr\": \"round(sum(irate(istio_tcp_received_bytes_total{reporter=\\\"source\\\",
+ connection_security_policy!=\\\"mutual_tls\\\", source_workload_namespace=~\\\"$namespace\\\",
+ source_workload=~\\\"$workload\\\", destination_service=~\\\"$dstsvc\\\"}[1m]))
+ by (destination_service), 0.001)\",\n \"format\": \"time_series\",\n
+ \ \"intervalFactor\": 1,\n \"legendFormat\": \"{{ destination_service
+ }}\",\n \"refId\": \"B\",\n \"step\": 2\n }\n ],\n
+ \ \"thresholds\": [],\n \"timeFrom\": null,\n \"timeShift\": null,\n
+ \ \"title\": \"Bytes Received from Outgoing TCP Connection\",\n \"tooltip\":
+ {\n \"shared\": true,\n \"sort\": 0,\n \"value_type\": \"individual\"\n
+ \ },\n \"type\": \"graph\",\n \"xaxis\": {\n \"buckets\":
+ null,\n \"mode\": \"time\",\n \"name\": null,\n \"show\":
+ true,\n \"values\": []\n },\n \"yaxes\": [\n {\n \"format\":
+ \"Bps\",\n \"label\": null,\n \"logBase\": 1,\n \"max\":
+ null,\n \"min\": \"0\",\n \"show\": true\n },\n {\n
+ \ \"format\": \"short\",\n \"label\": null,\n \"logBase\":
+ 1,\n \"max\": null,\n \"min\": null,\n \"show\": true\n
+ \ }\n ]\n }\n ],\n \"refresh\": \"10s\",\n \"schemaVersion\":
+ 16,\n \"style\": \"dark\",\n \"tags\": [],\n \"templating\": {\n \"list\":
+ [\n {\n \"allValue\": null,\n \"current\": {},\n \"datasource\":
+ \"Prometheus\",\n \"hide\": 0,\n \"includeAll\": false,\n \"label\":
+ \"Namespace\",\n \"multi\": false,\n \"name\": \"namespace\",\n
+ \ \"options\": [],\n \"query\": \"query_result(sum(istio_requests_total)
+ by (destination_workload_namespace) or sum(istio_tcp_sent_bytes_total) by (destination_workload_namespace))\",\n
+ \ \"refresh\": 1,\n \"regex\": \"/.*_namespace=\\\"([^\\\"]*).*/\",\n
+ \ \"sort\": 0,\n \"tagValuesQuery\": \"\",\n \"tags\": [],\n
+ \ \"tagsQuery\": \"\",\n \"type\": \"query\",\n \"useTags\":
+ false\n },\n {\n \"allValue\": null,\n \"current\": {},\n
+ \ \"datasource\": \"Prometheus\",\n \"hide\": 0,\n \"includeAll\":
+ false,\n \"label\": \"Workload\",\n \"multi\": false,\n \"name\":
+ \"workload\",\n \"options\": [],\n \"query\": \"query_result((sum(istio_requests_total{destination_workload_namespace=~\\\"$namespace\\\"})
+ by (destination_workload) or sum(istio_requests_total{source_workload_namespace=~\\\"$namespace\\\"})
+ by (source_workload)) or (sum(istio_tcp_sent_bytes_total{destination_workload_namespace=~\\\"$namespace\\\"})
+ by (destination_workload) or sum(istio_tcp_sent_bytes_total{source_workload_namespace=~\\\"$namespace\\\"})
+ by (source_workload)))\",\n \"refresh\": 1,\n \"regex\": \"/.*workload=\\\"([^\\\"]*).*/\",\n
+ \ \"sort\": 1,\n \"tagValuesQuery\": \"\",\n \"tags\": [],\n
+ \ \"tagsQuery\": \"\",\n \"type\": \"query\",\n \"useTags\":
+ false\n },\n {\n \"allValue\": null,\n \"current\": {},\n
+ \ \"datasource\": \"Prometheus\",\n \"hide\": 0,\n \"includeAll\":
+ true,\n \"label\": \"Inbound Workload Namespace\",\n \"multi\":
+ true,\n \"name\": \"srcns\",\n \"options\": [],\n \"query\":
+ \"query_result( sum(istio_requests_total{reporter=\\\"destination\\\", destination_workload=\\\"$workload\\\",
+ destination_workload_namespace=~\\\"$namespace\\\"}) by (source_workload_namespace)
+ or sum(istio_tcp_sent_bytes_total{reporter=\\\"destination\\\", destination_workload=\\\"$workload\\\",
+ destination_workload_namespace=~\\\"$namespace\\\"}) by (source_workload_namespace))\",\n
+ \ \"refresh\": 1,\n \"regex\": \"/.*namespace=\\\"([^\\\"]*).*/\",\n
+ \ \"sort\": 2,\n \"tagValuesQuery\": \"\",\n \"tags\": [],\n
+ \ \"tagsQuery\": \"\",\n \"type\": \"query\",\n \"useTags\":
+ false\n },\n {\n \"allValue\": null,\n \"current\": {},\n
+ \ \"datasource\": \"Prometheus\",\n \"hide\": 0,\n \"includeAll\":
+ true,\n \"label\": \"Inbound Workload\",\n \"multi\": true,\n \"name\":
+ \"srcwl\",\n \"options\": [],\n \"query\": \"query_result( sum(istio_requests_total{reporter=\\\"destination\\\",
+ destination_workload=\\\"$workload\\\", destination_workload_namespace=~\\\"$namespace\\\",
+ source_workload_namespace=~\\\"$srcns\\\"}) by (source_workload) or sum(istio_tcp_sent_bytes_total{reporter=\\\"destination\\\",
+ destination_workload=\\\"$workload\\\", destination_workload_namespace=~\\\"$namespace\\\",
+ source_workload_namespace=~\\\"$srcns\\\"}) by (source_workload))\",\n \"refresh\":
+ 1,\n \"regex\": \"/.*workload=\\\"([^\\\"]*).*/\",\n \"sort\": 3,\n
+ \ \"tagValuesQuery\": \"\",\n \"tags\": [],\n \"tagsQuery\":
+ \"\",\n \"type\": \"query\",\n \"useTags\": false\n },\n {\n
+ \ \"allValue\": null,\n \"current\": {},\n \"datasource\":
+ \"Prometheus\",\n \"hide\": 0,\n \"includeAll\": true,\n \"label\":
+ \"Destination Service\",\n \"multi\": true,\n \"name\": \"dstsvc\",\n
+ \ \"options\": [],\n \"query\": \"query_result( sum(istio_requests_total{reporter=\\\"source\\\",
+ source_workload=~\\\"$workload\\\", source_workload_namespace=~\\\"$namespace\\\"})
+ by (destination_service) or sum(istio_tcp_sent_bytes_total{reporter=\\\"source\\\",
+ source_workload=~\\\"$workload\\\", source_workload_namespace=~\\\"$namespace\\\"})
+ by (destination_service))\",\n \"refresh\": 1,\n \"regex\": \"/.*destination_service=\\\"([^\\\"]*).*/\",\n
+ \ \"sort\": 4,\n \"tagValuesQuery\": \"\",\n \"tags\": [],\n
+ \ \"tagsQuery\": \"\",\n \"type\": \"query\",\n \"useTags\":
+ false\n }\n ]\n },\n \"time\": {\n \"from\": \"now-5m\",\n \"to\":
+ \"now\"\n },\n \"timepicker\": {\n \"refresh_intervals\": [\n \"5s\",\n
+ \ \"10s\",\n \"30s\",\n \"1m\",\n \"5m\",\n \"15m\",\n
+ \ \"30m\",\n \"1h\",\n \"2h\",\n \"1d\"\n ],\n \"time_options\":
+ [\n \"5m\",\n \"15m\",\n \"1h\",\n \"6h\",\n \"12h\",\n
+ \ \"24h\",\n \"2d\",\n \"7d\",\n \"30d\"\n ]\n },\n \"timezone\":
+ \"\",\n \"title\": \"Istio Workload Dashboard\",\n \"uid\": \"UbsSZTDik\",\n
+ \ \"version\": 1\n}\n"
+kind: ConfigMap
+metadata:
+ creationTimestamp: null
+ name: istio-services-grafana-dashboards
+ namespace: istio-system
diff --git a/istio/config_templates/addons/jaeger.yaml b/istio/config_templates/addons/jaeger.yaml
new file mode 100644
index 000000000..5af3f58c2
--- /dev/null
+++ b/istio/config_templates/addons/jaeger.yaml
@@ -0,0 +1,88 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: jaeger
+ namespace: istio-system
+ labels:
+ app: jaeger
+spec:
+ selector:
+ matchLabels:
+ app: jaeger
+ template:
+ metadata:
+ labels:
+ app: jaeger
+ annotations:
+ sidecar.istio.io/inject: "false"
+ prometheus.io/scrape: "true"
+ prometheus.io/port: "14269"
+ spec:
+ containers:
+ - name: jaeger
+ image: "docker.io/jaegertracing/all-in-one:1.18"
+ env:
+ - name: BADGER_EPHEMERAL
+ value: "false"
+ - name: SPAN_STORAGE_TYPE
+ value: "badger"
+ - name: BADGER_DIRECTORY_VALUE
+ value: "/badger/data"
+ - name: BADGER_DIRECTORY_KEY
+ value: "/badger/key"
+ - name: COLLECTOR_ZIPKIN_HTTP_PORT
+ value: "9411"
+ - name: MEMORY_MAX_TRACES
+ value: "50000"
+ - name: QUERY_BASE_PATH
+ value: /jaeger
+ livenessProbe:
+ httpGet:
+ path: /
+ port: 14269
+ readinessProbe:
+ httpGet:
+ path: /
+ port: 14269
+ volumeMounts:
+ - name: data
+ mountPath: /badger
+ resources:
+ requests:
+ cpu: 10m
+ volumes:
+ - name: data
+ emptyDir: {}
+---
+apiVersion: v1
+kind: Service
+metadata:
+ name: tracing
+ namespace: istio-system
+ labels:
+ app: jaeger
+spec:
+ type: LoadBalancer
+ ports:
+ - name: http-query
+ port: 16686
+ protocol: TCP
+ targetPort: 16686
+ selector:
+ app: jaeger
+---
+# Jaeger implements the Zipkin API. To support swapping out the tracing backend, we use a Service named Zipkin.
+apiVersion: v1
+kind: Service
+metadata:
+ labels:
+ name: zipkin
+ name: zipkin
+ namespace: istio-system
+spec:
+ ports:
+ - port: 9411
+ targetPort: 9411
+ name: http-query
+ selector:
+ app: jaeger
diff --git a/istio/config_templates/addons/prometheus.yaml b/istio/config_templates/addons/prometheus.yaml
new file mode 100644
index 000000000..08585de31
--- /dev/null
+++ b/istio/config_templates/addons/prometheus.yaml
@@ -0,0 +1,464 @@
+---
+# Source: prometheus/templates/server-serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ labels:
+ component: "server"
+ app: prometheus
+ release: prometheus
+ chart: prometheus-11.7.0
+ heritage: Helm
+ name: prometheus
+ namespace: istio-system
+ annotations:
+ {}
+---
+# Source: prometheus/templates/server-configmap.yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ labels:
+ component: "server"
+ app: prometheus
+ release: prometheus
+ chart: prometheus-11.7.0
+ heritage: Helm
+ name: prometheus
+ namespace: istio-system
+data:
+ alerting_rules.yml: |
+ {}
+ alerts: |
+ {}
+ prometheus.yml: |
+ global:
+ evaluation_interval: 1m
+ scrape_interval: 15s
+ scrape_timeout: 10s
+ rule_files:
+ - /etc/config/recording_rules.yml
+ - /etc/config/alerting_rules.yml
+ - /etc/config/rules
+ - /etc/config/alerts
+ scrape_configs:
+ - job_name: prometheus
+ static_configs:
+ - targets:
+ - localhost:9090
+ - bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
+ job_name: kubernetes-apiservers
+ kubernetes_sd_configs:
+ - role: endpoints
+ relabel_configs:
+ - action: keep
+ regex: default;kubernetes;https
+ source_labels:
+ - __meta_kubernetes_namespace
+ - __meta_kubernetes_service_name
+ - __meta_kubernetes_endpoint_port_name
+ scheme: https
+ tls_config:
+ ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
+ insecure_skip_verify: true
+ - bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
+ job_name: kubernetes-nodes
+ kubernetes_sd_configs:
+ - role: node
+ relabel_configs:
+ - action: labelmap
+ regex: __meta_kubernetes_node_label_(.+)
+ - replacement: kubernetes.default.svc:443
+ target_label: __address__
+ - regex: (.+)
+ replacement: /api/v1/nodes/$1/proxy/metrics
+ source_labels:
+ - __meta_kubernetes_node_name
+ target_label: __metrics_path__
+ scheme: https
+ tls_config:
+ ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
+ insecure_skip_verify: true
+ - bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
+ job_name: kubernetes-nodes-cadvisor
+ kubernetes_sd_configs:
+ - role: node
+ relabel_configs:
+ - action: labelmap
+ regex: __meta_kubernetes_node_label_(.+)
+ - replacement: kubernetes.default.svc:443
+ target_label: __address__
+ - regex: (.+)
+ replacement: /api/v1/nodes/$1/proxy/metrics/cadvisor
+ source_labels:
+ - __meta_kubernetes_node_name
+ target_label: __metrics_path__
+ scheme: https
+ tls_config:
+ ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
+ insecure_skip_verify: true
+ - job_name: kubernetes-service-endpoints
+ kubernetes_sd_configs:
+ - role: endpoints
+ relabel_configs:
+ - action: keep
+ regex: true
+ source_labels:
+ - __meta_kubernetes_service_annotation_prometheus_io_scrape
+ - action: replace
+ regex: (https?)
+ source_labels:
+ - __meta_kubernetes_service_annotation_prometheus_io_scheme
+ target_label: __scheme__
+ - action: replace
+ regex: (.+)
+ source_labels:
+ - __meta_kubernetes_service_annotation_prometheus_io_path
+ target_label: __metrics_path__
+ - action: replace
+ regex: ([^:]+)(?::\d+)?;(\d+)
+ replacement: $1:$2
+ source_labels:
+ - __address__
+ - __meta_kubernetes_service_annotation_prometheus_io_port
+ target_label: __address__
+ - action: labelmap
+ regex: __meta_kubernetes_service_label_(.+)
+ - action: replace
+ source_labels:
+ - __meta_kubernetes_namespace
+ target_label: kubernetes_namespace
+ - action: replace
+ source_labels:
+ - __meta_kubernetes_service_name
+ target_label: kubernetes_name
+ - action: replace
+ source_labels:
+ - __meta_kubernetes_pod_node_name
+ target_label: kubernetes_node
+ - job_name: kubernetes-service-endpoints-slow
+ kubernetes_sd_configs:
+ - role: endpoints
+ relabel_configs:
+ - action: keep
+ regex: true
+ source_labels:
+ - __meta_kubernetes_service_annotation_prometheus_io_scrape_slow
+ - action: replace
+ regex: (https?)
+ source_labels:
+ - __meta_kubernetes_service_annotation_prometheus_io_scheme
+ target_label: __scheme__
+ - action: replace
+ regex: (.+)
+ source_labels:
+ - __meta_kubernetes_service_annotation_prometheus_io_path
+ target_label: __metrics_path__
+ - action: replace
+ regex: ([^:]+)(?::\d+)?;(\d+)
+ replacement: $1:$2
+ source_labels:
+ - __address__
+ - __meta_kubernetes_service_annotation_prometheus_io_port
+ target_label: __address__
+ - action: labelmap
+ regex: __meta_kubernetes_service_label_(.+)
+ - action: replace
+ source_labels:
+ - __meta_kubernetes_namespace
+ target_label: kubernetes_namespace
+ - action: replace
+ source_labels:
+ - __meta_kubernetes_service_name
+ target_label: kubernetes_name
+ - action: replace
+ source_labels:
+ - __meta_kubernetes_pod_node_name
+ target_label: kubernetes_node
+ scrape_interval: 5m
+ scrape_timeout: 30s
+ - honor_labels: true
+ job_name: prometheus-pushgateway
+ kubernetes_sd_configs:
+ - role: service
+ relabel_configs:
+ - action: keep
+ regex: pushgateway
+ source_labels:
+ - __meta_kubernetes_service_annotation_prometheus_io_probe
+ - job_name: kubernetes-services
+ kubernetes_sd_configs:
+ - role: service
+ metrics_path: /probe
+ params:
+ module:
+ - http_2xx
+ relabel_configs:
+ - action: keep
+ regex: true
+ source_labels:
+ - __meta_kubernetes_service_annotation_prometheus_io_probe
+ - source_labels:
+ - __address__
+ target_label: __param_target
+ - replacement: blackbox
+ target_label: __address__
+ - source_labels:
+ - __param_target
+ target_label: instance
+ - action: labelmap
+ regex: __meta_kubernetes_service_label_(.+)
+ - source_labels:
+ - __meta_kubernetes_namespace
+ target_label: kubernetes_namespace
+ - source_labels:
+ - __meta_kubernetes_service_name
+ target_label: kubernetes_name
+ - job_name: kubernetes-pods
+ kubernetes_sd_configs:
+ - role: pod
+ relabel_configs:
+ - action: keep
+ regex: true
+ source_labels:
+ - __meta_kubernetes_pod_annotation_prometheus_io_scrape
+ - action: replace
+ regex: (.+)
+ source_labels:
+ - __meta_kubernetes_pod_annotation_prometheus_io_path
+ target_label: __metrics_path__
+ - action: replace
+ regex: ([^:]+)(?::\d+)?;(\d+)
+ replacement: $1:$2
+ source_labels:
+ - __address__
+ - __meta_kubernetes_pod_annotation_prometheus_io_port
+ target_label: __address__
+ - action: labelmap
+ regex: __meta_kubernetes_pod_label_(.+)
+ - action: replace
+ source_labels:
+ - __meta_kubernetes_namespace
+ target_label: kubernetes_namespace
+ - action: replace
+ source_labels:
+ - __meta_kubernetes_pod_name
+ target_label: kubernetes_pod_name
+ - job_name: kubernetes-pods-slow
+ kubernetes_sd_configs:
+ - role: pod
+ relabel_configs:
+ - action: keep
+ regex: true
+ source_labels:
+ - __meta_kubernetes_pod_annotation_prometheus_io_scrape_slow
+ - action: replace
+ regex: (.+)
+ source_labels:
+ - __meta_kubernetes_pod_annotation_prometheus_io_path
+ target_label: __metrics_path__
+ - action: replace
+ regex: ([^:]+)(?::\d+)?;(\d+)
+ replacement: $1:$2
+ source_labels:
+ - __address__
+ - __meta_kubernetes_pod_annotation_prometheus_io_port
+ target_label: __address__
+ - action: labelmap
+ regex: __meta_kubernetes_pod_label_(.+)
+ - action: replace
+ source_labels:
+ - __meta_kubernetes_namespace
+ target_label: kubernetes_namespace
+ - action: replace
+ source_labels:
+ - __meta_kubernetes_pod_name
+ target_label: kubernetes_pod_name
+ scrape_interval: 5m
+ scrape_timeout: 30s
+ recording_rules.yml: |
+ {}
+ rules: |
+ {}
+---
+# Source: prometheus/templates/server-clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1beta1
+kind: ClusterRole
+metadata:
+ labels:
+ component: "server"
+ app: prometheus
+ release: prometheus
+ chart: prometheus-11.7.0
+ heritage: Helm
+ name: prometheus
+rules:
+ - apiGroups:
+ - ""
+ resources:
+ - nodes
+ - nodes/proxy
+ - nodes/metrics
+ - services
+ - endpoints
+ - pods
+ - ingresses
+ - configmaps
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - "extensions"
+ - "networking.k8s.io"
+ resources:
+ - ingresses/status
+ - ingresses
+ verbs:
+ - get
+ - list
+ - watch
+ - nonResourceURLs:
+ - "/metrics"
+ verbs:
+ - get
+---
+# Source: prometheus/templates/server-clusterrolebinding.yaml
+apiVersion: rbac.authorization.k8s.io/v1beta1
+kind: ClusterRoleBinding
+metadata:
+ labels:
+ component: "server"
+ app: prometheus
+ release: prometheus
+ chart: prometheus-11.7.0
+ heritage: Helm
+ name: prometheus
+subjects:
+ - kind: ServiceAccount
+ name: prometheus
+ namespace: istio-system
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: prometheus
+---
+# Source: prometheus/templates/server-service.yaml
+apiVersion: v1
+kind: Service
+metadata:
+ labels:
+ component: "server"
+ app: prometheus
+ release: prometheus
+ chart: prometheus-11.7.0
+ heritage: Helm
+ name: prometheus
+ namespace: istio-system
+spec:
+ ports:
+ - name: http
+ port: 9090
+ protocol: TCP
+ targetPort: 9090
+ selector:
+ component: "server"
+ app: prometheus
+ release: prometheus
+ sessionAffinity: None
+ type: "LoadBalancer"
+---
+# Source: prometheus/templates/server-deployment.yaml
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ labels:
+ component: "server"
+ app: prometheus
+ release: prometheus
+ chart: prometheus-11.7.0
+ heritage: Helm
+ name: prometheus
+ namespace: istio-system
+spec:
+ selector:
+ matchLabels:
+ component: "server"
+ app: prometheus
+ release: prometheus
+ replicas: 1
+ template:
+ metadata:
+ labels:
+ component: "server"
+ app: prometheus
+ release: prometheus
+ chart: prometheus-11.7.0
+ heritage: Helm
+ spec:
+ serviceAccountName: prometheus
+ containers:
+ - name: prometheus-server-configmap-reload
+ image: "jimmidyson/configmap-reload:v0.3.0"
+ imagePullPolicy: "IfNotPresent"
+ args:
+ - --volume-dir=/etc/config
+ - --webhook-url=http://127.0.0.1:9090/-/reload
+ resources:
+ {}
+ volumeMounts:
+ - name: config-volume
+ mountPath: /etc/config
+ readOnly: true
+
+ - name: prometheus-server
+ image: "prom/prometheus:v2.19.0"
+ imagePullPolicy: "IfNotPresent"
+ args:
+ - --storage.tsdb.retention.time=15d
+ - --config.file=/etc/config/prometheus.yml
+ - --storage.tsdb.path=/data
+ - --web.console.libraries=/etc/prometheus/console_libraries
+ - --web.console.templates=/etc/prometheus/consoles
+ - --web.enable-lifecycle
+ ports:
+ - containerPort: 9090
+ readinessProbe:
+ httpGet:
+ path: /-/ready
+ port: 9090
+ initialDelaySeconds: 0
+ periodSeconds: 5
+ timeoutSeconds: 30
+ failureThreshold: 3
+ successThreshold: 1
+ livenessProbe:
+ httpGet:
+ path: /-/healthy
+ port: 9090
+ initialDelaySeconds: 30
+ periodSeconds: 15
+ timeoutSeconds: 30
+ failureThreshold: 3
+ successThreshold: 1
+ resources:
+ {}
+ volumeMounts:
+ - name: config-volume
+ mountPath: /etc/config
+ - name: storage-volume
+ mountPath: /data
+ subPath: ""
+ securityContext:
+ fsGroup: 65534
+ runAsGroup: 65534
+ runAsNonRoot: true
+ runAsUser: 65534
+ terminationGracePeriodSeconds: 300
+ volumes:
+ - name: config-volume
+ configMap:
+ name: prometheus
+ - name: storage-volume
+ emptyDir:
+ {}
diff --git a/istio/config_templates/addons/zipkin.yaml b/istio/config_templates/addons/zipkin.yaml
new file mode 100644
index 000000000..b868175a4
--- /dev/null
+++ b/istio/config_templates/addons/zipkin.yaml
@@ -0,0 +1,56 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: zipkin
+ namespace: istio-system
+ labels:
+ app: zipkin
+spec:
+ selector:
+ matchLabels:
+ app: zipkin
+ template:
+ metadata:
+ labels:
+ app: zipkin
+ annotations:
+ sidecar.istio.io/inject: "false"
+ spec:
+ containers:
+ - name: zipkin
+ image: openzipkin/zipkin-slim:2.20.0
+ env:
+ - name: STORAGE_METHOD
+ value: "mem"
+---
+apiVersion: v1
+kind: Service
+metadata:
+ name: tracing
+ namespace: istio-system
+ labels:
+ app: zipkin
+spec:
+ type: LoadBalancer
+ ports:
+ - name: http-query
+ port: 9411
+ protocol: TCP
+ targetPort: 9411
+ selector:
+ app: zipkin
+---
+apiVersion: v1
+kind: Service
+metadata:
+ labels:
+ name: zipkin
+ name: zipkin
+ namespace: istio-system
+spec:
+ ports:
+ - port: 9411
+ targetPort: 9411
+ name: http-query
+ selector:
+ app: zipkin
diff --git a/istio/config_templates/bookinfo-dr.yaml b/istio/config_templates/bookinfo-dr.yaml
new file mode 100644
index 000000000..96be6993a
--- /dev/null
+++ b/istio/config_templates/bookinfo-dr.yaml
@@ -0,0 +1,62 @@
+apiVersion: networking.istio.io/v1alpha3
+kind: DestinationRule
+metadata:
+ name: productpage
+spec:
+ host: productpage
+ subsets:
+ - name: v1
+ labels:
+ version: v1
+---
+apiVersion: networking.istio.io/v1alpha3
+kind: DestinationRule
+metadata:
+ name: reviews
+spec:
+ host: reviews
+ subsets:
+ - name: v1
+ labels:
+ version: v1
+ - name: v2
+ labels:
+ version: v2
+ - name: v3
+ labels:
+ version: v3
+---
+apiVersion: networking.istio.io/v1alpha3
+kind: DestinationRule
+metadata:
+ name: ratings
+spec:
+ host: ratings
+ subsets:
+ - name: v1
+ labels:
+ version: v1
+ - name: v2
+ labels:
+ version: v2
+ - name: v2-mysql
+ labels:
+ version: v2-mysql
+ - name: v2-mysql-vm
+ labels:
+ version: v2-mysql-vm
+---
+apiVersion: networking.istio.io/v1alpha3
+kind: DestinationRule
+metadata:
+ name: details
+spec:
+ host: details
+ subsets:
+ - name: v1
+ labels:
+ version: v1
+ - name: v2
+ labels:
+ version: v2
+---
diff --git a/istio/config_templates/mtls/deny-all.yaml b/istio/config_templates/mtls/deny-all.yaml
new file mode 100644
index 000000000..32ddb6928
--- /dev/null
+++ b/istio/config_templates/mtls/deny-all.yaml
@@ -0,0 +1,6 @@
+apiVersion: security.istio.io/v1beta1
+kind: AuthorizationPolicy
+metadata:
+ name: deny-all
+spec:
+ {}
\ No newline at end of file
diff --git a/istio/config_templates/mtls/disable.yaml b/istio/config_templates/mtls/disable.yaml
new file mode 100644
index 000000000..fccbfa542
--- /dev/null
+++ b/istio/config_templates/mtls/disable.yaml
@@ -0,0 +1,7 @@
+apiVersion: security.istio.io/v1beta1
+kind: PeerAuthentication
+metadata:
+ name: disable
+spec:
+ mtls:
+ mode: DISABLE
\ No newline at end of file
diff --git a/istio/config_templates/mtls/permissive.yaml b/istio/config_templates/mtls/permissive.yaml
new file mode 100644
index 000000000..a9d59dffe
--- /dev/null
+++ b/istio/config_templates/mtls/permissive.yaml
@@ -0,0 +1,7 @@
+apiVersion: security.istio.io/v1beta1
+kind: PeerAuthentication
+metadata:
+ name: permissive
+spec:
+ mtls:
+ mode: PERMISSIVE
\ No newline at end of file
diff --git a/istio/config_templates/mtls/strict.yaml b/istio/config_templates/mtls/strict.yaml
new file mode 100644
index 000000000..48137d9cc
--- /dev/null
+++ b/istio/config_templates/mtls/strict.yaml
@@ -0,0 +1,7 @@
+apiVersion: security.istio.io/v1beta1
+kind: PeerAuthentication
+metadata:
+ name: strict
+spec:
+ mtls:
+ mode: STRICT
\ No newline at end of file
diff --git a/istio/install-istio.go b/istio/install-istio.go
index d8a3b19c5..162c9ebf0 100644
--- a/istio/install-istio.go
+++ b/istio/install-istio.go
@@ -32,18 +32,19 @@ const (
var (
localByPassFile = "/tmp/istio.tar.gz"
+ homepath = "/app/istio"
localFile = path.Join(os.TempDir(), "istio.tar.gz")
destinationFolder = path.Join(os.TempDir(), "istio")
- basePath = path.Join(destinationFolder, "%s")
+ basePath = path.Join(destinationFolder, fmt.Sprintf("istio-%s", os.Getenv("ISTIO_VERSION")))
installWithmTLSFile = path.Join(basePath, "install/kubernetes/istio-demo.yaml")
crdFolder = path.Join(basePath, "install/kubernetes/helm/istio-init/files/")
httpbinInstallFile = path.Join(basePath, "samples/httpbin/httpbin.yaml")
httpbinGatewayInstallFile = path.Join(basePath, "samples/httpbin/httpbin-gateway.yaml")
- emojiVotoInstallFile = path.Join(basePath, "istio/config_templates/emojivoto.yaml")
- emojiVotoGatewayInstallFile = path.Join(basePath, "istio/config_templates/emojivoto-gateway.yaml")
+ emojiVotoInstallFile = path.Join(homepath, "config_templates/emojivoto.yaml")
+ emojiVotoGatewayInstallFile = path.Join(homepath, "config_templates/emojivoto-gateway.yaml")
bookInfoGatewayInstallFile = path.Join(basePath, "samples/bookinfo/networking/bookinfo-gateway.yaml")
bookInfoInstallFile = path.Join(basePath, "samples/bookinfo/platform/kube/bookinfo.yaml")
@@ -55,11 +56,11 @@ var (
bookInfoInjectDelayForRatingsForJasonFile = path.Join(basePath, "samples/bookinfo/networking/virtual-service-ratings-test-delay.yaml")
bookInfoInjectHTTPAbortToRatingsForJasonFile = path.Join(basePath, "samples/bookinfo/networking/virtual-service-ratings-test-abort.yaml")
- prometheusInstallFile = path.Join(basePath, "samples/addons/prometheus.yaml")
kialiInstallFile = path.Join(basePath, "samples/addons/kiali.yaml")
- grafanaInstallFile = path.Join(basePath, "samples/addons/grafana.yaml")
- jaegerInstallFile = path.Join(basePath, "samples/addons/jaeger.yaml")
- zipkinInstallFile = path.Join(basePath, "samples/addons/extras/zipkin.yaml")
+ prometheusInstallFile = path.Join(homepath, "config_templates/addons/prometheus.yaml")
+ grafanaInstallFile = path.Join(homepath, "config_templates/addons/grafana.yaml")
+ jaegerInstallFile = path.Join(homepath, "config_templates/addons/jaeger.yaml")
+ zipkinInstallFile = path.Join(homepath, "config_templates/addons/extras/zipkin.yaml")
operatorInstallFile = path.Join(basePath, "samples/addons/extras/prometheus-operator.yaml")
)
@@ -140,6 +141,11 @@ func (iClient *Client) executev173Install(ctx context.Context, arReq *meshes.App
return err
}
+ err = os.Setenv("ISTIO_VERSION", "1.7.3")
+ if err != nil {
+ return err
+ }
+
return nil
}
@@ -404,28 +410,84 @@ func (iClient *Client) getCRDsYAML() ([]string, error) {
return res, nil
}
+func (iClient *Client) getPolicyYaml(template string) (string, error) {
+ fileContents, err := ioutil.ReadFile(fmt.Sprintf("%s/config_templates/mtls/%s", homepath, template))
+ if err != nil {
+ err = errors.Wrap(err, "unable to read file")
+ logrus.Error(err)
+ return "", err
+ }
+ return string(fileContents), nil
+}
+
+func (iClient *Client) getBookinfoDrYAML(template string) (string, error) {
+ fileContents, err := ioutil.ReadFile(fmt.Sprintf("%s/config_templates/%s", homepath, template))
+ if err != nil {
+ err = errors.Wrap(err, "unable to read file")
+ logrus.Error(err)
+ return "", err
+ }
+ return string(fileContents), nil
+}
+
func (iClient *Client) getPrometheusYAML() (string, error) {
- return iClient.getIstioComponentYAML(prometheusInstallFile)
+ fileContents, err := ioutil.ReadFile(prometheusInstallFile)
+ if err != nil {
+ err = errors.Wrap(err, "unable to read file")
+ logrus.Error(err)
+ return "", err
+ }
+ return string(fileContents), nil
}
func (iClient *Client) getKialiYAML() (string, error) {
- return iClient.getIstioComponentYAML(kialiInstallFile)
+ fileContents, err := ioutil.ReadFile(kialiInstallFile)
+ if err != nil {
+ err = errors.Wrap(err, "unable to read file")
+ logrus.Error(err)
+ return "", err
+ }
+ return string(fileContents), nil
}
func (iClient *Client) getGrafanaYAML() (string, error) {
- return iClient.getIstioComponentYAML(grafanaInstallFile)
+ fileContents, err := ioutil.ReadFile(grafanaInstallFile)
+ if err != nil {
+ err = errors.Wrap(err, "unable to read file")
+ logrus.Error(err)
+ return "", err
+ }
+ return string(fileContents), nil
}
func (iClient *Client) getJaegerYAML() (string, error) {
- return iClient.getIstioComponentYAML(jaegerInstallFile)
+ fileContents, err := ioutil.ReadFile(jaegerInstallFile)
+ if err != nil {
+ err = errors.Wrap(err, "unable to read file")
+ logrus.Error(err)
+ return "", err
+ }
+ return string(fileContents), nil
}
func (iClient *Client) getZipkinYAML() (string, error) {
- return iClient.getIstioComponentYAML(zipkinInstallFile)
+ fileContents, err := ioutil.ReadFile(zipkinInstallFile)
+ if err != nil {
+ err = errors.Wrap(err, "unable to read file")
+ logrus.Error(err)
+ return "", err
+ }
+ return string(fileContents), nil
}
func (iClient *Client) getOperatorYAML() (string, error) {
- return iClient.getIstioComponentYAML(operatorInstallFile)
+ fileContents, err := ioutil.ReadFile(operatorInstallFile)
+ if err != nil {
+ err = errors.Wrap(err, "unable to read file")
+ logrus.Error(err)
+ return "", err
+ }
+ return string(fileContents), nil
}
func (iClient *Client) getLatestIstioYAML() (string, error) {
@@ -433,27 +495,63 @@ func (iClient *Client) getLatestIstioYAML() (string, error) {
}
func (iClient *Client) getBookInfoAppYAML() (string, error) {
- return iClient.getIstioComponentYAML(bookInfoInstallFile)
+ fileContents, err := ioutil.ReadFile(bookInfoInstallFile)
+ if err != nil {
+ err = errors.Wrap(err, "unable to read file")
+ logrus.Error(err)
+ return "", err
+ }
+ return string(fileContents), nil
}
func (iClient *Client) getBookInfoGatewayYAML() (string, error) {
- return iClient.getIstioComponentYAML(bookInfoGatewayInstallFile)
+ fileContents, err := ioutil.ReadFile(bookInfoGatewayInstallFile)
+ if err != nil {
+ err = errors.Wrap(err, "unable to read file")
+ logrus.Error(err)
+ return "", err
+ }
+ return string(fileContents), nil
}
func (iClient *Client) getHttpbinAppYAML() (string, error) {
- return iClient.getIstioComponentYAML(httpbinInstallFile)
+ fileContents, err := ioutil.ReadFile(httpbinInstallFile)
+ if err != nil {
+ err = errors.Wrap(err, "unable to read file")
+ logrus.Error(err)
+ return "", err
+ }
+ return string(fileContents), nil
}
func (iClient *Client) getHttpbinGatewayYAML() (string, error) {
- return iClient.getIstioComponentYAML(httpbinGatewayInstallFile)
+ fileContents, err := ioutil.ReadFile(httpbinGatewayInstallFile)
+ if err != nil {
+ err = errors.Wrap(err, "unable to read file")
+ logrus.Error(err)
+ return "", err
+ }
+ return string(fileContents), nil
}
func (iClient *Client) getEmojiVotoAppYAML() (string, error) {
- return iClient.getIstioComponentYAML(emojiVotoInstallFile)
+ fileContents, err := ioutil.ReadFile(emojiVotoInstallFile)
+ if err != nil {
+ err = errors.Wrap(err, "unable to read file")
+ logrus.Error(err)
+ return "", err
+ }
+ return string(fileContents), nil
}
func (iClient *Client) getEmojiVotoGatewayYAML() (string, error) {
- return iClient.getIstioComponentYAML(emojiVotoGatewayInstallFile)
+ fileContents, err := ioutil.ReadFile(emojiVotoGatewayInstallFile)
+ if err != nil {
+ err = errors.Wrap(err, "unable to read file")
+ logrus.Error(err)
+ return "", err
+ }
+ return string(fileContents), nil
}
func (iClient *Client) getBookInfoDefaultDesinationRulesYAML() (string, error) {
diff --git a/istio/istio.go b/istio/istio.go
index f11810e00..df249d1d2 100644
--- a/istio/istio.go
+++ b/istio/istio.go
@@ -535,6 +535,66 @@ func (iClient *Client) ApplyOperation(ctx context.Context, arReq *meshes.ApplyRu
isCustomOp := false
switch arReq.OpName {
+ case bookInfoSubsets:
+ go func() {
+ yamlFileContents, err = iClient.getBookinfoDrYAML(op.templateName)
+ if err != nil {
+ return
+ }
+ opName1 := "deploying"
+ if arReq.DeleteOp {
+ opName1 = "removing"
+ }
+ if err := iClient.applyConfigChange(ctx, yamlFileContents, arReq.Namespace, arReq.DeleteOp, isCustomOp); err != nil {
+ iClient.eventChan <- &meshes.EventsResponse{
+ OperationId: arReq.OperationId,
+ EventType: meshes.EventType_ERROR,
+ Summary: fmt.Sprintf("Error while %s \"%s\"", opName1, op.name),
+ Details: err.Error(),
+ }
+ return
+ }
+ opName := "deployed"
+ if arReq.DeleteOp {
+ opName = "removed"
+ }
+ iClient.eventChan <- &meshes.EventsResponse{
+ OperationId: arReq.OperationId,
+ EventType: meshes.EventType_INFO,
+ Summary: fmt.Sprintf("\"%s\" %s successfully", op.name, opName),
+ Details: fmt.Sprintf("\"%s\" %s successfully", op.name, opName),
+ }
+ }()
+ case strictMtls, mutualMtls, disableMtls:
+ go func() {
+ yamlFileContents, err = iClient.getPolicyYaml(op.templateName)
+ if err != nil {
+ return
+ }
+ opName1 := "deploying"
+ if arReq.DeleteOp {
+ opName1 = "removing"
+ }
+ if err := iClient.applyConfigChange(ctx, yamlFileContents, arReq.Namespace, arReq.DeleteOp, isCustomOp); err != nil {
+ iClient.eventChan <- &meshes.EventsResponse{
+ OperationId: arReq.OperationId,
+ EventType: meshes.EventType_ERROR,
+ Summary: fmt.Sprintf("Error while %s \"%s\"", opName1, op.name),
+ Details: err.Error(),
+ }
+ return
+ }
+ opName := "deployed"
+ if arReq.DeleteOp {
+ opName = "removed"
+ }
+ iClient.eventChan <- &meshes.EventsResponse{
+ OperationId: arReq.OperationId,
+ EventType: meshes.EventType_INFO,
+ Summary: fmt.Sprintf("\"%s\" %s successfully", op.name, opName),
+ Details: fmt.Sprintf("\"%s\" %s successfully", op.name, opName),
+ }
+ }()
case enablePrometheus:
go func() {
opName1 := "deploying"
diff --git a/istio/supported_ops.go b/istio/supported_ops.go
index 1d965f86b..8924190cf 100644
--- a/istio/supported_ops.go
+++ b/istio/supported_ops.go
@@ -41,8 +41,8 @@ const (
installEmojiVoto = "install_emojivoto"
// Bookinfo
- installBookInfoCommand = "install_book_info"
- cbCommand = "cb1"
+ installBookInfoCommand = "install_book_info"
+ // cbCommand = "cb1"
googleMSSampleApplication = "google_microservices_demo_application"
bookInfoDefaultDestinationRules = "bookInfoDefaultDestinationRules"
bookInfoRouteToV1AllServices = "bookInfoRouteToV1AllServices"
@@ -52,6 +52,7 @@ const (
bookInfoInjectDelayForRatingsForJason = "bookInfoInjectDelayForRatingsForJason"
bookInfoInjectHTTPAbortToRatingsForJason = "bookInfoInjectHTTPAbortToRatingsForJason"
bookInfoProductPageCircuitBreaking = "bookInfoProductPageCircuitBreaking"
+ bookInfoSubsets = "bookinfo_subsets"
// HTTPbin
installHttpbinCommand = "install_http_bin"
@@ -120,11 +121,11 @@ var supportedOps = map[string]supportedOperation{
// appLabel: "istio-vet",
// returnLogs: true,
},
- cbCommand: {
- name: "httpbin: Configure circuit breaker with only one connection",
- opType: meshes.OpCategory_CONFIGURE,
- templateName: "circuit_breaking.tmpl",
- },
+ // cbCommand: {
+ // name: "httpbin: Configure circuit breaker with only one connection",
+ // opType: meshes.OpCategory_CONFIGURE,
+ // templateName: "circuit_breaking.tmpl",
+ // },
// bookInfoDefaultDestinationRules: {
// name: "BookInfo: Default BookInfo destination rules (defines subsets)",
// opType: meshes.OpCategory_CONFIGURE,
@@ -204,25 +205,30 @@ var supportedOps = map[string]supportedOperation{
opType: meshes.OpCategory_CONFIGURE,
},
denyAllPolicy: {
- name: "Deny-All policy on the namespace",
- opType: meshes.OpCategory_CONFIGURE, // Yet to implement
+ name: "Deny-All policy on the namespace",
+ templateName: "deny-all.yaml",
+ opType: meshes.OpCategory_CONFIGURE,
},
strictMtls: {
- name: "Strict Mtls policy",
- opType: meshes.OpCategory_CONFIGURE, // Yet to implement
+ name: "Strict Mtls policy",
+ templateName: "strict.yaml",
+ opType: meshes.OpCategory_CONFIGURE,
},
mutualMtls: {
- name: "Mutual Mtls policy",
- opType: meshes.OpCategory_CONFIGURE, // Yet to implement
+ name: "Permissive Mtls policy",
+ templateName: "permissive.yaml",
+ opType: meshes.OpCategory_CONFIGURE,
},
disableMtls: {
- name: "Disable Mtls policy",
- opType: meshes.OpCategory_CONFIGURE, // Yet to implement
+ name: "Disable Mtls policy",
+ templateName: "disable.yaml",
+ opType: meshes.OpCategory_CONFIGURE,
+ },
+ bookInfoSubsets: {
+ name: "Bookinfo subsets",
+ templateName: "bookinfo-dr.yaml",
+ opType: meshes.OpCategory_CONFIGURE,
},
- // bookInfoRouteV1ForUser: {
- // name: "Configure bookinfo page to version v1",
- // opType: meshes.OpCategory_CONFIGURE,
- // },
// bookInfoMirrorTrafficToV2: {
// name: "Configure bookinfo page mirror traffic from v1 to v2",
// opType: meshes.OpCategory_CONFIGURE,
diff --git a/scripts/install.sh b/scripts/install.sh
index 2884b5773..82674ed0e 100755
--- a/scripts/install.sh
+++ b/scripts/install.sh
@@ -53,7 +53,7 @@ else
fi
fi
-if ! mv istio-$ISTIO_VERSION /tmp/istio; then
+if ! mv istio-$ISTIO_VERSION /tmp/istio/.; then
exit 11
fi