1.变量
用户需要指定变量的名称,后续用户就可以通过$variable_name的形式引用该变量。Grafana目前支持6种不同的变量类型,而能和Prometheus一起工作的主要包含以下5种类型:
类型 | 工作方式 |
Query | 允许用户通过Datasource查询表达式的返回值动态生成变量的可选值 |
Interval | 该变量代表时间跨度,通过Interval类型的变量,可以动态改变PromQL区间向量表达式中的时间范围。如rate(node_cpu[2m]) |
Datasource | 允许用户动态切换当前Dashboard的数据源,特别适用于同一个Dashboard展示多个数据源数据的情况 |
Custom | 用户直接通过手动的方式,定义变量的可选值 |
Constant | 常量,在导入Dashboard时,会要求用户设置该常量的值 |
Label属性用于指定界面中变量的显示名称,Hide属性则用于指定在渲染界面时是否隐藏该变量的下拉框。
除了使用PromQL查询时间序列以过滤标签的方式以外,Grafana还提供了几个有用的函数
函数 | 作用 |
label_values(label) | 返回Promthues所有监控指标中,标签名为label的所有可选值 |
label_values(metric, label) | 返回Promthues所有监控指标metric中,标签名为label的所有可选值 |
metrics(metric) | 返回所有指标名称满足metric定义正则表达式的指标名称 |
query_result(query) | 返回prometheus查询语句的查询结果 |
2.例子
也可将5m替换为变量$__rate_interval,此时 grafana 会按展示区间的尺度自动设定 promql 中的平滑区间,保证不同需求下的良好行为。
针对图像我们可以把计算时间提取为变量,设置默认值
3.合并多个数据源实践
操作方法很简单,点击Transform,然后增加一个Merge规则即可。 同理,其他对于数据的处理也可以使用Transform。这里面需要着重说明的是,Transform这个功能通常是指对结果集数据在前端展示之前进行增删改查,显示、隐藏使用。使用merge 合并,使用fliter 选择部分字段展示。
4.参考
https://yunlzheng.gitbook.io/prometheus-book/part-ii-prometheus-jin-jie/grafana/templating