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: |-
"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: |-
"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: |-
"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: {}