apiVersion: perses.dev/v1alpha1 kind: PersesDashboard metadata: labels: app.kubernetes.io/component: dashboard app.kubernetes.io/instance: istio-workload-dashboard app.kubernetes.io/name: perses-dashboard app.kubernetes.io/part-of: perses-operator name: istio-workload-dashboard namespace: perses-dev spec: display: name: Istio Workload Dashboard duration: 1h layouts: - kind: Grid spec: display: title: General items: - content: $ref: '#/spec/panels/0_0' height: 3 width: 24 x: 0 "y": 0 - kind: Grid spec: display: title: General (II) items: - content: $ref: '#/spec/panels/1_0' height: 4 width: 8 x: 0 "y": 0 - content: $ref: '#/spec/panels/1_1' height: 4 width: 8 x: 8 "y": 0 - content: $ref: '#/spec/panels/1_2' height: 4 width: 8 x: 16 "y": 0 - kind: Grid spec: display: title: General (III) items: - content: $ref: '#/spec/panels/2_0' height: 4 width: 12 x: 0 "y": 0 - content: $ref: '#/spec/panels/2_1' height: 4 width: 12 x: 12 "y": 0 - kind: Grid spec: display: title: Inbound Workloads items: - content: $ref: '#/spec/panels/3_0' height: 3 width: 24 x: 0 "y": 0 - kind: Grid spec: display: title: Inbound Workloads items: - content: $ref: '#/spec/panels/4_0' height: 6 width: 12 x: 0 "y": 0 - content: $ref: '#/spec/panels/4_1' height: 6 width: 12 x: 12 "y": 0 - kind: Grid spec: display: title: Inbound Workloads (II) items: - content: $ref: '#/spec/panels/5_0' height: 6 width: 8 x: 0 "y": 0 - content: $ref: '#/spec/panels/5_1' height: 6 width: 8 x: 8 "y": 0 - content: $ref: '#/spec/panels/5_2' height: 6 width: 8 x: 16 "y": 0 - kind: Grid spec: display: title: Inbound Workloads (III) items: - content: $ref: '#/spec/panels/6_0' height: 6 width: 12 x: 0 "y": 0 - content: $ref: '#/spec/panels/6_1' height: 6 width: 12 x: 12 "y": 0 - kind: Grid spec: display: title: Outbound Services items: - content: $ref: '#/spec/panels/7_0' height: 3 width: 24 x: 0 "y": 0 - kind: Grid spec: display: title: Outbound Services (II) items: - content: $ref: '#/spec/panels/8_0' height: 6 width: 12 x: 0 "y": 0 - content: $ref: '#/spec/panels/8_1' height: 6 width: 12 x: 12 "y": 0 - kind: Grid spec: display: title: Outbound Services (III) items: - content: $ref: '#/spec/panels/9_0' height: 6 width: 8 x: 0 "y": 0 - content: $ref: '#/spec/panels/9_1' height: 6 width: 8 x: 8 "y": 0 - content: $ref: '#/spec/panels/9_2' height: 6 width: 8 x: 16 "y": 0 - kind: Grid spec: display: title: Outbound Services (IV) items: - content: $ref: '#/spec/panels/10_0' height: 6 width: 12 x: 0 "y": 0 - content: $ref: '#/spec/panels/10_1' height: 6 width: 12 x: 12 "y": 0 panels: "0_0": kind: Panel spec: display: name: WORKLOAD plugin: kind: Markdown spec: text: |-
WORKLOAD: $workload.$namespace
"1_0": kind: Panel spec: display: name: Incoming Request Volume plugin: kind: StatChart spec: calculation: last sparkline: width: 1 thresholds: defaultColor: green mode: absolute steps: - color: green value: 0 - color: red value: 80 queries: - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |- round( sum( irate( istio_requests_total{destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep"}[5m] ) ), 0.001 ) "1_1": kind: Panel spec: display: name: Incoming Success Rate (non-5xx responses) plugin: kind: StatChart spec: calculation: mean format: unit: percent-decimal sparkline: width: 1 thresholds: defaultColor: green mode: absolute steps: - color: rgba(50, 172, 45, 0.97) value: 0 - color: rgba(237, 129, 40, 0.89) value: 95 - color: rgba(245, 54, 54, 0.9) value: 99 queries: - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |2- sum( irate( istio_requests_total{destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep",response_code!~"5.*"}[5m] ) ) / sum( irate( istio_requests_total{destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep"}[5m] ) ) "1_2": kind: Panel spec: display: name: Request Duration plugin: kind: TimeSeriesChart spec: legend: mode: list position: right visual: areaOpacity: 0.1 display: line lineWidth: 1 palette: mode: auto yAxis: format: unit: seconds queries: - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |2- histogram_quantile( 0.5, sum by (le) ( irate( istio_request_duration_milliseconds_bucket{destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep"}[1m] ) ) ) / 1000 or histogram_quantile( 0.5, sum by (le) ( irate( istio_request_duration_seconds_bucket{destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep"}[1m] ) ) ) seriesNameFormat: P50 - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |2- histogram_quantile( 0.9, sum by (le) ( irate( istio_request_duration_milliseconds_bucket{destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep"}[1m] ) ) ) / 1000 or histogram_quantile( 0.9, sum by (le) ( irate( istio_request_duration_seconds_bucket{destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep"}[1m] ) ) ) seriesNameFormat: P90 - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |2- histogram_quantile( 0.99, sum by (le) ( irate( istio_request_duration_milliseconds_bucket{destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep"}[1m] ) ) ) / 1000 or histogram_quantile( 0.99, sum by (le) ( irate( istio_request_duration_seconds_bucket{destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep"}[1m] ) ) ) seriesNameFormat: P99 "2_0": kind: Panel spec: display: name: TCP Server Traffic plugin: kind: StatChart spec: calculation: mean format: unit: bytes/sec sparkline: width: 1 thresholds: defaultColor: green mode: absolute steps: - color: green value: 0 - color: red value: 80 queries: - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |2- sum( irate( istio_tcp_sent_bytes_total{destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep"}[1m] ) ) + sum( irate( istio_tcp_received_bytes_total{destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep"}[1m] ) ) "2_1": kind: Panel spec: display: name: TCP Client Traffic plugin: kind: StatChart spec: calculation: mean format: unit: bytes/sec sparkline: width: 1 thresholds: defaultColor: green mode: absolute steps: - color: green value: 0 - color: red value: 80 queries: - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |2- sum( irate( istio_tcp_sent_bytes_total{reporter="source",source_workload=~"$workload",source_workload_namespace=~"$namespace"}[1m] ) ) + sum( irate( istio_tcp_received_bytes_total{reporter="source",source_workload=~"$workload",source_workload_namespace=~"$namespace"}[1m] ) ) "3_0": kind: Panel spec: display: name: INBOUND WORKLOADS plugin: kind: Markdown spec: text: |-
INBOUND WORKLOADS
"4_0": kind: Panel spec: display: description: Request volume to workload by source name: Incoming Requests By Source And Response Code plugin: kind: TimeSeriesChart spec: legend: mode: list position: bottom visual: areaOpacity: 0.5 display: line lineWidth: 0.25 palette: mode: auto yAxis: format: unit: requests/sec queries: - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |- round( sum by (source_workload, source_workload_namespace, response_code) ( irate( istio_requests_total{connection_security_policy="mutual_tls",destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep",source_workload=~"$srcwl",source_workload_namespace=~"$srcns"}[1m] ) ), 0.001 ) seriesNameFormat: "{{ source_workload }}.{{ source_workload_namespace }} : {{ response_code }} (\U0001F510mTLS)" - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |- round( sum by (source_workload, source_workload_namespace, response_code) ( irate( istio_requests_total{connection_security_policy!="mutual_tls",destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep",source_workload=~"$srcwl",source_workload_namespace=~"$srcns"}[1m] ) ), 0.001 ) seriesNameFormat: '{{ source_workload }}.{{ source_workload_namespace }} : {{ response_code }}' "4_1": kind: Panel spec: display: description: Success rate of requests to workload by source name: Incoming Success Rate (non-5xx responses) By Source plugin: kind: TimeSeriesChart spec: legend: mode: list position: bottom visual: areaOpacity: 0.5 display: line lineWidth: 0.25 palette: mode: auto yAxis: format: unit: percent max: 1 queries: - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |2- sum by (source_workload, source_workload_namespace) ( irate( istio_requests_total{connection_security_policy="mutual_tls",destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep",response_code!~"5.*",source_workload=~"$srcwl",source_workload_namespace=~"$srcns"}[5m] ) ) / sum by (source_workload, source_workload_namespace) ( irate( istio_requests_total{connection_security_policy="mutual_tls",destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep",source_workload=~"$srcwl",source_workload_namespace=~"$srcns"}[5m] ) ) seriesNameFormat: "{{ source_workload }}.{{ source_workload_namespace }} (\U0001F510mTLS)" - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |2- sum by (source_workload, source_workload_namespace) ( irate( istio_requests_total{connection_security_policy!="mutual_tls",destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep",response_code!~"5.*",source_workload=~"$srcwl",source_workload_namespace=~"$srcns"}[5m] ) ) / sum by (source_workload, source_workload_namespace) ( irate( istio_requests_total{connection_security_policy!="mutual_tls",destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep",source_workload=~"$srcwl",source_workload_namespace=~"$srcns"}[5m] ) ) seriesNameFormat: '{{ source_workload }}.{{ source_workload_namespace }}' "5_0": kind: Panel spec: display: description: Request duration percentiles for workload name: Incoming Request Duration By Source plugin: kind: TimeSeriesChart spec: legend: mode: list position: bottom visual: areaOpacity: 0.5 display: line lineWidth: 0.25 palette: mode: auto yAxis: format: unit: milliseconds queries: - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |2- histogram_quantile( 0.5, sum by (source_workload, source_workload_namespace, le) ( irate( istio_request_duration_milliseconds_bucket{connection_security_policy="mutual_tls",destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep",source_workload=~"$srcwl",source_workload_namespace=~"$srcns"}[1m] ) ) ) / 1000 or histogram_quantile( 0.5, sum by (source_workload, source_workload_namespace, le) ( irate( istio_request_duration_seconds_bucket{connection_security_policy="mutual_tls",destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep",source_workload=~"$srcwl",source_workload_namespace=~"$srcns"}[1m] ) ) ) seriesNameFormat: "{{source_workload}}.{{source_workload_namespace}} P50 (\U0001F510mTLS)" - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |2- histogram_quantile( 0.9, sum by (source_workload, source_workload_namespace, le) ( irate( istio_request_duration_milliseconds_bucket{connection_security_policy="mutual_tls",destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep",source_workload=~"$srcwl",source_workload_namespace=~"$srcns"}[1m] ) ) ) / 1000 or histogram_quantile( 0.9, sum by (source_workload, source_workload_namespace, le) ( irate( istio_request_duration_seconds_bucket{connection_security_policy="mutual_tls",destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep",source_workload=~"$srcwl",source_workload_namespace=~"$srcns"}[1m] ) ) ) seriesNameFormat: "{{source_workload}}.{{source_workload_namespace}} P90 (\U0001F510mTLS)" - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |2- histogram_quantile( 0.95, sum by (source_workload, source_workload_namespace, le) ( irate( istio_request_duration_milliseconds_bucket{connection_security_policy="mutual_tls",destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep",source_workload=~"$srcwl",source_workload_namespace=~"$srcns"}[1m] ) ) ) / 1000 or histogram_quantile( 0.95, sum by (source_workload, source_workload_namespace, le) ( irate( istio_request_duration_seconds_bucket{connection_security_policy="mutual_tls",destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep",source_workload=~"$srcwl",source_workload_namespace=~"$srcns"}[1m] ) ) ) seriesNameFormat: "{{source_workload}}.{{source_workload_namespace}} P95 (\U0001F510mTLS)" - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |2- histogram_quantile( 0.99, sum by (source_workload, source_workload_namespace, le) ( irate( istio_request_duration_milliseconds_bucket{connection_security_policy="mutual_tls",destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep",source_workload=~"$srcwl",source_workload_namespace=~"$srcns"}[1m] ) ) ) / 1000 or histogram_quantile( 0.99, sum by (source_workload, source_workload_namespace, le) ( irate( istio_request_duration_seconds_bucket{connection_security_policy="mutual_tls",destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep",source_workload=~"$srcwl",source_workload_namespace=~"$srcns"}[1m] ) ) ) seriesNameFormat: "{{source_workload}}.{{source_workload_namespace}} P99 (\U0001F510mTLS)" - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |2- histogram_quantile( 0.5, sum by (source_workload, source_workload_namespace, le) ( irate( istio_request_duration_milliseconds_bucket{connection_security_policy!="mutual_tls",destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep",source_workload=~"$srcwl",source_workload_namespace=~"$srcns"}[1m] ) ) ) / 1000 or histogram_quantile( 0.5, sum by (source_workload, source_workload_namespace, le) ( irate( istio_request_duration_seconds_bucket{connection_security_policy!="mutual_tls",destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep",source_workload=~"$srcwl",source_workload_namespace=~"$srcns"}[1m] ) ) ) seriesNameFormat: '{{source_workload}}.{{source_workload_namespace}} P50' - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |2- histogram_quantile( 0.9, sum by (source_workload, source_workload_namespace, le) ( irate( istio_request_duration_milliseconds_bucket{connection_security_policy!="mutual_tls",destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep",source_workload=~"$srcwl",source_workload_namespace=~"$srcns"}[1m] ) ) ) / 1000 or histogram_quantile( 0.9, sum by (source_workload, source_workload_namespace, le) ( irate( istio_request_duration_seconds_bucket{connection_security_policy!="mutual_tls",destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep",source_workload=~"$srcwl",source_workload_namespace=~"$srcns"}[1m] ) ) ) seriesNameFormat: '{{source_workload}}.{{source_workload_namespace}} P90' - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |2- histogram_quantile( 0.95, sum by (source_workload, source_workload_namespace, le) ( irate( istio_request_duration_milliseconds_bucket{connection_security_policy!="mutual_tls",destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep",source_workload=~"$srcwl",source_workload_namespace=~"$srcns"}[1m] ) ) ) / 1000 or histogram_quantile( 0.95, sum by (source_workload, source_workload_namespace, le) ( irate( istio_request_duration_seconds_bucket{connection_security_policy!="mutual_tls",destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep",source_workload=~"$srcwl",source_workload_namespace=~"$srcns"}[1m] ) ) ) seriesNameFormat: '{{source_workload}}.{{source_workload_namespace}} P95' - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |2- histogram_quantile( 0.99, sum by (source_workload, source_workload_namespace, le) ( irate( istio_request_duration_milliseconds_bucket{connection_security_policy!="mutual_tls",destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep",source_workload=~"$srcwl",source_workload_namespace=~"$srcns"}[1m] ) ) ) / 1000 or histogram_quantile( 0.99, sum by (source_workload, source_workload_namespace, le) ( irate( istio_request_duration_seconds_bucket{connection_security_policy!="mutual_tls",destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep",source_workload=~"$srcwl",source_workload_namespace=~"$srcns"}[1m] ) ) ) seriesNameFormat: '{{source_workload}}.{{source_workload_namespace}} P99' "5_1": kind: Panel spec: display: name: Incoming Request Size By Source plugin: kind: TimeSeriesChart spec: legend: mode: list position: bottom visual: areaOpacity: 0.1 display: line lineWidth: 1 palette: mode: auto yAxis: format: unit: bytes queries: - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |- histogram_quantile( 0.5, sum by (source_workload, source_workload_namespace, le) ( irate( istio_request_bytes_bucket{connection_security_policy="mutual_tls",destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep",source_workload=~"$srcwl",source_workload_namespace=~"$srcns"}[1m] ) ) ) seriesNameFormat: "{{source_workload}}.{{source_workload_namespace}} P50 (\U0001F510mTLS)" - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |- histogram_quantile( 0.9, sum by (source_workload, source_workload_namespace, le) ( irate( istio_request_bytes_bucket{connection_security_policy="mutual_tls",destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep",source_workload=~"$srcwl",source_workload_namespace=~"$srcns"}[1m] ) ) ) seriesNameFormat: "{{source_workload}}.{{source_workload_namespace}} \ P90 (\U0001F510mTLS)" - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |- histogram_quantile( 0.95, sum by (source_workload, source_workload_namespace, le) ( irate( istio_request_bytes_bucket{connection_security_policy="mutual_tls",destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep",source_workload=~"$srcwl",source_workload_namespace=~"$srcns"}[1m] ) ) ) seriesNameFormat: "{{source_workload}}.{{source_workload_namespace}} P95 (\U0001F510mTLS)" - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |- histogram_quantile( 0.99, sum by (source_workload, source_workload_namespace, le) ( irate( istio_request_bytes_bucket{connection_security_policy="mutual_tls",destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep",source_workload=~"$srcwl",source_workload_namespace=~"$srcns"}[1m] ) ) ) seriesNameFormat: "{{source_workload}}.{{source_workload_namespace}} \ P99 (\U0001F510mTLS)" - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |- histogram_quantile( 0.99, sum by (source_workload, source_workload_namespace, le) ( irate( istio_request_bytes_bucket{connection_security_policy="mutual_tls",destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep",source_workload=~"$srcwl",source_workload_namespace=~"$srcns"}[1m] ) ) ) seriesNameFormat: "{{source_workload}}.{{source_workload_namespace}} \ P99 (\U0001F510mTLS)" - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |- histogram_quantile( 0.5, sum by (source_workload, source_workload_namespace, le) ( irate( istio_request_bytes_bucket{connection_security_policy!="mutual_tls",destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep",source_workload=~"$srcwl",source_workload_namespace=~"$srcns"}[1m] ) ) ) seriesNameFormat: '{{source_workload}}.{{source_workload_namespace}} P50' - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |- histogram_quantile( 0.9, sum by (source_workload, source_workload_namespace, le) ( irate( istio_request_bytes_bucket{connection_security_policy!="mutual_tls",destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep",source_workload=~"$srcwl",source_workload_namespace=~"$srcns"}[1m] ) ) ) seriesNameFormat: '{{source_workload}}.{{source_workload_namespace}} P90' - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |- histogram_quantile( 0.95, sum by (source_workload, source_workload_namespace, le) ( irate( istio_request_bytes_bucket{connection_security_policy!="mutual_tls",destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep",source_workload=~"$srcwl",source_workload_namespace=~"$srcns"}[1m] ) ) ) seriesNameFormat: '{{source_workload}}.{{source_workload_namespace}} P95' - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |- histogram_quantile( 0.99, sum by (source_workload, source_workload_namespace, le) ( irate( istio_request_bytes_bucket{connection_security_policy!="mutual_tls",destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep",source_workload=~"$srcwl",source_workload_namespace=~"$srcns"}[1m] ) ) ) seriesNameFormat: '{{source_workload}}.{{source_workload_namespace}} P99' "5_2": kind: Panel spec: display: name: Response Size By Source plugin: kind: TimeSeriesChart spec: legend: mode: list position: bottom visual: areaOpacity: 0.1 display: line lineWidth: 1 palette: mode: auto yAxis: format: unit: bytes queries: - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |- histogram_quantile( 0.5, sum by (source_workload, source_workload_namespace, le) ( irate( istio_response_bytes_bucket{connection_security_policy="mutual_tls",destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep",source_workload=~"$srcwl",source_workload_namespace=~"$srcns"}[1m] ) ) ) seriesNameFormat: "{{source_workload}}.{{source_workload_namespace}} P50 (\U0001F510mTLS)" - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |- histogram_quantile( 0.9, sum by (source_workload, source_workload_namespace, le) ( irate( istio_response_bytes_bucket{connection_security_policy="mutual_tls",destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep",source_workload=~"$srcwl",source_workload_namespace=~"$srcns"}[1m] ) ) ) seriesNameFormat: "{{source_workload}}.{{source_workload_namespace}} \ P90 (\U0001F510mTLS)" - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |- histogram_quantile( 0.95, sum by (source_workload, source_workload_namespace, le) ( irate( istio_response_bytes_bucket{connection_security_policy="mutual_tls",destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep",source_workload=~"$srcwl",source_workload_namespace=~"$srcns"}[1m] ) ) ) seriesNameFormat: "{{source_workload}}.{{source_workload_namespace}} P95 (\U0001F510mTLS)" - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |- histogram_quantile( 0.99, sum by (source_workload, source_workload_namespace, le) ( irate( istio_response_bytes_bucket{connection_security_policy="mutual_tls",destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep",source_workload=~"$srcwl",source_workload_namespace=~"$srcns"}[1m] ) ) ) seriesNameFormat: "{{source_workload}}.{{source_workload_namespace}} \ P99 (\U0001F510mTLS)" - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |- histogram_quantile( 0.5, sum by (source_workload, source_workload_namespace, le) ( irate( istio_response_bytes_bucket{connection_security_policy!="mutual_tls",destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep",source_workload=~"$srcwl",source_workload_namespace=~"$srcns"}[1m] ) ) ) seriesNameFormat: '{{source_workload}}.{{source_workload_namespace}} P50' - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |- histogram_quantile( 0.9, sum by (source_workload, source_workload_namespace, le) ( irate( istio_response_bytes_bucket{connection_security_policy!="mutual_tls",destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep",source_workload=~"$srcwl",source_workload_namespace=~"$srcns"}[1m] ) ) ) seriesNameFormat: '{{source_workload}}.{{source_workload_namespace}} P90' - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |- histogram_quantile( 0.95, sum by (source_workload, source_workload_namespace, le) ( irate( istio_response_bytes_bucket{connection_security_policy!="mutual_tls",destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep",source_workload=~"$srcwl",source_workload_namespace=~"$srcns"}[1m] ) ) ) seriesNameFormat: '{{source_workload}}.{{source_workload_namespace}} P95' - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |- histogram_quantile( 0.99, sum by (source_workload, source_workload_namespace, le) ( irate( istio_response_bytes_bucket{connection_security_policy!="mutual_tls",destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep",source_workload=~"$srcwl",source_workload_namespace=~"$srcns"}[1m] ) ) ) seriesNameFormat: '{{source_workload}}.{{source_workload_namespace}} P99' "6_0": kind: Panel spec: display: name: Bytes Received from Incoming TCP Connection plugin: kind: TimeSeriesChart spec: legend: mode: list position: bottom visual: areaOpacity: 0.1 display: line lineWidth: 1 palette: mode: auto yAxis: format: unit: bytes/sec queries: - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |- round( sum by (source_workload, source_workload_namespace) ( irate( istio_tcp_received_bytes_total{connection_security_policy="mutual_tls",destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep",source_workload=~"$srcwl",source_workload_namespace=~"$srcns"}[$__rate_interval] ) ), 0.001 ) seriesNameFormat: "{{ source_workload }}.{{ source_workload_namespace}} (\U0001F510mTLS)" - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |- round( sum by (source_workload, source_workload_namespace) ( irate( istio_tcp_received_bytes_total{connection_security_policy!="mutual_tls",destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep",source_workload=~"$srcwl",source_workload_namespace=~"$srcns"}[$__rate_interval] ) ), 0.001 ) seriesNameFormat: '{{ source_workload }}.{{ source_workload_namespace}}' "6_1": kind: Panel spec: display: name: Bytes Sent to Incoming TCP Connection plugin: kind: TimeSeriesChart spec: legend: mode: list position: bottom visual: areaOpacity: 0.1 display: line lineWidth: 1 palette: mode: auto yAxis: format: unit: bytes/sec queries: - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |- round( sum by (source_workload, source_workload_namespace) ( irate( istio_tcp_sent_bytes_total{connection_security_policy="mutual_tls",destination_workload=~"$workload",destination_workload_namespace=~"$namespace",reporter=~"$qrep",source_workload=~"$srcwl",source_workload_namespace=~"$srcns"}[$__rate_interval] ) ), 0.001 ) seriesNameFormat: "{{ destination_service }} : {{ response_code }} (\U0001F510mTLS)" - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |- round( sum by (destination_service, response_code) ( irate( istio_requests_total{destination_principal!~"spiffe.*",destination_service=~"$dstsvc",reporter="source",source_workload=~"$workload",source_workload_namespace=~"$namespace"}[5m] ) ), 0.001 ) seriesNameFormat: '{{ destination_service }} : {{ response_code }}' "7_0": kind: Panel spec: display: name: OUTBOUND SERVICES plugin: kind: Markdown spec: text: |-
OUTBOUND SERVICES
"8_0": kind: Panel spec: display: description: Request volume from workload to destinations name: Outgoing Requests By Destination And Response Code plugin: kind: TimeSeriesChart spec: legend: mode: list position: bottom visual: display: line lineWidth: 1 palette: mode: auto yAxis: {} queries: - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |- round( sum by (destination_service, response_code) ( irate( istio_requests_total{destination_principal=~"spiffe.*",destination_service=~"$dstsvc",reporter="source",source_workload=~"$workload",source_workload_namespace=~"$namespace"}[5m] ) ), 0.001 ) seriesNameFormat: "{{ destination_service }} : {{ response_code }} (\U0001F510mTLS)" - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |- round( sum by (destination_service, response_code) ( irate( istio_requests_total{destination_principal!~"spiffe.*",destination_service=~"$dstsvc",reporter="source",source_workload=~"$workload",source_workload_namespace=~"$namespace"}[5m] ) ), 0.001 ) seriesNameFormat: '{{ destination_service }} : {{ response_code }}' "8_1": kind: Panel spec: display: description: Success rate of outgoing requests from workload name: Outgoing Success Rate (non-5xx responses) By Destination plugin: kind: TimeSeriesChart spec: legend: mode: list position: bottom visual: display: line lineWidth: 1 palette: mode: auto yAxis: format: unit: percent max: 1 queries: - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |2- sum by (destination_service) ( irate( istio_requests_total{connection_security_policy="mutual_tls",destination_service=~"$dstsvc",reporter="source",response_code!~"5.*",source_workload=~"$workload",source_workload_namespace=~"$namespace"}[5m] ) ) / sum by (destination_service) ( irate( istio_requests_total{connection_security_policy="mutual_tls",destination_service=~"$dstsvc",reporter="source",source_workload=~"$workload",source_workload_namespace=~"$namespace"}[5m] ) ) seriesNameFormat: "{{ destination_service }} (\U0001F510mTLS)" - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |2- sum by (destination_service) ( irate( istio_requests_total{connection_security_policy!="mutual_tls",destination_service=~"$dstsvc",reporter="source",response_code!~"5.*",source_workload=~"$workload",source_workload_namespace=~"$namespace"}[5m] ) ) / sum by (destination_service) ( irate( istio_requests_total{connection_security_policy!="mutual_tls",destination_service=~"$dstsvc",reporter="source",source_workload=~"$workload",source_workload_namespace=~"$namespace"}[5m] ) ) seriesNameFormat: '{{ destination_service }}' "9_0": kind: Panel spec: display: description: Request volume from workload to destinations name: Outgoing Request Duration By Destination plugin: kind: TimeSeriesChart spec: legend: mode: list position: bottom visual: display: line lineWidth: 1 palette: mode: auto yAxis: {} queries: - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |2- histogram_quantile( 0.5, sum by (destination_service, le) ( irate( istio_request_duration_milliseconds_bucket{connection_security_policy="mutual_tls",destination_service=~"$dstsvc",reporter="source",source_workload=~"$workload",source_workload_namespace=~"$namespace"}[1m] ) ) ) / 1000 or histogram_quantile( 0.5, sum by (destination_service, le) ( irate( istio_request_duration_seconds_bucket{connection_security_policy="mutual_tls",destination_service=~"$dstsvc",reporter="source",source_workload=~"$workload",source_workload_namespace=~"$namespace"}[1m] ) ) ) seriesNameFormat: "{{ destination_service }} P50 (\U0001F510mTLS)" - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |2- histogram_quantile( 0.9, sum by (destination_service, le) ( irate( istio_request_duration_milliseconds_bucket{connection_security_policy="mutual_tls",destination_service=~"$dstsvc",reporter="source",source_workload=~"$workload",source_workload_namespace=~"$namespace"}[1m] ) ) ) / 1000 or histogram_quantile( 0.9, sum by (destination_service, le) ( irate( istio_request_duration_seconds_bucket{connection_security_policy="mutual_tls",destination_service=~"$dstsvc",reporter="source",source_workload=~"$workload",source_workload_namespace=~"$namespace"}[1m] ) ) ) seriesNameFormat: "{{ destination_service }} P90 (\U0001F510mTLS)" - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |2- histogram_quantile( 0.95, sum by (destination_service, le) ( irate( istio_request_duration_milliseconds_bucket{connection_security_policy="mutual_tls",destination_service=~"$dstsvc",reporter="source",source_workload=~"$workload",source_workload_namespace=~"$namespace"}[1m] ) ) ) / 1000 or histogram_quantile( 0.95, sum by (destination_service, le) ( irate( istio_request_duration_seconds_bucket{connection_security_policy="mutual_tls",destination_service=~"$dstsvc",reporter="source",source_workload=~"$workload",source_workload_namespace=~"$namespace"}[1m] ) ) ) seriesNameFormat: "{{ destination_service }} P95 (\U0001F510mTLS)" - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |2- histogram_quantile( 0.99, sum by (destination_service, le) ( irate( istio_request_duration_milliseconds_bucket{connection_security_policy="mutual_tls",destination_service=~"$dstsvc",reporter="source",source_workload=~"$workload",source_workload_namespace=~"$namespace"}[1m] ) ) ) / 1000 or histogram_quantile( 0.99, sum by (destination_service, le) ( irate( istio_request_duration_seconds_bucket{connection_security_policy="mutual_tls",destination_service=~"$dstsvc",reporter="source",source_workload=~"$workload",source_workload_namespace=~"$namespace"}[1m] ) ) ) seriesNameFormat: "{{ destination_service }} P99 (\U0001F510mTLS)" - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |2- histogram_quantile( 0.5, sum by (destination_service, le) ( irate( istio_request_duration_milliseconds_bucket{connection_security_policy!="mutual_tls",destination_service=~"$dstsvc",reporter="source",source_workload=~"$workload",source_workload_namespace=~"$namespace"}[1m] ) ) ) / 1000 or histogram_quantile( 0.5, sum by (destination_service, le) ( irate( istio_request_duration_seconds_bucket{connection_security_policy!="mutual_tls",destination_service=~"$dstsvc",reporter="source",source_workload=~"$workload",source_workload_namespace=~"$namespace"}[1m] ) ) ) seriesNameFormat: '{{ destination_service }} P50' - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |2- histogram_quantile( 0.9, sum by (destination_service, le) ( irate( istio_request_duration_milliseconds_bucket{connection_security_policy!="mutual_tls",destination_service=~"$dstsvc",reporter="source",source_workload=~"$workload",source_workload_namespace=~"$namespace"}[1m] ) ) ) / 1000 or histogram_quantile( 0.9, sum by (destination_service, le) ( irate( istio_request_duration_seconds_bucket{connection_security_policy!="mutual_tls",destination_service=~"$dstsvc",reporter="source",source_workload=~"$workload",source_workload_namespace=~"$namespace"}[1m] ) ) ) seriesNameFormat: '{{ destination_service }} P90' - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |2- histogram_quantile( 0.95, sum by (destination_service, le) ( irate( istio_request_duration_milliseconds_bucket{connection_security_policy!="mutual_tls",destination_service=~"$dstsvc",reporter="source",source_workload=~"$workload",source_workload_namespace=~"$namespace"}[1m] ) ) ) / 1000 or histogram_quantile( 0.95, sum by (destination_service, le) ( irate( istio_request_duration_seconds_bucket{connection_security_policy!="mutual_tls",destination_service=~"$dstsvc",reporter="source",source_workload=~"$workload",source_workload_namespace=~"$namespace"}[1m] ) ) ) seriesNameFormat: '{{ destination_service }} P95' - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |2- histogram_quantile( 0.99, sum by (destination_service, le) ( irate( istio_request_duration_milliseconds_bucket{connection_security_policy!="mutual_tls",destination_service=~"$dstsvc",reporter="source",source_workload=~"$workload",source_workload_namespace=~"$namespace"}[1m] ) ) ) / 1000 or histogram_quantile( 0.99, sum by (destination_service, le) ( irate( istio_request_duration_seconds_bucket{connection_security_policy!="mutual_tls",destination_service=~"$dstsvc",reporter="source",source_workload=~"$workload",source_workload_namespace=~"$namespace"}[1m] ) ) ) seriesNameFormat: '{{ destination_service }} P99' "9_1": kind: Panel spec: display: description: Request volume from workload to destinations name: Outgoing Request Size By Destination plugin: kind: TimeSeriesChart spec: legend: mode: list position: bottom visual: display: line lineWidth: 1 palette: mode: auto yAxis: {} queries: - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |- histogram_quantile( 0.5, sum by (destination_service, le) ( irate( istio_request_bytes_bucket{connection_security_policy="mutual_tls",destination_service=~"$dstsvc",reporter="source",source_workload=~"$workload",source_workload_namespace=~"$namespace"}[1m] ) ) ) seriesNameFormat: "{{ destination_service }} P50 (\U0001F510mTLS)" - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |- histogram_quantile( 0.9, sum by (destination_service, le) ( irate( istio_request_bytes_bucket{connection_security_policy="mutual_tls",destination_service=~"$dstsvc",reporter="source",source_workload=~"$workload",source_workload_namespace=~"$namespace"}[1m] ) ) ) seriesNameFormat: "{{ destination_service }} P90 (\U0001F510mTLS)" - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |- histogram_quantile( 0.95, sum by (destination_service, le) ( irate( istio_request_bytes_bucket{connection_security_policy="mutual_tls",destination_service=~"$dstsvc",reporter="source",source_workload=~"$workload",source_workload_namespace=~"$namespace"}[1m] ) ) ) seriesNameFormat: "{{ destination_service }} P95 (\U0001F510mTLS)" - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |- histogram_quantile( 0.99, sum by (destination_service, le) ( irate( istio_request_bytes_bucket{connection_security_policy="mutual_tls",destination_service=~"$dstsvc",reporter="source",source_workload=~"$workload",source_workload_namespace=~"$namespace"}[1m] ) ) ) seriesNameFormat: "{{ destination_service }} P99 (\U0001F510mTLS)" - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |- histogram_quantile( 0.5, sum by (destination_service, le) ( irate( istio_request_bytes_bucket{connection_security_policy!="mutual_tls",destination_service=~"$dstsvc",reporter="source",source_workload=~"$workload",source_workload_namespace=~"$namespace"}[1m] ) ) ) seriesNameFormat: '{{ destination_service }} P50' - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |- histogram_quantile( 0.9, sum by (destination_service, le) ( irate( istio_request_bytes_bucket{connection_security_policy!="mutual_tls",destination_service=~"$dstsvc",reporter="source",source_workload=~"$workload",source_workload_namespace=~"$namespace"}[1m] ) ) ) seriesNameFormat: '{{ destination_service }} P90' - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |- histogram_quantile( 0.95, sum by (destination_service, le) ( irate( istio_request_bytes_bucket{connection_security_policy!="mutual_tls",destination_service=~"$dstsvc",reporter="source",source_workload=~"$workload",source_workload_namespace=~"$namespace"}[1m] ) ) ) seriesNameFormat: '{{ destination_service }} P95' - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |- histogram_quantile( 0.99, sum by (destination_service, le) ( irate( istio_request_bytes_bucket{connection_security_policy!="mutual_tls",destination_service=~"$dstsvc",reporter="source",source_workload=~"$workload",source_workload_namespace=~"$namespace"}[1m] ) ) ) seriesNameFormat: '{{ destination_service }} P99' "9_2": kind: Panel spec: display: description: Request volume from workload to destinations name: Response Size By Destination plugin: kind: TimeSeriesChart spec: legend: mode: list position: bottom visual: display: line lineWidth: 1 palette: mode: auto yAxis: {} queries: - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |- histogram_quantile( 0.5, sum by (destination_service, le) ( irate( istio_response_bytes_bucket{connection_security_policy="mutual_tls",destination_service=~"$dstsvc",reporter="source",source_workload=~"$workload",source_workload_namespace=~"$namespace"}[1m] ) ) ) seriesNameFormat: "{{ destination_service }} P50 (\U0001F510mTLS)" - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |- histogram_quantile( 0.9, sum by (destination_service, le) ( irate( istio_response_bytes_bucket{connection_security_policy="mutual_tls",destination_service=~"$dstsvc",reporter="source",source_workload=~"$workload",source_workload_namespace=~"$namespace"}[1m] ) ) ) seriesNameFormat: "{{ destination_service }} P90 (\U0001F510mTLS)" - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |- histogram_quantile( 0.95, sum by (destination_service, le) ( irate( istio_response_bytes_bucket{connection_security_policy="mutual_tls",destination_service=~"$dstsvc",reporter="source",source_workload=~"$workload",source_workload_namespace=~"$namespace"}[1m] ) ) ) seriesNameFormat: "{{ destination_service }} P95 (\U0001F510mTLS)" - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |- histogram_quantile( 0.99, sum by (destination_service, le) ( irate( istio_response_bytes_bucket{connection_security_policy="mutual_tls",destination_service=~"$dstsvc",reporter="source",source_workload=~"$workload",source_workload_namespace=~"$namespace"}[1m] ) ) ) seriesNameFormat: "{{ destination_service }} P99 (\U0001F510mTLS)" - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |- histogram_quantile( 0.5, sum by (destination_service, le) ( irate( istio_response_bytes_bucket{connection_security_policy!="mutual_tls",destination_service=~"$dstsvc",reporter="source",source_workload=~"$workload",source_workload_namespace=~"$namespace"}[1m] ) ) ) seriesNameFormat: '{{ destination_service }} P50' - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |- histogram_quantile( 0.9, sum by (destination_service, le) ( irate( istio_response_bytes_bucket{connection_security_policy!="mutual_tls",destination_service=~"$dstsvc",reporter="source",source_workload=~"$workload",source_workload_namespace=~"$namespace"}[1m] ) ) ) seriesNameFormat: '{{ destination_service }} P90' - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |- histogram_quantile( 0.95, sum by (destination_service, le) ( irate( istio_response_bytes_bucket{connection_security_policy!="mutual_tls",destination_service=~"$dstsvc",reporter="source",source_workload=~"$workload",source_workload_namespace=~"$namespace"}[1m] ) ) ) seriesNameFormat: '{{ destination_service }} P95' - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |- histogram_quantile( 0.99, sum by (destination_service, le) ( irate( istio_response_bytes_bucket{connection_security_policy!="mutual_tls",destination_service=~"$dstsvc",reporter="source",source_workload=~"$workload",source_workload_namespace=~"$namespace"}[1m] ) ) ) seriesNameFormat: '{{ destination_service }} P99' "10_0": kind: Panel spec: display: description: TCP bytes sent from workload name: Bytes Sent on Outgoing TCP Connection plugin: kind: TimeSeriesChart spec: legend: mode: list position: bottom visual: areaOpacity: 0.5 display: line lineWidth: 0.25 palette: mode: auto yAxis: format: unit: bytes/sec queries: - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |- round( sum by (destination_service) ( irate( istio_tcp_received_bytes_total{connection_security_policy="mutual_tls",destination_service=~"$dstsvc",reporter="source",source_workload=~"$workload",source_workload_namespace=~"$namespace"}[1m] ) ), 0.001 ) seriesNameFormat: "{{ destination_service }} (\U0001F510mTLS)" - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |- round( sum by (destination_service) ( irate( istio_tcp_received_bytes_total{connection_security_policy="mutual_tls",destination_service=~"$dstsvc",reporter="source",source_workload=~"$workload",source_workload_namespace=~"$namespace"}[1m] ) ), 0.001 ) seriesNameFormat: '{{ destination_service }}' "10_1": kind: Panel spec: display: description: TCP bytes received by workload name: Bytes Received from Outgoing TCP Connection plugin: kind: TimeSeriesChart spec: legend: mode: list position: bottom visual: areaOpacity: 0.5 display: line lineWidth: 0.25 palette: mode: auto yAxis: format: unit: bytes/sec queries: - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |- round( sum by (destination_service) ( irate( istio_tcp_received_bytes_total{connection_security_policy="mutual_tls",destination_service=~"$dstsvc",reporter="source",source_workload=~"$workload",source_workload_namespace=~"$namespace"}[$__rate_interval] ) ), 0.001 ) seriesNameFormat: "{{ destination_service }} (\U0001F510mTLS)" - kind: TimeSeriesQuery spec: plugin: kind: PrometheusTimeSeriesQuery spec: datasource: kind: PrometheusDatasource name: prometheus-datasource query: |- round( sum by (destination_service) ( irate( istio_tcp_received_bytes_total{connection_security_policy!="mutual_tls",destination_service=~"$dstsvc",reporter="source",source_workload=~"$workload",source_workload_namespace=~"$namespace"}[$__rate_interval] ) ), 0.001 ) seriesNameFormat: '{{ destination_service }}' variables: - kind: ListVariable spec: allowAllValue: false allowMultiple: false defaultValue: bookinfo display: hidden: false name: Namespace name: namespace plugin: kind: PrometheusPromQLVariable spec: datasource: kind: PrometheusDatasource name: prometheus-datasource expr: sum(istio_requests_total) by (destination_workload_namespace) or sum(istio_tcp_sent_bytes_total) by (destination_workload_namespace) labelName: destination_workload_namespace - kind: ListVariable spec: allowAllValue: false allowMultiple: false defaultValue: details-v1 display: hidden: false name: Workload name: workload plugin: kind: PrometheusPromQLVariable spec: datasource: kind: PrometheusDatasource name: prometheus-datasource expr: (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)) labelName: source_workload - kind: ListVariable spec: allowAllValue: false allowMultiple: true defaultValue: destination display: hidden: false name: Reporter name: qrep plugin: kind: PrometheusPromQLVariable spec: datasource: kind: PrometheusDatasource name: prometheus-datasource expr: sum(istio_requests_total) by (reporter) labelName: reporter - kind: ListVariable spec: allowAllValue: true allowMultiple: true display: hidden: false name: Inbound Workload Namespace name: srcns plugin: kind: PrometheusLabelValuesVariable spec: datasource: kind: PrometheusDatasource name: prometheus-datasource labelName: source_workload_namespace matchers: - istio_requests_total{reporter=~"$qrep", destination_workload="$workload", destination_workload_namespace=~"$namespace"} - kind: ListVariable spec: allowAllValue: true allowMultiple: true display: hidden: false name: Inbound Workload name: srcwl plugin: kind: PrometheusLabelValuesVariable spec: datasource: kind: PrometheusDatasource name: prometheus-datasource labelName: source_workload matchers: - istio_requests_total{reporter=~"$qrep", destination_workload="$workload", destination_workload_namespace=~"$namespace", source_workload_namespace=~"$srcns"} - kind: ListVariable spec: allowAllValue: true allowMultiple: true display: hidden: false name: Destination Service name: dstsvc plugin: kind: PrometheusPromQLVariable spec: datasource: kind: PrometheusDatasource name: prometheus-datasource expr: 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) labelName: destination_service status: {}