"content":"The charts on this dashboard are intended to show Istio main components cost in terms resources utilization under steady load.\n\n- **vCPU/1k rps:** shows vCPU utilization by the main Istio components normalized by 1000 requests/second. When idle or low traffic, this chart will be blank. The curve for istio-proxy refers to the services sidecars only. \n- **vCPU:** vCPU utilization by Istio components, not normalized.\n- **Memory:** memory footprint for the components. Telemetry and policy are normalized by 1k rps, and no data is shown when there is no traffic. For ingress and istio-proxy, the data is per instance. \n- **Bytes transferred/ sec:** shows the number of bytes flowing through each Istio component.",
"expr":"sum(rate(container_cpu_usage_seconds_total{container_name=~\"discovery|istio-proxy\", pod_name=~\"istio-pilot-.*\"}[4m])) by (container_name)",
"expr":"histogram_quantile(0.50, sum(irate(istio_request_duration_seconds_bucket{reporter=\"source\",destination_service=~\"$service\"}[4m])) by (le))",
"format":"time_series",
"interval":"",
"intervalFactor":1,
"legendFormat":"P50",
"refId":"A"
},
{
"expr":"histogram_quantile(0.90, sum(irate(istio_request_duration_seconds_bucket{reporter=\"source\",destination_service=~\"$service\"}[4m])) by (le))",
"format":"time_series",
"hide":false,
"intervalFactor":1,
"legendFormat":"P90",
"refId":"B"
},
{
"expr":"histogram_quantile(0.99, sum(irate(istio_request_duration_seconds_bucket{reporter=\"source\",destination_service=~\"$service\"}[4m])) by (le))",
"expr":"histogram_quantile(0.50, sum(irate(istio_request_duration_seconds_bucket{reporter=\"destination\",destination_service=~\"$service\"}[4m])) by (le))",
"format":"time_series",
"interval":"",
"intervalFactor":1,
"legendFormat":"P50",
"refId":"A"
},
{
"expr":"histogram_quantile(0.90, sum(irate(istio_request_duration_seconds_bucket{reporter=\"destination\",destination_service=~\"$service\"}[4m])) by (le))",
"format":"time_series",
"hide":false,
"intervalFactor":1,
"legendFormat":"P90",
"refId":"B"
},
{
"expr":"histogram_quantile(0.99, sum(irate(istio_request_duration_seconds_bucket{reporter=\"destination\",destination_service=~\"$service\"}[4m])) by (le))",
"query":"query_result( sum(istio_requests_total{reporter=\"destination\", destination_service=\"$service\"}) by (source_workload_namespace) or sum(istio_tcp_sent_bytes_total{reporter=\"destination\", destination_service=~\"$service\"}) by (source_workload_namespace))",
"refresh":1,
"regex":"/.*namespace=\"([^\"]*).*/",
"sort":2,
"tagValuesQuery":"",
"tags":[],
"tagsQuery":"",
"type":"query",
"useTags":false
},
{
"allValue":null,
"current":{
"text":"All",
"value":"$__all"
},
"datasource":"RANCHER_MONITORING",
"hide":0,
"includeAll":true,
"label":"Client Workload",
"multi":true,
"name":"srcwl",
"options":[],
"query":"query_result( sum(istio_requests_total{reporter=\"destination\", destination_service=~\"$service\", source_workload_namespace=~\"$srcns\"}) by (source_workload) or sum(istio_tcp_sent_bytes_total{reporter=\"destination\", destination_service=~\"$service\", source_workload_namespace=~\"$srcns\"}) by (source_workload))",
"refresh":1,
"regex":"/.*workload=\"([^\"]*).*/",
"sort":3,
"tagValuesQuery":"",
"tags":[],
"tagsQuery":"",
"type":"query",
"useTags":false
},
{
"allValue":null,
"current":{
"text":"All",
"value":"$__all"
},
"datasource":"RANCHER_MONITORING",
"hide":0,
"includeAll":true,
"label":"Service Workload Namespace",
"multi":true,
"name":"dstns",
"options":[],
"query":"query_result( sum(istio_requests_total{reporter=\"destination\", destination_service=\"$service\"}) by (destination_workload_namespace) or sum(istio_tcp_sent_bytes_total{reporter=\"destination\", destination_service=~\"$service\"}) by (destination_workload_namespace))",
"refresh":1,
"regex":"/.*namespace=\"([^\"]*).*/",
"sort":2,
"tagValuesQuery":"",
"tags":[],
"tagsQuery":"",
"type":"query",
"useTags":false
},
{
"allValue":null,
"current":{
"text":"All",
"value":"$__all"
},
"datasource":"RANCHER_MONITORING",
"hide":0,
"includeAll":true,
"label":"Service Workload",
"multi":true,
"name":"dstwl",
"options":[],
"query":"query_result( sum(istio_requests_total{reporter=\"destination\", destination_service=~\"$service\", destination_workload_namespace=~\"$dstns\"}) by (destination_workload) or sum(istio_tcp_sent_bytes_total{reporter=\"destination\", destination_service=~\"$service\", destination_workload_namespace=~\"$dstns\"}) by (destination_workload))",
"expr":"histogram_quantile(0.50, sum(irate(istio_request_duration_seconds_bucket{reporter=\"destination\",destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\"}[4m])) by (le))",
"format":"time_series",
"interval":"",
"intervalFactor":1,
"legendFormat":"P50",
"refId":"A"
},
{
"expr":"histogram_quantile(0.90, sum(irate(istio_request_duration_seconds_bucket{reporter=\"destination\",destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\"}[4m])) by (le))",
"format":"time_series",
"hide":false,
"intervalFactor":1,
"legendFormat":"P90",
"refId":"B"
},
{
"expr":"histogram_quantile(0.99, sum(irate(istio_request_duration_seconds_bucket{reporter=\"destination\",destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\"}[4m])) by (le))",
"expr":"round(sum(irate(istio_tcp_received_bytes_total{reporter=\"source\", connection_security_policy!=\"mutual_tls\", source_workload_namespace=~\"$namespace\", source_workload=~\"$workload\", destination_service=~\"$dstsvc\"}[4m])) by (destination_service), 0.001)",
"format":"time_series",
"intervalFactor":1,
"legendFormat":"{{ destination_service }}",
"refId":"B",
"step":2
}
],
"thresholds":[],
"timeFrom":null,
"timeShift":null,
"title":"Bytes Received from Outgoing TCP Connection",
"tooltip":{
"shared":true,
"sort":0,
"value_type":"individual"
},
"type":"graph",
"xaxis":{
"buckets":null,
"mode":"time",
"name":null,
"show":true,
"values":[]
},
"yaxes":[
{
"format":"Bps",
"label":null,
"logBase":1,
"max":null,
"min":"0",
"show":true
},
{
"format":"short",
"label":null,
"logBase":1,
"max":null,
"min":null,
"show":true
}
]
}
],
"refresh":"10s",
"schemaVersion":16,
"style":"dark",
"tags":[],
"templating":{
"list":[
{
"allValue":null,
"current":{},
"datasource":"RANCHER_MONITORING",
"hide":0,
"includeAll":false,
"label":"Namespace",
"multi":false,
"name":"namespace",
"options":[],
"query":"query_result(sum(istio_requests_total) by (destination_workload_namespace) or sum(istio_tcp_sent_bytes_total) by (destination_workload_namespace))",
"refresh":1,
"regex":"/.*_namespace=\"([^\"]*).*/",
"sort":0,
"tagValuesQuery":"",
"tags":[],
"tagsQuery":"",
"type":"query",
"useTags":false
},
{
"allValue":null,
"current":{},
"datasource":"RANCHER_MONITORING",
"hide":0,
"includeAll":false,
"label":"Workload",
"multi":false,
"name":"workload",
"options":[],
"query":"query_result((sum(istio_requests_total{destination_workload_namespace=~\"$namespace\"}) by (destination_workload) or sum(istio_requests_total{source_workload_namespace=~\"$namespace\"}) by (source_workload)) or (sum(istio_tcp_sent_bytes_total{destination_workload_namespace=~\"$namespace\"}) by (destination_workload) or sum(istio_tcp_sent_bytes_total{source_workload_namespace=~\"$namespace\"}) by (source_workload)))",
"refresh":1,
"regex":"/.*workload=\"([^\"]*).*/",
"sort":1,
"tagValuesQuery":"",
"tags":[],
"tagsQuery":"",
"type":"query",
"useTags":false
},
{
"allValue":null,
"current":{},
"datasource":"RANCHER_MONITORING",
"hide":0,
"includeAll":true,
"label":"Inbound Workload Namespace",
"multi":true,
"name":"srcns",
"options":[],
"query":"query_result( sum(istio_requests_total{reporter=\"destination\", destination_workload=\"$workload\", destination_workload_namespace=~\"$namespace\"}) by (source_workload_namespace) or sum(istio_tcp_sent_bytes_total{reporter=\"destination\", destination_workload=\"$workload\", destination_workload_namespace=~\"$namespace\"}) by (source_workload_namespace))",
"refresh":1,
"regex":"/.*namespace=\"([^\"]*).*/",
"sort":2,
"tagValuesQuery":"",
"tags":[],
"tagsQuery":"",
"type":"query",
"useTags":false
},
{
"allValue":null,
"current":{},
"datasource":"RANCHER_MONITORING",
"hide":0,
"includeAll":true,
"label":"Inbound Workload",
"multi":true,
"name":"srcwl",
"options":[],
"query":"query_result( sum(istio_requests_total{reporter=\"destination\", destination_workload=\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload_namespace=~\"$srcns\"}) by (source_workload) or sum(istio_tcp_sent_bytes_total{reporter=\"destination\", destination_workload=\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload_namespace=~\"$srcns\"}) by (source_workload))",
"refresh":1,
"regex":"/.*workload=\"([^\"]*).*/",
"sort":3,
"tagValuesQuery":"",
"tags":[],
"tagsQuery":"",
"type":"query",
"useTags":false
},
{
"allValue":null,
"current":{},
"datasource":"RANCHER_MONITORING",
"hide":0,
"includeAll":true,
"label":"Destination Service",
"multi":true,
"name":"dstsvc",
"options":[],
"query":"query_result( sum(istio_requests_total{reporter=\"source\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\"}) by (destination_service) or sum(istio_tcp_sent_bytes_total{reporter=\"source\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\"}) by (destination_service))",