环境
k8s 集群
使用 prometheus-community/kube-prometheus-stack 的 helm chart 部署的 prometheus
问题描述
从 grafana 官网找了 一个ID 为 23560 名字为 etcd 重要指标监控的dashboard 监控。但是该监控有些无图,经过修改后将其保存为 etcd重要指标监控.yaml 的 configmap 文件[注意:kube-prometheus-stack dashboard 为 configmap 对象],执行 kubectl apply -f etcd重要指标监控.yaml -n kube-prometheus 应用,但是 grafana dashoboard 界面并没有这个新增的自定义监控,查看 grafana 日志如下。
bash
logger=provisioning.dashboard type=file name=sidecarProvider t=2025-10-27T03:45:39.342379303Z level=error msg="failed to save dashboard" file=/tmp/dashboards/etcd.json error="uid too long, max 40 characters"
从日志可以看出是因为 uid 太长了。
json
apiVersion: v1
kind: ConfigMap
metadata:
labels:
grafana_dashboard: "1"
name: custom-etcd-configmap
namespace: kube-prometheus
data:
etcd.json: |-
{
......
"title": "custom-etcd 重要指标监控",
"uid": "custom-163b5291-3f5b-411e-8e06-aee25f984158",
......
解决
将 uid 部分改为如下,然后执行kubectl apply -f etcd重要指标监控.yaml -n kube-prometheus
json
"uid": "163b5291-3f5b-411e-8e06-aee25f984158",