{
  "tags": [],
  "title": "Envoy Proxy",
  "widgets": [
    {
      "layout": {
        "x": 0,
        "y": 0,
        "width": 2,
        "height": 1
      },
      "definition": {
        "type": "query_value",
        "title": "Live servers",
        "requests": [
          {
            "queries": [
              {
                "name": "query1",
                "query": "sum:envoy.server.live{*}",
                "aggregator": "last",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "formula": "query1"
              }
            ],
            "response_format": "scalar",
            "conditional_formats": [
              {
                "value": 1,
                "palette": "white_on_gray",
                "comparator": ">="
              },
              {
                "value": 2,
                "palette": "white_on_gray",
                "comparator": ">="
              }
            ]
          }
        ],
        "autoscale": true,
        "precision": 2,
        "text_align": "center"
      }
    },
    {
      "layout": {
        "x": 2,
        "y": 0,
        "width": 2,
        "height": 1
      },
      "definition": {
        "type": "query_value",
        "title": "Avg uptime per node",
        "requests": [
          {
            "queries": [
              {
                "name": "query1",
                "query": "avg:envoy.server.uptime{*}",
                "aggregator": "avg",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "formula": "query1"
              }
            ],
            "response_format": "scalar"
          }
        ],
        "autoscale": true,
        "precision": 2,
        "text_align": "center",
        "custom_unit": "s"
      }
    },
    {
      "layout": {
        "x": 4,
        "y": 0,
        "width": 3,
        "height": 1
      },
      "definition": {
        "type": "query_value",
        "title": "Allocated Memory",
        "requests": [
          {
            "queries": [
              {
                "name": "query1",
                "query": "sum:envoy.server.memory_allocated{*}",
                "aggregator": "last",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "formula": "query1"
              }
            ],
            "response_format": "scalar"
          }
        ],
        "autoscale": true,
        "precision": 2,
        "text_align": "center",
        "custom_unit": "B"
      }
    },
    {
      "layout": {
        "x": 7,
        "y": 0,
        "width": 2,
        "height": 1
      },
      "definition": {
        "type": "query_value",
        "title": "Heap Size",
        "requests": [
          {
            "queries": [
              {
                "name": "query1",
                "query": "sum:envoy.server.memory_heap_size{*}",
                "aggregator": "last",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "formula": "query1"
              }
            ],
            "response_format": "scalar"
          }
        ],
        "autoscale": true,
        "precision": 2,
        "text_align": "center",
        "custom_unit": "B"
      }
    },
    {
      "layout": {
        "x": 9,
        "y": 0,
        "width": 1,
        "height": 1
      },
      "definition": {
        "type": "query_value",
        "title": "Unhealthy Clusters",
        "requests": [
          {
            "queries": [
              {
                "name": "query1",
                "query": "sum:envoy.cluster.membership_healthy{*}",
                "aggregator": "last",
                "data_source": "metrics"
              },
              {
                "name": "query2",
                "query": "sum:envoy.cluster.membership_total{*}",
                "aggregator": "last",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "formula": "query1 - query2"
              }
            ],
            "response_format": "scalar"
          }
        ],
        "autoscale": true,
        "precision": 2,
        "text_align": "center"
      }
    },
    {
      "layout": {
        "x": 10,
        "y": 0,
        "width": 2,
        "height": 1
      },
      "definition": {
        "type": "note",
        "content": "**Cluster State**\n\nUnsupported panel (singlestat)\n\n- `== bool 0` produces a boolean series; Datadog formulas have no comparison/bool operators\n\nOriginal PromQL:\n```\nA: (sum(envoy_cluster_membership_total)-sum(envoy_cluster_membership_healthy)) == bool 0\n```",
        "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": "Total active connections",
        "yaxis": {
          "max": "auto",
          "min": "auto",
          "label": "",
          "scale": "linear",
          "include_zero": true
        },
        "requests": [
          {
            "style": {
              "palette": "dog_classic",
              "line_type": "solid",
              "line_width": "normal"
            },
            "queries": [
              {
                "name": "query1",
                "query": "avg:envoy.cluster.upstream_cx_active{$cluster,$hosts} by {zone,host}",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "formula": "query1"
              }
            ],
            "display_type": "area",
            "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": "Total requests",
        "yaxis": {
          "max": "auto",
          "min": "auto",
          "label": "",
          "scale": "linear",
          "include_zero": true
        },
        "requests": [
          {
            "style": {
              "palette": "dog_classic",
              "line_type": "solid",
              "line_width": "normal"
            },
            "queries": [
              {
                "name": "query1",
                "query": "avg:envoy.cluster.upstream_rq_total{$cluster,$hosts} by {zone,host}.as_rate()",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "formula": "query1"
              }
            ],
            "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": 6,
        "height": 2
      },
      "definition": {
        "type": "timeseries",
        "title": "Downstream Total active connections",
        "yaxis": {
          "max": "auto",
          "min": "auto",
          "label": "",
          "scale": "linear",
          "include_zero": true
        },
        "requests": [
          {
            "style": {
              "palette": "dog_classic",
              "line_type": "solid",
              "line_width": "normal"
            },
            "queries": [
              {
                "name": "query1",
                "query": "avg:envoy.http.downstream_cx_active{envoy_http_conn_manager_prefix:$cluster.value,$hosts} by {zone,host}",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "formula": "query1"
              }
            ],
            "display_type": "area",
            "response_format": "timeseries"
          }
        ],
        "show_legend": true,
        "legend_layout": "auto",
        "legend_columns": [
          "avg",
          "min",
          "max",
          "value",
          "sum"
        ]
      }
    },
    {
      "layout": {
        "x": 6,
        "y": 3,
        "width": 6,
        "height": 2
      },
      "definition": {
        "type": "timeseries",
        "title": "Downstream Total active requests",
        "yaxis": {
          "max": "auto",
          "min": "auto",
          "label": "",
          "scale": "linear",
          "include_zero": true
        },
        "requests": [
          {
            "style": {
              "palette": "dog_classic",
              "line_type": "solid",
              "line_width": "normal"
            },
            "queries": [
              {
                "name": "query1",
                "query": "avg:envoy.http.downstream_rq_total{envoy_http_conn_manager_prefix:$cluster.value,$hosts} by {zone,host}.as_rate()",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "formula": "query1"
              }
            ],
            "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": "Upstream Network Traffic",
        "yaxis": {
          "max": "auto",
          "min": "auto",
          "label": "",
          "scale": "linear",
          "include_zero": true
        },
        "requests": [
          {
            "style": {
              "palette": "dog_classic",
              "line_type": "solid",
              "line_width": "normal"
            },
            "queries": [
              {
                "name": "query1",
                "query": "avg:envoy.cluster.upstream_cx_rx_bytes_total{$cluster,$hosts} by {zone,host}.as_rate()",
                "data_source": "metrics"
              },
              {
                "name": "query2",
                "query": "avg:envoy.cluster.upstream_cx_tx_bytes_total{$cluster,$hosts} by {zone,host}.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": "Downstream Network Traffic",
        "yaxis": {
          "max": "auto",
          "min": "auto",
          "label": "",
          "scale": "linear",
          "include_zero": true
        },
        "requests": [
          {
            "style": {
              "palette": "dog_classic",
              "line_type": "solid",
              "line_width": "normal"
            },
            "queries": [
              {
                "name": "query1",
                "query": "avg:envoy.http.downstream_cx_rx_bytes_total{envoy_http_conn_manager_prefix:$cluster.value,$hosts} by {zone,host}.as_rate()",
                "data_source": "metrics"
              },
              {
                "name": "query2",
                "query": "avg:envoy.http.downstream_cx_tx_bytes_total{envoy_http_conn_manager_prefix:$cluster.value,$hosts} by {zone,host}.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": 0,
        "y": 7,
        "width": 12,
        "height": 2
      },
      "definition": {
        "type": "timeseries",
        "title": "Downstream members",
        "yaxis": {
          "max": "auto",
          "min": "auto",
          "label": "",
          "scale": "linear",
          "include_zero": true
        },
        "requests": [
          {
            "style": {
              "palette": "dog_classic",
              "line_type": "solid",
              "line_width": "normal"
            },
            "queries": [
              {
                "name": "query1",
                "query": "sum:envoy.cluster.membership_healthy{$cluster,$hosts}",
                "data_source": "metrics"
              },
              {
                "name": "query2",
                "query": "sum:envoy.cluster.membership_healthy{$cluster,$hosts} by {host}",
                "data_source": "metrics"
              },
              {
                "name": "query3",
                "query": "sum:envoy.cluster.membership_total{$cluster,$hosts}",
                "data_source": "metrics"
              },
              {
                "name": "query4",
                "query": "sum:envoy.cluster.membership_total{$cluster,$hosts} by {host}",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "alias": "healthy",
                "formula": "query1 / count_not_null(query2)"
              },
              {
                "alias": "total",
                "formula": "query3 / count_not_null(query4)"
              }
            ],
            "display_type": "area",
            "response_format": "timeseries"
          }
        ],
        "show_legend": true,
        "legend_layout": "auto",
        "legend_columns": [
          "avg",
          "min",
          "max",
          "value",
          "sum"
        ]
      }
    }
  ],
  "description": "Converted from Grafana dashboard https://grafana.com/grafana/dashboards/6693 (by therako). Envoy proxy monitoring Dashboard with cluster and host level templates. ",
  "layout_type": "ordered",
  "reflow_type": "fixed",
  "template_variables": [
    {
      "name": "cluster",
      "prefix": "envoy_cluster_name",
      "default": "*",
      "available_values": []
    },
    {
      "name": "hosts",
      "prefix": "host",
      "default": "*",
      "available_values": []
    }
  ]
}