心智模型:标准选项与覆盖项
字段配置分两层:
- 标准选项(Standard options):对面板内所有字段生效——单位、最大最小值、小数位、阈值、图例、工具提示。
- 覆盖项(Overrides):只对命中匹配器的字段生效——「这一条曲线用红色」「这一列换成字节单位」。
一句话:先定标准,再用例外。同一配置项两处都设时,覆盖项获胜。把 90% 的功夫花在标准选项上,剩下 10% 的「刺头」系列交给覆盖项。
常用标准选项速查
| 配置项 | 位置 | 说明 |
|---|---|---|
| Unit | Standard options → Unit | reqps、percent (0.0-1.0)、bytes 等,决定轴与数值的格式化 |
| Min / Max | Standard options | 不填按数据自动推断;Gauge 类强烈建议手填 |
| Decimals | Standard options | 自动或固定小数位 |
| Thresholds | Standard options | 阈值配色,配合色阶显示模式生效 |
| Legend | Legend options | Prometheus 查询可用 {{instance}} 模板 |
| Tooltip | Tooltip options | Single / All 模式、排序方式、最大高度 |
| Value mappings | Value mappings | 把 1 显示成 UP、0 显示成 DOWN |
常用覆盖项模式
Overrides 区块里最好用的几个匹配器:
| 匹配器 | 典型用途 |
|---|---|
| Fields with name | 指定某几条曲线单独配色、配单位 |
| Fields with label | 按标签命中,如所有 status="500" 的序列 |
| Fields with name by regex | 用正则批量圈定列 |
| By type | 对所有字符串列统一处理 |
| Filters by query | 按查询 RefID 圈定,如只覆盖 B 查询结果 |
覆盖动作(properties)里最常见的组合:Color + Thresholds、Unit、Decimals、No value(空值显示文案)、Rename by field、以及 Filter data series(直接把不要的系列从图上剔除)。
提示: 想让覆盖项按标签命中,前提是查询结果保留了标签;Prometheus 查询的 Legend 与标签格式会影响匹配,先用 Inspect → Data 确认字段名。
值映射示例
把 up 指标的值映射成可读状态,对应 JSON 片段:
{
"mappings": [
{
"type": "value",
"options": {
"0": { "text": "DOWN", "color": "red" },
"1": { "text": "UP", "color": "green" }
}
},
{
"type": "special",
"options": {
"match": "null",
"result": { "text": "无数据", "color": "gray" }
}
}
]
}
value 映射离散值,range 映射区间,regex 匹配文本,special 处理 null 与 NaN。状态类面板建议永远配一条 special 兜底,否则空值显示成难看的 -。
常见坑
- 设了单位但表格列没变:表格类可视化常需要对该列单独 override 才生效。
- 阈值颜色不出来:颜色要配合显示模式(如 Gradient mode、Cell background)才会显现。
- 覆盖项越加越多:超过五六个时回头检查标准选项是不是设错了基线,或该用 transformation 重塑数据。