56 lines
1.8 KiB
YAML
56 lines
1.8 KiB
YAML
# k8s/monitoring/dashboards/control-plane-logs.yaml
|
|||
|
|
# Surfaces controller/control-plane logs that are already in Loki today
|
||
|
|
# (Promtail scrapes every namespace with no filter) — this dashboard is the
|
||
|
|
# "make it visible" piece, not new log collection.
|
||
|
|
apiVersion: v1
|
||
|
|
kind: ConfigMap
|
||
|
|
metadata:
|
||
|
|
name: control-plane-logs-dashboard
|
||
|
|
namespace: logging
|
||
|
|
labels:
|
||
|
|
grafana_dashboard: "1"
|
||
|
|
data:
|
||
|
|
control-plane-logs.json: |
|
||
|
|
{
|
||
|
|
"title": "Cluster Control Plane & Controllers (Logs)",
|
||
|
|
"uid": "control-plane-logs",
|
||
|
|
"schemaVersion": 39,
|
||
|
|
"timezone": "browser",
|
||
|
|
"time": { "from": "now-1h", "to": "now" },
|
||
|
|
"refresh": "30s",
|
||
|
|
"panels": [
|
||
|
|
{
|
||
|
|
"id": 1,
|
||
|
|
"title": "Error rate by namespace",
|
||
|
|
"type": "timeseries",
|
||
|
|
"gridPos": { "h": 6, "w": 24, "x": 0, "y": 0 },
|
||
|
|
"datasource": { "type": "loki", "uid": "loki" },
|
||
|
|
"targets": [
|
||
|
|
{
|
||
|
|
"expr": "sum by (namespace) (count_over_time({namespace=~\"kube-system|cert-manager|ingress-nginx|longhorn-system\"} |= \"error\" [5m]))"
|
||
|
|
}
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": 2,
|
||
|
|
"title": "Control plane (kube-apiserver, controller-manager, scheduler)",
|
||
|
|
"type": "logs",
|
||
|
|
"gridPos": { "h": 10, "w": 24, "x": 0, "y": 6 },
|
||
|
|
"datasource": { "type": "loki", "uid": "loki" },
|
||
|
|
"targets": [
|
||
|
|
{ "expr": "{namespace=\"kube-system\"}" }
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": 3,
|
||
|
|
"title": "Cluster add-ons (cert-manager, ingress-nginx, longhorn)",
|
||
|
|
"type": "logs",
|
||
|
|
"gridPos": { "h": 10, "w": 24, "x": 0, "y": 16 },
|
||
|
|
"datasource": { "type": "loki", "uid": "loki" },
|
||
|
|
"targets": [
|
||
|
|
{ "expr": "{namespace=~\"cert-manager|ingress-nginx|longhorn-system\"}" }
|
||
|
|
]
|
||
|
|
}
|
||
|
|
]
|
||
|
|
}
|