{
  "tags": [],
  "title": "Istio Workload Dashboard",
  "widgets": [
    {
      "layout": {
        "x": 0,
        "y": 0,
        "width": 12,
        "height": 3
      },
      "definition": {
        "type": "group",
        "title": "General",
        "widgets": [
          {
            "layout": {
              "x": 0,
              "y": 0,
              "width": 12,
              "height": 1
            },
            "definition": {
              "type": "note",
              "content": "<div class=\"dashboard-header text-center\">\n<span>WORKLOAD: $workload.$namespace</span>\n</div>",
              "tick_pos": "50%",
              "font_size": "14",
              "show_tick": false,
              "tick_edge": "left",
              "text_align": "left",
              "has_padding": true,
              "vertical_align": "top",
              "background_color": "white"
            }
          },
          {
            "layout": {
              "x": 0,
              "y": 1,
              "width": 4,
              "height": 1
            },
            "definition": {
              "type": "query_value",
              "title": "Incoming Request Volume",
              "requests": [
                {
                  "queries": [
                    {
                      "name": "query1",
                      "query": "sum:istio.mesh.request.count{reporter:$qrep.value,destination_workload_namespace:$namespace.value,destination_workload:$workload.value}.as_rate()",
                      "aggregator": "last",
                      "data_source": "metrics"
                    }
                  ],
                  "formulas": [
                    {
                      "formula": "query1"
                    }
                  ],
                  "response_format": "scalar",
                  "conditional_formats": [
                    {
                      "value": 80,
                      "palette": "white_on_red",
                      "comparator": ">="
                    }
                  ]
                }
              ],
              "autoscale": true,
              "precision": 2,
              "text_align": "center",
              "custom_unit": "/s",
              "timeseries_background": {
                "type": "area"
              }
            }
          },
          {
            "layout": {
              "x": 4,
              "y": 1,
              "width": 4,
              "height": 1
            },
            "definition": {
              "type": "query_value",
              "title": "Incoming Success Rate (non-5xx responses)",
              "requests": [
                {
                  "queries": [
                    {
                      "name": "query1",
                      "query": "sum:istio.mesh.request.count{reporter:$qrep.value,destination_workload_namespace:$namespace.value,destination_workload:$workload.value,!response_code:5*}.as_rate()",
                      "aggregator": "last",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query2",
                      "query": "sum:istio.mesh.request.count{reporter:$qrep.value,destination_workload_namespace:$namespace.value,destination_workload:$workload.value}.as_rate()",
                      "aggregator": "last",
                      "data_source": "metrics"
                    }
                  ],
                  "formulas": [
                    {
                      "formula": "(query1 / query2) * 100"
                    }
                  ],
                  "response_format": "scalar",
                  "conditional_formats": [
                    {
                      "value": 95,
                      "palette": "white_on_gray",
                      "comparator": ">="
                    },
                    {
                      "value": 99,
                      "palette": "white_on_gray",
                      "comparator": ">="
                    }
                  ]
                }
              ],
              "autoscale": true,
              "precision": 2,
              "text_align": "center",
              "custom_unit": "%",
              "timeseries_background": {
                "type": "area"
              }
            }
          },
          {
            "layout": {
              "x": 8,
              "y": 1,
              "width": 4,
              "height": 1
            },
            "definition": {
              "type": "timeseries",
              "title": "Request Duration",
              "yaxis": {
                "max": "auto",
                "min": "auto",
                "label": "",
                "scale": "linear",
                "include_zero": true
              },
              "markers": [
                {
                  "value": "y = 80",
                  "display_type": "error dashed"
                }
              ],
              "requests": [
                {
                  "style": {
                    "palette": "dog_classic",
                    "line_type": "solid",
                    "line_width": "normal"
                  },
                  "queries": [
                    {
                      "name": "query1",
                      "query": "p50:istio.mesh.request.duration.milliseconds{reporter:$qrep.value,destination_workload:$workload.value,destination_workload_namespace:$namespace.value}",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query2",
                      "query": "p90:istio.mesh.request.duration.milliseconds{reporter:$qrep.value,destination_workload:$workload.value,destination_workload_namespace:$namespace.value}",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query3",
                      "query": "p99:istio.mesh.request.duration.milliseconds{reporter:$qrep.value,destination_workload:$workload.value,destination_workload_namespace:$namespace.value}",
                      "data_source": "metrics"
                    }
                  ],
                  "formulas": [
                    {
                      "alias": "P50",
                      "formula": "query1 / 1000"
                    },
                    {
                      "alias": "P90",
                      "formula": "query2 / 1000"
                    },
                    {
                      "alias": "P99",
                      "formula": "query3 / 1000"
                    }
                  ],
                  "display_type": "area",
                  "response_format": "timeseries"
                }
              ],
              "show_legend": true,
              "legend_layout": "auto",
              "legend_columns": [
                "avg",
                "min",
                "max",
                "value",
                "sum"
              ]
            }
          },
          {
            "layout": {
              "x": 0,
              "y": 2,
              "width": 6,
              "height": 1
            },
            "definition": {
              "type": "query_value",
              "title": "TCP Server Traffic",
              "requests": [
                {
                  "queries": [
                    {
                      "name": "query1",
                      "query": "sum:istio.mesh.tcp.send.bytes{reporter:$qrep.value,destination_workload_namespace:$namespace.value,destination_workload:$workload.value}.as_rate()",
                      "aggregator": "last",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query2",
                      "query": "sum:istio.mesh.tcp.received.bytes{reporter:$qrep.value,destination_workload_namespace:$namespace.value,destination_workload:$workload.value}.as_rate()",
                      "aggregator": "last",
                      "data_source": "metrics"
                    }
                  ],
                  "formulas": [
                    {
                      "formula": "query1 + query2"
                    }
                  ],
                  "response_format": "scalar",
                  "conditional_formats": [
                    {
                      "value": 80,
                      "palette": "white_on_red",
                      "comparator": ">="
                    }
                  ]
                }
              ],
              "autoscale": true,
              "precision": 2,
              "text_align": "center",
              "custom_unit": "B/s",
              "timeseries_background": {
                "type": "area"
              }
            }
          },
          {
            "layout": {
              "x": 6,
              "y": 2,
              "width": 6,
              "height": 1
            },
            "definition": {
              "type": "query_value",
              "title": "TCP Client Traffic",
              "requests": [
                {
                  "queries": [
                    {
                      "name": "query1",
                      "query": "sum:istio.mesh.tcp.send.bytes{reporter:$qrep.value,source_workload_namespace:$namespace.value,source_workload:$workload.value}.as_rate()",
                      "aggregator": "last",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query2",
                      "query": "sum:istio.mesh.tcp.received.bytes{reporter:$qrep.value,source_workload_namespace:$namespace.value,source_workload:$workload.value}.as_rate()",
                      "aggregator": "last",
                      "data_source": "metrics"
                    }
                  ],
                  "formulas": [
                    {
                      "formula": "query1 + query2"
                    }
                  ],
                  "response_format": "scalar",
                  "conditional_formats": [
                    {
                      "value": 80,
                      "palette": "white_on_red",
                      "comparator": ">="
                    }
                  ]
                }
              ],
              "autoscale": true,
              "precision": 2,
              "text_align": "center",
              "custom_unit": "B/s",
              "timeseries_background": {
                "type": "area"
              }
            }
          }
        ],
        "show_title": true,
        "layout_type": "ordered"
      }
    },
    {
      "layout": {
        "x": 0,
        "y": 3,
        "width": 12,
        "height": 7
      },
      "definition": {
        "type": "group",
        "title": "Inbound Workloads",
        "widgets": [
          {
            "layout": {
              "x": 0,
              "y": 0,
              "width": 12,
              "height": 1
            },
            "definition": {
              "type": "note",
              "content": "<div class=\"dashboard-header text-center\">\n<span>INBOUND WORKLOADS</span>\n</div>",
              "tick_pos": "50%",
              "font_size": "14",
              "show_tick": false,
              "tick_edge": "left",
              "text_align": "left",
              "has_padding": true,
              "vertical_align": "top",
              "background_color": "white"
            }
          },
          {
            "layout": {
              "x": 0,
              "y": 1,
              "width": 6,
              "height": 2
            },
            "definition": {
              "type": "timeseries",
              "title": "Incoming Requests By Source And Response Code",
              "yaxis": {
                "max": "auto",
                "min": "auto",
                "label": "",
                "scale": "linear",
                "include_zero": false
              },
              "markers": [
                {
                  "value": "y = 80",
                  "display_type": "error dashed"
                }
              ],
              "requests": [
                {
                  "style": {
                    "palette": "dog_classic",
                    "line_type": "solid",
                    "line_width": "normal"
                  },
                  "queries": [
                    {
                      "name": "query1",
                      "query": "sum:istio.mesh.request.count{connection_security_policy:mutual_tls,destination_workload_namespace:$namespace.value,destination_workload:$workload.value,reporter:$qrep.value,source_workload:$srcwl.value,source_workload_namespace:$srcns.value} by {source_workload,source_workload_namespace,response_code}.as_rate()",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query2",
                      "query": "sum:istio.mesh.request.count{!connection_security_policy:mutual_tls,destination_workload_namespace:$namespace.value,destination_workload:$workload.value,reporter:$qrep.value,source_workload:$srcwl.value,source_workload_namespace:$srcns.value} by {source_workload,source_workload_namespace,response_code}.as_rate()",
                      "data_source": "metrics"
                    }
                  ],
                  "formulas": [
                    {
                      "formula": "query1"
                    },
                    {
                      "formula": "query2"
                    }
                  ],
                  "display_type": "line",
                  "response_format": "timeseries"
                }
              ],
              "show_legend": true,
              "legend_layout": "auto",
              "legend_columns": [
                "avg",
                "min",
                "max",
                "value",
                "sum"
              ]
            }
          },
          {
            "layout": {
              "x": 6,
              "y": 1,
              "width": 6,
              "height": 2
            },
            "definition": {
              "type": "timeseries",
              "title": "Incoming Success Rate (non-5xx responses) By Source",
              "yaxis": {
                "max": "auto",
                "min": "auto",
                "label": "",
                "scale": "linear",
                "include_zero": true
              },
              "markers": [
                {
                  "value": "y = 80",
                  "display_type": "error dashed"
                }
              ],
              "requests": [
                {
                  "style": {
                    "palette": "dog_classic",
                    "line_type": "solid",
                    "line_width": "normal"
                  },
                  "queries": [
                    {
                      "name": "query1",
                      "query": "sum:istio.mesh.request.count{reporter:$qrep.value,connection_security_policy:mutual_tls,destination_workload_namespace:$namespace.value,destination_workload:$workload.value,!response_code:5*,source_workload:$srcwl.value,source_workload_namespace:$srcns.value} by {source_workload,source_workload_namespace}.as_rate()",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query2",
                      "query": "sum:istio.mesh.request.count{reporter:$qrep.value,connection_security_policy:mutual_tls,destination_workload_namespace:$namespace.value,destination_workload:$workload.value,source_workload:$srcwl.value,source_workload_namespace:$srcns.value} by {source_workload,source_workload_namespace}.as_rate()",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query3",
                      "query": "sum:istio.mesh.request.count{reporter:$qrep.value,!connection_security_policy:mutual_tls,destination_workload_namespace:$namespace.value,destination_workload:$workload.value,!response_code:5*,source_workload:$srcwl.value,source_workload_namespace:$srcns.value} by {source_workload,source_workload_namespace}.as_rate()",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query4",
                      "query": "sum:istio.mesh.request.count{reporter:$qrep.value,!connection_security_policy:mutual_tls,destination_workload_namespace:$namespace.value,destination_workload:$workload.value,source_workload:$srcwl.value,source_workload_namespace:$srcns.value} by {source_workload,source_workload_namespace}.as_rate()",
                      "data_source": "metrics"
                    }
                  ],
                  "formulas": [
                    {
                      "formula": "(query1 / query2) * 100"
                    },
                    {
                      "formula": "(query3 / query4) * 100"
                    }
                  ],
                  "display_type": "area",
                  "response_format": "timeseries"
                }
              ],
              "show_legend": true,
              "legend_layout": "auto",
              "legend_columns": [
                "avg",
                "min",
                "max",
                "value",
                "sum"
              ]
            }
          },
          {
            "layout": {
              "x": 0,
              "y": 3,
              "width": 4,
              "height": 2
            },
            "definition": {
              "type": "timeseries",
              "title": "Incoming Request Duration By Source",
              "yaxis": {
                "max": "auto",
                "min": "auto",
                "label": "",
                "scale": "linear",
                "include_zero": true
              },
              "markers": [
                {
                  "value": "y = 80",
                  "display_type": "error dashed"
                }
              ],
              "requests": [
                {
                  "style": {
                    "palette": "dog_classic",
                    "line_type": "solid",
                    "line_width": "normal"
                  },
                  "queries": [
                    {
                      "name": "query1",
                      "query": "p50:istio.mesh.request.duration.milliseconds{reporter:$qrep.value,connection_security_policy:mutual_tls,destination_workload:$workload.value,destination_workload_namespace:$namespace.value,source_workload:$srcwl.value,source_workload_namespace:$srcns.value} by {source_workload,source_workload_namespace}",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query2",
                      "query": "p90:istio.mesh.request.duration.milliseconds{reporter:$qrep.value,connection_security_policy:mutual_tls,destination_workload:$workload.value,destination_workload_namespace:$namespace.value,source_workload:$srcwl.value,source_workload_namespace:$srcns.value} by {source_workload,source_workload_namespace}",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query3",
                      "query": "p95:istio.mesh.request.duration.milliseconds{reporter:$qrep.value,connection_security_policy:mutual_tls,destination_workload:$workload.value,destination_workload_namespace:$namespace.value,source_workload:$srcwl.value,source_workload_namespace:$srcns.value} by {source_workload,source_workload_namespace}",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query4",
                      "query": "p99:istio.mesh.request.duration.milliseconds{reporter:$qrep.value,connection_security_policy:mutual_tls,destination_workload:$workload.value,destination_workload_namespace:$namespace.value,source_workload:$srcwl.value,source_workload_namespace:$srcns.value} by {source_workload,source_workload_namespace}",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query5",
                      "query": "p50:istio.mesh.request.duration.milliseconds{reporter:$qrep.value,!connection_security_policy:mutual_tls,destination_workload:$workload.value,destination_workload_namespace:$namespace.value,source_workload:$srcwl.value,source_workload_namespace:$srcns.value} by {source_workload,source_workload_namespace}",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query6",
                      "query": "p90:istio.mesh.request.duration.milliseconds{reporter:$qrep.value,!connection_security_policy:mutual_tls,destination_workload:$workload.value,destination_workload_namespace:$namespace.value,source_workload:$srcwl.value,source_workload_namespace:$srcns.value} by {source_workload,source_workload_namespace}",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query7",
                      "query": "p95:istio.mesh.request.duration.milliseconds{reporter:$qrep.value,!connection_security_policy:mutual_tls,destination_workload:$workload.value,destination_workload_namespace:$namespace.value,source_workload:$srcwl.value,source_workload_namespace:$srcns.value} by {source_workload,source_workload_namespace}",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query8",
                      "query": "p99:istio.mesh.request.duration.milliseconds{reporter:$qrep.value,!connection_security_policy:mutual_tls,destination_workload:$workload.value,destination_workload_namespace:$namespace.value,source_workload:$srcwl.value,source_workload_namespace:$srcns.value} by {source_workload,source_workload_namespace}",
                      "data_source": "metrics"
                    }
                  ],
                  "formulas": [
                    {
                      "formula": "query1 / 1000"
                    },
                    {
                      "formula": "query2 / 1000"
                    },
                    {
                      "formula": "query3 / 1000"
                    },
                    {
                      "formula": "query4 / 1000"
                    },
                    {
                      "formula": "query5 / 1000"
                    },
                    {
                      "formula": "query6 / 1000"
                    },
                    {
                      "formula": "query7 / 1000"
                    },
                    {
                      "formula": "query8 / 1000"
                    }
                  ],
                  "display_type": "area",
                  "response_format": "timeseries"
                }
              ],
              "show_legend": true,
              "legend_layout": "auto",
              "legend_columns": [
                "avg",
                "min",
                "max",
                "value",
                "sum"
              ]
            }
          },
          {
            "layout": {
              "x": 4,
              "y": 3,
              "width": 4,
              "height": 2
            },
            "definition": {
              "type": "timeseries",
              "title": "Incoming Request Size By Source",
              "yaxis": {
                "max": "auto",
                "min": "auto",
                "label": "",
                "scale": "linear",
                "include_zero": true
              },
              "markers": [
                {
                  "value": "y = 80",
                  "display_type": "error dashed"
                }
              ],
              "requests": [
                {
                  "style": {
                    "palette": "dog_classic",
                    "line_type": "solid",
                    "line_width": "normal"
                  },
                  "queries": [
                    {
                      "name": "query1",
                      "query": "p50:istio.mesh.request.size{reporter:$qrep.value,connection_security_policy:mutual_tls,destination_workload:$workload.value,destination_workload_namespace:$namespace.value,source_workload:$srcwl.value,source_workload_namespace:$srcns.value} by {source_workload,source_workload_namespace}",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query2",
                      "query": "p90:istio.mesh.request.size{reporter:$qrep.value,connection_security_policy:mutual_tls,destination_workload:$workload.value,destination_workload_namespace:$namespace.value,source_workload:$srcwl.value,source_workload_namespace:$srcns.value} by {source_workload,source_workload_namespace}",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query3",
                      "query": "p95:istio.mesh.request.size{reporter:$qrep.value,connection_security_policy:mutual_tls,destination_workload:$workload.value,destination_workload_namespace:$namespace.value,source_workload:$srcwl.value,source_workload_namespace:$srcns.value} by {source_workload,source_workload_namespace}",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query4",
                      "query": "p99:istio.mesh.request.size{reporter:$qrep.value,connection_security_policy:mutual_tls,destination_workload:$workload.value,destination_workload_namespace:$namespace.value,source_workload:$srcwl.value,source_workload_namespace:$srcns.value} by {source_workload,source_workload_namespace}",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query5",
                      "query": "p50:istio.mesh.request.size{reporter:$qrep.value,!connection_security_policy:mutual_tls,destination_workload:$workload.value,destination_workload_namespace:$namespace.value,source_workload:$srcwl.value,source_workload_namespace:$srcns.value} by {source_workload,source_workload_namespace}",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query6",
                      "query": "p90:istio.mesh.request.size{reporter:$qrep.value,!connection_security_policy:mutual_tls,destination_workload:$workload.value,destination_workload_namespace:$namespace.value,source_workload:$srcwl.value,source_workload_namespace:$srcns.value} by {source_workload,source_workload_namespace}",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query7",
                      "query": "p95:istio.mesh.request.size{reporter:$qrep.value,!connection_security_policy:mutual_tls,destination_workload:$workload.value,destination_workload_namespace:$namespace.value,source_workload:$srcwl.value,source_workload_namespace:$srcns.value} by {source_workload,source_workload_namespace}",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query8",
                      "query": "p99:istio.mesh.request.size{reporter:$qrep.value,!connection_security_policy:mutual_tls,destination_workload:$workload.value,destination_workload_namespace:$namespace.value,source_workload:$srcwl.value,source_workload_namespace:$srcns.value} by {source_workload,source_workload_namespace}",
                      "data_source": "metrics"
                    }
                  ],
                  "formulas": [
                    {
                      "formula": "query1"
                    },
                    {
                      "formula": "query2"
                    },
                    {
                      "formula": "query3"
                    },
                    {
                      "formula": "query4"
                    },
                    {
                      "formula": "query5"
                    },
                    {
                      "formula": "query6"
                    },
                    {
                      "formula": "query7"
                    },
                    {
                      "formula": "query8"
                    }
                  ],
                  "display_type": "area",
                  "response_format": "timeseries"
                }
              ],
              "show_legend": true,
              "legend_layout": "auto",
              "legend_columns": [
                "avg",
                "min",
                "max",
                "value",
                "sum"
              ]
            }
          },
          {
            "layout": {
              "x": 8,
              "y": 3,
              "width": 4,
              "height": 2
            },
            "definition": {
              "type": "timeseries",
              "title": "Response Size By Source",
              "yaxis": {
                "max": "auto",
                "min": "auto",
                "label": "",
                "scale": "linear",
                "include_zero": true
              },
              "markers": [
                {
                  "value": "y = 80",
                  "display_type": "error dashed"
                }
              ],
              "requests": [
                {
                  "style": {
                    "palette": "dog_classic",
                    "line_type": "solid",
                    "line_width": "normal"
                  },
                  "queries": [
                    {
                      "name": "query1",
                      "query": "p50:istio.mesh.response.size{reporter:$qrep.value,connection_security_policy:mutual_tls,destination_workload:$workload.value,destination_workload_namespace:$namespace.value,source_workload:$srcwl.value,source_workload_namespace:$srcns.value} by {source_workload,source_workload_namespace}",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query2",
                      "query": "p90:istio.mesh.response.size{reporter:$qrep.value,connection_security_policy:mutual_tls,destination_workload:$workload.value,destination_workload_namespace:$namespace.value,source_workload:$srcwl.value,source_workload_namespace:$srcns.value} by {source_workload,source_workload_namespace}",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query3",
                      "query": "p95:istio.mesh.response.size{reporter:$qrep.value,connection_security_policy:mutual_tls,destination_workload:$workload.value,destination_workload_namespace:$namespace.value,source_workload:$srcwl.value,source_workload_namespace:$srcns.value} by {source_workload,source_workload_namespace}",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query4",
                      "query": "p99:istio.mesh.response.size{reporter:$qrep.value,connection_security_policy:mutual_tls,destination_workload:$workload.value,destination_workload_namespace:$namespace.value,source_workload:$srcwl.value,source_workload_namespace:$srcns.value} by {source_workload,source_workload_namespace}",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query5",
                      "query": "p50:istio.mesh.response.size{reporter:$qrep.value,!connection_security_policy:mutual_tls,destination_workload:$workload.value,destination_workload_namespace:$namespace.value,source_workload:$srcwl.value,source_workload_namespace:$srcns.value} by {source_workload,source_workload_namespace}",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query6",
                      "query": "p90:istio.mesh.response.size{reporter:$qrep.value,!connection_security_policy:mutual_tls,destination_workload:$workload.value,destination_workload_namespace:$namespace.value,source_workload:$srcwl.value,source_workload_namespace:$srcns.value} by {source_workload,source_workload_namespace}",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query7",
                      "query": "p95:istio.mesh.response.size{reporter:$qrep.value,!connection_security_policy:mutual_tls,destination_workload:$workload.value,destination_workload_namespace:$namespace.value,source_workload:$srcwl.value,source_workload_namespace:$srcns.value} by {source_workload,source_workload_namespace}",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query8",
                      "query": "p99:istio.mesh.response.size{reporter:$qrep.value,!connection_security_policy:mutual_tls,destination_workload:$workload.value,destination_workload_namespace:$namespace.value,source_workload:$srcwl.value,source_workload_namespace:$srcns.value} by {source_workload,source_workload_namespace}",
                      "data_source": "metrics"
                    }
                  ],
                  "formulas": [
                    {
                      "formula": "query1"
                    },
                    {
                      "formula": "query2"
                    },
                    {
                      "formula": "query3"
                    },
                    {
                      "formula": "query4"
                    },
                    {
                      "formula": "query5"
                    },
                    {
                      "formula": "query6"
                    },
                    {
                      "formula": "query7"
                    },
                    {
                      "formula": "query8"
                    }
                  ],
                  "display_type": "area",
                  "response_format": "timeseries"
                }
              ],
              "show_legend": true,
              "legend_layout": "auto",
              "legend_columns": [
                "avg",
                "min",
                "max",
                "value",
                "sum"
              ]
            }
          },
          {
            "layout": {
              "x": 0,
              "y": 5,
              "width": 6,
              "height": 2
            },
            "definition": {
              "type": "timeseries",
              "title": "Bytes Received from Incoming TCP Connection",
              "yaxis": {
                "max": "auto",
                "min": "auto",
                "label": "",
                "scale": "linear",
                "include_zero": true
              },
              "markers": [
                {
                  "value": "y = 80",
                  "display_type": "error dashed"
                }
              ],
              "requests": [
                {
                  "style": {
                    "palette": "dog_classic",
                    "line_type": "solid",
                    "line_width": "normal"
                  },
                  "queries": [
                    {
                      "name": "query1",
                      "query": "sum:istio.mesh.tcp.received.bytes{reporter:$qrep.value,connection_security_policy:mutual_tls,destination_workload_namespace:$namespace.value,destination_workload:$workload.value,source_workload:$srcwl.value,source_workload_namespace:$srcns.value} by {source_workload,source_workload_namespace}.as_rate()",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query2",
                      "query": "sum:istio.mesh.tcp.received.bytes{reporter:$qrep.value,!connection_security_policy:mutual_tls,destination_workload_namespace:$namespace.value,destination_workload:$workload.value,source_workload:$srcwl.value,source_workload_namespace:$srcns.value} by {source_workload,source_workload_namespace}.as_rate()",
                      "data_source": "metrics"
                    }
                  ],
                  "formulas": [
                    {
                      "formula": "query1"
                    },
                    {
                      "formula": "query2"
                    }
                  ],
                  "display_type": "area",
                  "response_format": "timeseries"
                }
              ],
              "show_legend": true,
              "legend_layout": "auto",
              "legend_columns": [
                "avg",
                "min",
                "max",
                "value",
                "sum"
              ]
            }
          },
          {
            "layout": {
              "x": 6,
              "y": 5,
              "width": 6,
              "height": 2
            },
            "definition": {
              "type": "timeseries",
              "title": "Bytes Sent to Incoming TCP Connection",
              "yaxis": {
                "max": "auto",
                "min": "auto",
                "label": "",
                "scale": "linear",
                "include_zero": true
              },
              "markers": [
                {
                  "value": "y = 80",
                  "display_type": "error dashed"
                }
              ],
              "requests": [
                {
                  "style": {
                    "palette": "dog_classic",
                    "line_type": "solid",
                    "line_width": "normal"
                  },
                  "queries": [
                    {
                      "name": "query1",
                      "query": "sum:istio.mesh.tcp.send.bytes{connection_security_policy:mutual_tls,reporter:$qrep.value,destination_workload_namespace:$namespace.value,destination_workload:$workload.value,source_workload:$srcwl.value,source_workload_namespace:$srcns.value} by {source_workload,source_workload_namespace}.as_rate()",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query2",
                      "query": "sum:istio.mesh.tcp.send.bytes{!connection_security_policy:mutual_tls,reporter:$qrep.value,destination_workload_namespace:$namespace.value,destination_workload:$workload.value,source_workload:$srcwl.value,source_workload_namespace:$srcns.value} by {source_workload,source_workload_namespace}.as_rate()",
                      "data_source": "metrics"
                    }
                  ],
                  "formulas": [
                    {
                      "formula": "query1"
                    },
                    {
                      "formula": "query2"
                    }
                  ],
                  "display_type": "area",
                  "response_format": "timeseries"
                }
              ],
              "show_legend": true,
              "legend_layout": "auto",
              "legend_columns": [
                "avg",
                "min",
                "max",
                "value",
                "sum"
              ]
            }
          }
        ],
        "show_title": true,
        "layout_type": "ordered"
      }
    },
    {
      "layout": {
        "x": 0,
        "y": 10,
        "width": 12,
        "height": 7
      },
      "definition": {
        "type": "group",
        "title": "Outbound Services",
        "widgets": [
          {
            "layout": {
              "x": 0,
              "y": 0,
              "width": 12,
              "height": 1
            },
            "definition": {
              "type": "note",
              "content": "<div class=\"dashboard-header text-center\">\n<span>OUTBOUND SERVICES</span>\n</div>",
              "tick_pos": "50%",
              "font_size": "14",
              "show_tick": false,
              "tick_edge": "left",
              "text_align": "left",
              "has_padding": true,
              "vertical_align": "top",
              "background_color": "white"
            }
          },
          {
            "layout": {
              "x": 0,
              "y": 1,
              "width": 6,
              "height": 2
            },
            "definition": {
              "type": "timeseries",
              "title": "Outgoing Requests By Destination And Response Code",
              "yaxis": {
                "max": "auto",
                "min": "auto",
                "label": "",
                "scale": "linear",
                "include_zero": false
              },
              "markers": [
                {
                  "value": "y = 80",
                  "display_type": "error dashed"
                }
              ],
              "requests": [
                {
                  "style": {
                    "palette": "dog_classic",
                    "line_type": "solid",
                    "line_width": "normal"
                  },
                  "queries": [
                    {
                      "name": "query1",
                      "query": "sum:istio.mesh.request.count{destination_principal:spiffe*,source_workload_namespace:$namespace.value,source_workload:$workload.value,reporter:source,destination_service:$dstsvc.value} by {destination_service,response_code}.as_rate()",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query2",
                      "query": "sum:istio.mesh.request.count{reporter:source,source_workload_namespace:$namespace.value,source_workload:$workload.value,destination_service:$dstsvc.value} by {destination_service,response_code}.as_rate()",
                      "data_source": "metrics"
                    }
                  ],
                  "formulas": [
                    {
                      "formula": "query1"
                    },
                    {
                      "formula": "query2"
                    }
                  ],
                  "display_type": "line",
                  "response_format": "timeseries"
                }
              ],
              "show_legend": true,
              "legend_layout": "auto",
              "legend_columns": [
                "avg",
                "min",
                "max",
                "value",
                "sum"
              ]
            }
          },
          {
            "layout": {
              "x": 6,
              "y": 1,
              "width": 6,
              "height": 2
            },
            "definition": {
              "type": "timeseries",
              "title": "Outgoing Success Rate (non-5xx responses) By Destination",
              "yaxis": {
                "max": "auto",
                "min": "auto",
                "label": "",
                "scale": "linear",
                "include_zero": true
              },
              "markers": [
                {
                  "value": "y = 80",
                  "display_type": "error dashed"
                }
              ],
              "requests": [
                {
                  "style": {
                    "palette": "dog_classic",
                    "line_type": "solid",
                    "line_width": "normal"
                  },
                  "queries": [
                    {
                      "name": "query1",
                      "query": "sum:istio.mesh.request.count{reporter:source,connection_security_policy:mutual_tls,source_workload_namespace:$namespace.value,source_workload:$workload.value,destination_service:$dstsvc.value} by {destination_service}.as_rate()",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query2",
                      "query": "sum:istio.mesh.request.count{reporter:source,connection_security_policy:mutual_tls,source_workload_namespace:$namespace.value,source_workload:$workload.value,destination_service:$dstsvc.value} by {destination_service}.as_rate()",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query3",
                      "query": "sum:istio.mesh.request.count{reporter:source,!connection_security_policy:mutual_tls,source_workload_namespace:$namespace.value,source_workload:$workload.value,destination_service:$dstsvc.value} by {destination_service}.as_rate()",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query4",
                      "query": "sum:istio.mesh.request.count{reporter:source,!connection_security_policy:mutual_tls,source_workload_namespace:$namespace.value,source_workload:$workload.value,destination_service:$dstsvc.value} by {destination_service}.as_rate()",
                      "data_source": "metrics"
                    }
                  ],
                  "formulas": [
                    {
                      "formula": "(query1 / query2) * 100"
                    },
                    {
                      "formula": "(query3 / query4) * 100"
                    }
                  ],
                  "display_type": "area",
                  "response_format": "timeseries"
                }
              ],
              "show_legend": true,
              "legend_layout": "auto",
              "legend_columns": [
                "avg",
                "min",
                "max",
                "value",
                "sum"
              ]
            }
          },
          {
            "layout": {
              "x": 0,
              "y": 3,
              "width": 4,
              "height": 2
            },
            "definition": {
              "type": "timeseries",
              "title": "Outgoing Request Duration By Destination",
              "yaxis": {
                "max": "auto",
                "min": "auto",
                "label": "",
                "scale": "linear",
                "include_zero": true
              },
              "markers": [
                {
                  "value": "y = 80",
                  "display_type": "error dashed"
                }
              ],
              "requests": [
                {
                  "style": {
                    "palette": "dog_classic",
                    "line_type": "solid",
                    "line_width": "normal"
                  },
                  "queries": [
                    {
                      "name": "query1",
                      "query": "p50:istio.mesh.request.duration.milliseconds{reporter:source,connection_security_policy:mutual_tls,source_workload:$workload.value,source_workload_namespace:$namespace.value,destination_service:$dstsvc.value} by {destination_service}",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query2",
                      "query": "p90:istio.mesh.request.duration.milliseconds{reporter:source,connection_security_policy:mutual_tls,source_workload:$workload.value,source_workload_namespace:$namespace.value,destination_service:$dstsvc.value} by {destination_service}",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query3",
                      "query": "p95:istio.mesh.request.duration.milliseconds{reporter:source,connection_security_policy:mutual_tls,source_workload:$workload.value,source_workload_namespace:$namespace.value,destination_service:$dstsvc.value} by {destination_service}",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query4",
                      "query": "p99:istio.mesh.request.duration.milliseconds{reporter:source,connection_security_policy:mutual_tls,source_workload:$workload.value,source_workload_namespace:$namespace.value,destination_service:$dstsvc.value} by {destination_service}",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query5",
                      "query": "p50:istio.mesh.request.duration.milliseconds{reporter:source,!connection_security_policy:mutual_tls,source_workload:$workload.value,source_workload_namespace:$namespace.value,destination_service:$dstsvc.value} by {destination_service}",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query6",
                      "query": "p90:istio.mesh.request.duration.milliseconds{reporter:source,!connection_security_policy:mutual_tls,source_workload:$workload.value,source_workload_namespace:$namespace.value,destination_service:$dstsvc.value} by {destination_service}",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query7",
                      "query": "p95:istio.mesh.request.duration.milliseconds{reporter:source,!connection_security_policy:mutual_tls,source_workload:$workload.value,source_workload_namespace:$namespace.value,destination_service:$dstsvc.value} by {destination_service}",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query8",
                      "query": "p99:istio.mesh.request.duration.milliseconds{reporter:source,!connection_security_policy:mutual_tls,source_workload:$workload.value,source_workload_namespace:$namespace.value,destination_service:$dstsvc.value} by {destination_service}",
                      "data_source": "metrics"
                    }
                  ],
                  "formulas": [
                    {
                      "formula": "query1 / 1000"
                    },
                    {
                      "formula": "query2 / 1000"
                    },
                    {
                      "formula": "query3 / 1000"
                    },
                    {
                      "formula": "query4 / 1000"
                    },
                    {
                      "formula": "query5 / 1000"
                    },
                    {
                      "formula": "query6 / 1000"
                    },
                    {
                      "formula": "query7 / 1000"
                    },
                    {
                      "formula": "query8 / 1000"
                    }
                  ],
                  "display_type": "area",
                  "response_format": "timeseries"
                }
              ],
              "show_legend": true,
              "legend_layout": "auto",
              "legend_columns": [
                "avg",
                "min",
                "max",
                "value",
                "sum"
              ]
            }
          },
          {
            "layout": {
              "x": 4,
              "y": 3,
              "width": 4,
              "height": 2
            },
            "definition": {
              "type": "timeseries",
              "title": "Outgoing Request Size By Destination",
              "yaxis": {
                "max": "auto",
                "min": "auto",
                "label": "",
                "scale": "linear",
                "include_zero": true
              },
              "markers": [
                {
                  "value": "y = 80",
                  "display_type": "error dashed"
                }
              ],
              "requests": [
                {
                  "style": {
                    "palette": "dog_classic",
                    "line_type": "solid",
                    "line_width": "normal"
                  },
                  "queries": [
                    {
                      "name": "query1",
                      "query": "p50:istio.mesh.request.size{reporter:source,connection_security_policy:mutual_tls,source_workload:$workload.value,source_workload_namespace:$namespace.value,destination_service:$dstsvc.value} by {destination_service}",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query2",
                      "query": "p90:istio.mesh.request.size{reporter:source,connection_security_policy:mutual_tls,source_workload:$workload.value,source_workload_namespace:$namespace.value,destination_service:$dstsvc.value} by {destination_service}",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query3",
                      "query": "p95:istio.mesh.request.size{reporter:source,connection_security_policy:mutual_tls,source_workload:$workload.value,source_workload_namespace:$namespace.value,destination_service:$dstsvc.value} by {destination_service}",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query4",
                      "query": "p99:istio.mesh.request.size{reporter:source,connection_security_policy:mutual_tls,source_workload:$workload.value,source_workload_namespace:$namespace.value,destination_service:$dstsvc.value} by {destination_service}",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query5",
                      "query": "p50:istio.mesh.request.size{reporter:source,!connection_security_policy:mutual_tls,source_workload:$workload.value,source_workload_namespace:$namespace.value,destination_service:$dstsvc.value} by {destination_service}",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query6",
                      "query": "p90:istio.mesh.request.size{reporter:source,!connection_security_policy:mutual_tls,source_workload:$workload.value,source_workload_namespace:$namespace.value,destination_service:$dstsvc.value} by {destination_service}",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query7",
                      "query": "p95:istio.mesh.request.size{reporter:source,!connection_security_policy:mutual_tls,source_workload:$workload.value,source_workload_namespace:$namespace.value,destination_service:$dstsvc.value} by {destination_service}",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query8",
                      "query": "p99:istio.mesh.request.size{reporter:source,!connection_security_policy:mutual_tls,source_workload:$workload.value,source_workload_namespace:$namespace.value,destination_service:$dstsvc.value} by {destination_service}",
                      "data_source": "metrics"
                    }
                  ],
                  "formulas": [
                    {
                      "formula": "query1"
                    },
                    {
                      "formula": "query2"
                    },
                    {
                      "formula": "query3"
                    },
                    {
                      "formula": "query4"
                    },
                    {
                      "formula": "query5"
                    },
                    {
                      "formula": "query6"
                    },
                    {
                      "formula": "query7"
                    },
                    {
                      "formula": "query8"
                    }
                  ],
                  "display_type": "area",
                  "response_format": "timeseries"
                }
              ],
              "show_legend": true,
              "legend_layout": "auto",
              "legend_columns": [
                "avg",
                "min",
                "max",
                "value",
                "sum"
              ]
            }
          },
          {
            "layout": {
              "x": 8,
              "y": 3,
              "width": 4,
              "height": 2
            },
            "definition": {
              "type": "timeseries",
              "title": "Response Size By Destination",
              "yaxis": {
                "max": "auto",
                "min": "auto",
                "label": "",
                "scale": "linear",
                "include_zero": true
              },
              "markers": [
                {
                  "value": "y = 80",
                  "display_type": "error dashed"
                }
              ],
              "requests": [
                {
                  "style": {
                    "palette": "dog_classic",
                    "line_type": "solid",
                    "line_width": "normal"
                  },
                  "queries": [
                    {
                      "name": "query1",
                      "query": "p50:istio.mesh.response.size{reporter:source,connection_security_policy:mutual_tls,source_workload:$workload.value,source_workload_namespace:$namespace.value,destination_service:$dstsvc.value} by {destination_service}",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query2",
                      "query": "p90:istio.mesh.response.size{reporter:source,connection_security_policy:mutual_tls,source_workload:$workload.value,source_workload_namespace:$namespace.value,destination_service:$dstsvc.value} by {destination_service}",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query3",
                      "query": "p95:istio.mesh.response.size{reporter:source,connection_security_policy:mutual_tls,source_workload:$workload.value,source_workload_namespace:$namespace.value,destination_service:$dstsvc.value} by {destination_service}",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query4",
                      "query": "p99:istio.mesh.response.size{reporter:source,connection_security_policy:mutual_tls,source_workload:$workload.value,source_workload_namespace:$namespace.value,destination_service:$dstsvc.value} by {destination_service}",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query5",
                      "query": "p50:istio.mesh.response.size{reporter:source,!connection_security_policy:mutual_tls,source_workload:$workload.value,source_workload_namespace:$namespace.value,destination_service:$dstsvc.value} by {destination_service}",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query6",
                      "query": "p90:istio.mesh.response.size{reporter:source,!connection_security_policy:mutual_tls,source_workload:$workload.value,source_workload_namespace:$namespace.value,destination_service:$dstsvc.value} by {destination_service}",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query7",
                      "query": "p95:istio.mesh.response.size{reporter:source,!connection_security_policy:mutual_tls,source_workload:$workload.value,source_workload_namespace:$namespace.value,destination_service:$dstsvc.value} by {destination_service}",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query8",
                      "query": "p99:istio.mesh.response.size{reporter:source,!connection_security_policy:mutual_tls,source_workload:$workload.value,source_workload_namespace:$namespace.value,destination_service:$dstsvc.value} by {destination_service}",
                      "data_source": "metrics"
                    }
                  ],
                  "formulas": [
                    {
                      "formula": "query1"
                    },
                    {
                      "formula": "query2"
                    },
                    {
                      "formula": "query3"
                    },
                    {
                      "formula": "query4"
                    },
                    {
                      "formula": "query5"
                    },
                    {
                      "formula": "query6"
                    },
                    {
                      "formula": "query7"
                    },
                    {
                      "formula": "query8"
                    }
                  ],
                  "display_type": "area",
                  "response_format": "timeseries"
                }
              ],
              "show_legend": true,
              "legend_layout": "auto",
              "legend_columns": [
                "avg",
                "min",
                "max",
                "value",
                "sum"
              ]
            }
          },
          {
            "layout": {
              "x": 0,
              "y": 5,
              "width": 6,
              "height": 2
            },
            "definition": {
              "type": "timeseries",
              "title": "Bytes Sent on Outgoing TCP Connection",
              "yaxis": {
                "max": "auto",
                "min": "auto",
                "label": "",
                "scale": "linear",
                "include_zero": true
              },
              "markers": [
                {
                  "value": "y = 80",
                  "display_type": "error dashed"
                }
              ],
              "requests": [
                {
                  "style": {
                    "palette": "dog_classic",
                    "line_type": "solid",
                    "line_width": "normal"
                  },
                  "queries": [
                    {
                      "name": "query1",
                      "query": "sum:istio.mesh.tcp.recv.bytes{reporter:source,connection_security_policy:mutual_tls,source_workload_namespace:$namespace.value,source_workload:$workload.value,destination_service:$dstsvc.value} by {destination_service}.as_rate()",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query2",
                      "query": "sum:istio.mesh.tcp.recv.bytes{reporter:source,!connection_security_policy:mutual_tls,source_workload_namespace:$namespace.value,source_workload:$workload.value,destination_service:$dstsvc.value} by {destination_service}.as_rate()",
                      "data_source": "metrics"
                    }
                  ],
                  "formulas": [
                    {
                      "formula": "query1"
                    },
                    {
                      "formula": "query2"
                    }
                  ],
                  "display_type": "area",
                  "response_format": "timeseries"
                }
              ],
              "show_legend": true,
              "legend_layout": "auto",
              "legend_columns": [
                "avg",
                "min",
                "max",
                "value",
                "sum"
              ]
            }
          },
          {
            "layout": {
              "x": 6,
              "y": 5,
              "width": 6,
              "height": 2
            },
            "definition": {
              "type": "timeseries",
              "title": "Bytes Received from Outgoing TCP Connection",
              "yaxis": {
                "max": "auto",
                "min": "auto",
                "label": "",
                "scale": "linear",
                "include_zero": true
              },
              "markers": [
                {
                  "value": "y = 80",
                  "display_type": "error dashed"
                }
              ],
              "requests": [
                {
                  "style": {
                    "palette": "dog_classic",
                    "line_type": "solid",
                    "line_width": "normal"
                  },
                  "queries": [
                    {
                      "name": "query1",
                      "query": "sum:istio.mesh.tcp.send.bytes{reporter:source,connection_security_policy:mutual_tls,source_workload_namespace:$namespace.value,source_workload:$workload.value,destination_service:$dstsvc.value} by {destination_service}.as_rate()",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query2",
                      "query": "sum:istio.mesh.tcp.send.bytes{reporter:source,!connection_security_policy:mutual_tls,source_workload_namespace:$namespace.value,source_workload:$workload.value,destination_service:$dstsvc.value} by {destination_service}.as_rate()",
                      "data_source": "metrics"
                    }
                  ],
                  "formulas": [
                    {
                      "formula": "query1"
                    },
                    {
                      "formula": "query2"
                    }
                  ],
                  "display_type": "area",
                  "response_format": "timeseries"
                }
              ],
              "show_legend": true,
              "legend_layout": "auto",
              "legend_columns": [
                "avg",
                "min",
                "max",
                "value",
                "sum"
              ]
            }
          }
        ],
        "show_title": true,
        "layout_type": "ordered"
      }
    }
  ],
  "description": "Converted from Grafana dashboard https://grafana.com/grafana/dashboards/7630 (by istio). Istio Workload Dashboard version 1.31.0",
  "layout_type": "ordered",
  "reflow_type": "fixed",
  "template_variables": [
    {
      "name": "namespace",
      "prefix": "namespace",
      "default": "*",
      "available_values": []
    },
    {
      "name": "workload",
      "prefix": "workload",
      "default": "*",
      "available_values": []
    },
    {
      "name": "qrep",
      "prefix": "qrep",
      "default": "destination",
      "available_values": [
        "source",
        "destination"
      ]
    },
    {
      "name": "srcns",
      "prefix": "srcns",
      "default": "*",
      "available_values": []
    },
    {
      "name": "srcwl",
      "prefix": "srcwl",
      "default": "*",
      "available_values": []
    },
    {
      "name": "dstsvc",
      "prefix": "dstsvc",
      "default": "*",
      "available_values": []
    }
  ]
}