{
  "tags": [],
  "title": "External DNS",
  "widgets": [
    {
      "layout": {
        "x": 0,
        "y": 0,
        "width": 12,
        "height": 2
      },
      "definition": {
        "type": "group",
        "title": "External-dns endpoints",
        "widgets": [
          {
            "layout": {
              "x": 0,
              "y": 0,
              "width": 6,
              "height": 2
            },
            "definition": {
              "type": "timeseries",
              "title": "Number of Endpoints in the registry",
              "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": "avg:external_dns_registry_endpoints.count{$pod} by {pod}",
                      "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": 0,
              "width": 6,
              "height": 2
            },
            "definition": {
              "type": "timeseries",
              "title": "Number of Endpoints in all sources",
              "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": "avg:external_dns_source_endpoints.count{$pod} by {pod}",
                      "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"
              ]
            }
          }
        ],
        "show_title": true,
        "layout_type": "ordered"
      }
    },
    {
      "layout": {
        "x": 0,
        "y": 2,
        "width": 12,
        "height": 4
      },
      "definition": {
        "type": "group",
        "title": "External-dns sync",
        "widgets": [
          {
            "layout": {
              "x": 0,
              "y": 0,
              "width": 6,
              "height": 2
            },
            "definition": {
              "type": "toplist",
              "title": "Timestamp of last attempted sync with the DNS provider",
              "requests": [
                {
                  "queries": [
                    {
                      "name": "query1",
                      "query": "avg:external_dns_controller_last_reconcile_timestamp_seconds{$pod} by {pod}",
                      "aggregator": "last",
                      "data_source": "metrics"
                    }
                  ],
                  "formulas": [
                    {
                      "limit": {
                        "count": 10,
                        "order": "desc"
                      },
                      "formula": "query1 * 1000"
                    }
                  ],
                  "response_format": "scalar"
                }
              ]
            }
          },
          {
            "layout": {
              "x": 6,
              "y": 0,
              "width": 6,
              "height": 2
            },
            "definition": {
              "type": "toplist",
              "title": "Timestamp of last successful sync with the DNS provider",
              "requests": [
                {
                  "queries": [
                    {
                      "name": "query1",
                      "query": "avg:external_dns_controller_last_sync_timestamp_seconds{$pod} by {pod}",
                      "aggregator": "last",
                      "data_source": "metrics"
                    }
                  ],
                  "formulas": [
                    {
                      "limit": {
                        "count": 10,
                        "order": "desc"
                      },
                      "formula": "query1 * 1000"
                    }
                  ],
                  "response_format": "scalar"
                }
              ]
            }
          },
          {
            "layout": {
              "x": 0,
              "y": 2,
              "width": 2,
              "height": 2
            },
            "definition": {
              "type": "query_value",
              "title": "External-dns controller no_op runs total",
              "requests": [
                {
                  "queries": [
                    {
                      "name": "query1",
                      "query": "avg:external_dns_controller_no_op_runs.count{$pod} by {pod}",
                      "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"
            }
          }
        ],
        "show_title": true,
        "layout_type": "ordered"
      }
    },
    {
      "layout": {
        "x": 0,
        "y": 6,
        "width": 12,
        "height": 4
      },
      "definition": {
        "type": "group",
        "title": "External-dns records",
        "widgets": [
          {
            "layout": {
              "x": 0,
              "y": 0,
              "width": 2,
              "height": 2
            },
            "definition": {
              "type": "query_value",
              "title": "Number of A records in registry",
              "requests": [
                {
                  "queries": [
                    {
                      "name": "query1",
                      "query": "avg:external_dns_registry_a_records{$pod} by {pod}",
                      "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"
            }
          },
          {
            "layout": {
              "x": 2,
              "y": 0,
              "width": 3,
              "height": 2
            },
            "definition": {
              "type": "query_value",
              "title": "Number of AAAA records in registry",
              "requests": [
                {
                  "queries": [
                    {
                      "name": "query1",
                      "query": "avg:external_dns_registry_aaaa_records{$pod} by {pod}",
                      "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"
            }
          },
          {
            "layout": {
              "x": 5,
              "y": 0,
              "width": 2,
              "height": 2
            },
            "definition": {
              "type": "query_value",
              "title": "Number of A records in source",
              "requests": [
                {
                  "queries": [
                    {
                      "name": "query1",
                      "query": "avg:external_dns_source_a_records{$pod} by {pod}",
                      "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"
            }
          },
          {
            "layout": {
              "x": 0,
              "y": 2,
              "width": 2,
              "height": 2
            },
            "definition": {
              "type": "query_value",
              "title": "Number of AAAA records in source",
              "requests": [
                {
                  "queries": [
                    {
                      "name": "query1",
                      "query": "avg:external_dns_source_aaaa_records{$pod} by {pod}",
                      "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"
            }
          },
          {
            "layout": {
              "x": 2,
              "y": 2,
              "width": 3,
              "height": 2
            },
            "definition": {
              "type": "query_value",
              "title": "Number of DNS A-records that exists both in source and registry",
              "requests": [
                {
                  "queries": [
                    {
                      "name": "query1",
                      "query": "avg:external_dns_controller_verified_a_records{$pod} by {pod}",
                      "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"
            }
          },
          {
            "layout": {
              "x": 5,
              "y": 2,
              "width": 2,
              "height": 2
            },
            "definition": {
              "type": "query_value",
              "title": "Number of DNS AAAA-records that exists both in source and registry",
              "requests": [
                {
                  "queries": [
                    {
                      "name": "query1",
                      "query": "avg:external_dns_controller_verified_aaaa_records{$pod} by {pod}",
                      "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"
            }
          }
        ],
        "show_title": true,
        "layout_type": "ordered"
      }
    },
    {
      "layout": {
        "x": 0,
        "y": 10,
        "width": 12,
        "height": 2
      },
      "definition": {
        "type": "group",
        "title": "External-dns errors",
        "widgets": [
          {
            "layout": {
              "x": 0,
              "y": 0,
              "width": 2,
              "height": 2
            },
            "definition": {
              "type": "query_value",
              "title": "Total external-dns registry errors",
              "requests": [
                {
                  "queries": [
                    {
                      "name": "query1",
                      "query": "avg:external_dns_registry_errors.count{$pod} by {pod}",
                      "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"
            }
          },
          {
            "layout": {
              "x": 2,
              "y": 0,
              "width": 3,
              "height": 2
            },
            "definition": {
              "type": "query_value",
              "title": "Total external-dns source errors",
              "requests": [
                {
                  "queries": [
                    {
                      "name": "query1",
                      "query": "avg:external_dns_source_errors.count{$pod} by {pod}",
                      "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"
            }
          }
        ],
        "show_title": true,
        "layout_type": "ordered"
      }
    },
    {
      "layout": {
        "x": 0,
        "y": 12,
        "width": 12,
        "height": 6
      },
      "definition": {
        "type": "group",
        "title": "External-dns pods",
        "widgets": [
          {
            "layout": {
              "x": 0,
              "y": 0,
              "width": 6,
              "height": 2
            },
            "definition": {
              "type": "timeseries",
              "title": "CPU Usage",
              "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:kubernetes.cpu.usage.total{$pod} by {pod_name}",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query2",
                      "query": "sum:kubernetes_state.resourcequota.cpu.limit{$pod}",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query3",
                      "query": "sum:kubernetes_state.resourcequota.cpu.limit{$pod}",
                      "data_source": "metrics"
                    }
                  ],
                  "formulas": [
                    {
                      "formula": "query1 / 1000000000"
                    },
                    {
                      "alias": "quota - requests",
                      "formula": "query2"
                    },
                    {
                      "alias": "quota - limits",
                      "formula": "query3"
                    }
                  ],
                  "display_type": "area",
                  "response_format": "timeseries"
                }
              ],
              "show_legend": true,
              "legend_layout": "auto",
              "legend_columns": [
                "avg",
                "min",
                "max",
                "value",
                "sum"
              ]
            }
          },
          {
            "layout": {
              "x": 6,
              "y": 0,
              "width": 6,
              "height": 2
            },
            "definition": {
              "type": "timeseries",
              "title": "Memory Usage (w/o cache)",
              "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:kubernetes.memory.working_set{$pod,kube_container_name:*} by {pod_name}",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query2",
                      "query": "sum:kubernetes_state.resourcequota.memory.limit{*}",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query3",
                      "query": "sum:kubernetes_state.resourcequota.memory.limit{$pod}",
                      "data_source": "metrics"
                    }
                  ],
                  "formulas": [
                    {
                      "formula": "query1"
                    },
                    {
                      "alias": "quota - requests",
                      "formula": "query2"
                    },
                    {
                      "alias": "quota - limits",
                      "formula": "query3"
                    }
                  ],
                  "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": 12,
              "height": 2
            },
            "definition": {
              "type": "query_table",
              "title": "CPU Quota",
              "requests": [
                {
                  "queries": [
                    {
                      "name": "query1",
                      "query": "sum:kubernetes.cpu.usage.total{$pod} by {pod_name}",
                      "aggregator": "last",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query2",
                      "query": "sum:kubernetes_state.container.cpu_requested{$pod} by {pod_name}",
                      "aggregator": "last",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query3",
                      "query": "sum:kubernetes.cpu.usage.total{$pod} by {pod_name}",
                      "aggregator": "last",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query4",
                      "query": "sum:kubernetes_state.container.cpu_requested{$pod} by {pod_name}",
                      "aggregator": "last",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query5",
                      "query": "sum:kubernetes_state.container.cpu_limit{$pod} by {pod_name}",
                      "aggregator": "last",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query6",
                      "query": "sum:kubernetes.cpu.usage.total{$pod} by {pod_name}",
                      "aggregator": "last",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query7",
                      "query": "sum:kubernetes_state.container.cpu_limit{$pod} by {pod_name}",
                      "aggregator": "last",
                      "data_source": "metrics"
                    }
                  ],
                  "formulas": [
                    {
                      "limit": {
                        "count": 50,
                        "order": "desc"
                      },
                      "formula": "query1 / 1000000000"
                    },
                    {
                      "formula": "query2"
                    },
                    {
                      "formula": "(query3 / 1000000000) / query4"
                    },
                    {
                      "formula": "query5"
                    },
                    {
                      "formula": "(query6 / 1000000000) / query7"
                    }
                  ],
                  "response_format": "scalar"
                }
              ],
              "has_search_bar": "auto"
            }
          },
          {
            "layout": {
              "x": 0,
              "y": 4,
              "width": 12,
              "height": 2
            },
            "definition": {
              "type": "query_table",
              "title": "Memory Quota",
              "requests": [
                {
                  "queries": [
                    {
                      "name": "query1",
                      "query": "sum:kubernetes.memory.working_set{$pod,kube_container_name:*} by {pod_name}",
                      "aggregator": "last",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query2",
                      "query": "sum:kubernetes_state.container.memory_requested{$pod} by {pod_name}",
                      "aggregator": "last",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query3",
                      "query": "sum:kubernetes.memory.working_set{$pod,kube_container_name:*} by {pod_name}",
                      "aggregator": "last",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query4",
                      "query": "sum:kubernetes_state.container.memory_requested{$pod} by {pod_name}",
                      "aggregator": "last",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query5",
                      "query": "sum:kubernetes_state.container.memory_limit{$pod} by {pod_name}",
                      "aggregator": "last",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query6",
                      "query": "sum:kubernetes.memory.working_set{$pod,kube_container_name:*} by {pod_name}",
                      "aggregator": "last",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query7",
                      "query": "sum:kubernetes_state.container.memory_limit{$pod} by {pod_name}",
                      "aggregator": "last",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query8",
                      "query": "sum:kubernetes.memory.rss{$pod,kube_container_name:*} by {pod_name}",
                      "aggregator": "last",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query9",
                      "query": "sum:kubernetes.memory.cache{$pod,kube_container_name:*} by {pod_name}",
                      "aggregator": "last",
                      "data_source": "metrics"
                    },
                    {
                      "name": "query10",
                      "query": "sum:kubernetes.memory.swap{$pod,kube_container_name:*} by {pod_name}",
                      "aggregator": "last",
                      "data_source": "metrics"
                    }
                  ],
                  "formulas": [
                    {
                      "limit": {
                        "count": 50,
                        "order": "desc"
                      },
                      "formula": "query1"
                    },
                    {
                      "formula": "query2"
                    },
                    {
                      "formula": "query3 / query4"
                    },
                    {
                      "formula": "query5"
                    },
                    {
                      "formula": "query6 / query7"
                    },
                    {
                      "formula": "query8"
                    },
                    {
                      "formula": "query9"
                    },
                    {
                      "formula": "query10"
                    }
                  ],
                  "response_format": "scalar"
                }
              ],
              "has_search_bar": "auto"
            }
          }
        ],
        "show_title": true,
        "layout_type": "ordered"
      }
    }
  ],
  "description": "Converted from Grafana dashboard https://grafana.com/grafana/dashboards/15038 (by danielsossick). Grafana dashboard to display external-dns metrics",
  "layout_type": "ordered",
  "reflow_type": "fixed",
  "template_variables": [
    {
      "name": "pod",
      "prefix": "pod_name",
      "default": "*",
      "available_values": []
    }
  ]
}