VictoriaMetrics 中文教程(04)对接 Grafana 同时介绍 vmui
VictoriaMetrics 中文教程系列文章:
- VictoriaMetrics 中文教程(01)简介
- VictoriaMetrics 中文教程(02)安装
- VictoriaMetrics 中文教程(03)如何配置 Prometheus 使其把数据远程写入 VictoriaMetrics
Grafana 简介
Grafana 是一款开源的数据可视化和监控工具,支持多种数据源,如 Prometheus、InfluxDB、Elasticsearch、MySQL 等。Grafana 提供了丰富的图表和仪表盘,可以帮助用户实时监控和分析各种性能数据、日志信息。
Grafana 基本是运维数据可视化的标配工具,如果你使用 Prometheus,那么 Grafana 是一个不错的选择。
对接 Grafana
由于 VictoriaMetrics 完全兼容 Prometheus 的接口协议,可以把 VictoriaMetrics 看做是 Prometheus,所以在 Grafana 中对接 VictoriaMetrics 和对接 Prometheus 是一样的。在 Grafana 中创建数据源的时候,就选择 Prometheus 类型的数据源,然后填写 VictoriaMetrics 的地址即可。
对于单机版的 VictoriaMetrics,其数据源地址填写为:
http://<victoriametrics-addr>:8428
替换 <victoriametrics-addr>
为你自己的 VictoriaMetrics 地址即可。注意,在 “Type and version” 部分,建议选在类型为 “Prometheus”,version 至少选择 “2.24.x”
这样的配置会使得 Grafana 使用性能更好的 API 来获取标签值。
配置完了数据源之后,进而可以使用 PromQL、MetricsQL 等语法来配置仪表盘。MetricsQL 是 VictoriaMetrics 的查询语言,是 PromQL 的超集,支持更多的函数和操作符。
另外,VictoriaMetrics 现在也提供了一个 Grafana 插件,可以直接在 Grafana 中安装 VictoriaMetrics 插件,方便用户直接使用 VictoriaMetrics 的查询语言。在 Grafana 中创建数据源是需要特定权限的,如果您看不到创建数据源的按钮,可以联系您的系统管理员来做这个事情。
vmui
除了使用 Grafana 来展示 VictoriaMetrics 的数据,VictoriaMetrics 也提供了一个自己的 UI 工具,叫做 vmui。vmui 是一个轻量级的监控工具,可以直接在浏览器中查看 VictoriaMetrics 的数据,而不需要安装 Grafana。
vmui 的地址是:
- 单机版:
http://victoriametrics:8428/vmui
- 集群版:
http://<vmselect>:8481/select/<accountID>/vmui/
UI 中可以通过 table 和 graph 两种方式来展示数据,可以通过 MetricsQL 来查询数据。
vmui 提供了如下能力:
- Explore 查询探索
- Metrics explorer: 指标探索,对于选择的指标构建图表
- Cardinality explorer:基数探索,查看指标的基数
- Top Queries:查看查询的 Top N,最频繁的查询、最重的查询等
- Active queries:查看当前活跃的查询
- Tools 工具
- Trace analyzer:query-tracing 工具,一般在指标查询的时候就直接打开 trace 即可,不知道为什么要单独提供一个页面
- Query analyzer:查询分析,可以在查询页面导出结果,然后在这个页面上传分析
- WITH expressions playground:WITH 表达式的 playground,WITH 表达式是 MetricsQL 的一个特性,可以在查询中定义一些变量,然后在查询中使用
- Metric relabel debugger:指标重命名调试器,可以在这里调试指标重命名的规则
查询页面比较常用的功能是 step 的设置,默认如果不设置的话,VictoriaMetrics 会自动根据分辨率和时间范围计算出一个值,你也可以手工设置一个值。step 在 Prometheus 生态里非常关键,表示你希望 TSDB 按照一个什么样的间隔返回数据。很多初学者会很困惑,原始数据是什么样就直接返回得了,额外加了一个 step 参数来指定数据返回间隔,数据岂不是就失真了。
笔者猜测,可能有两个原因引入这个机制:
- 如果查询时间太大,返回的数据量太大,可能会导致浏览器崩溃,所以可以通过 step 来控制返回的数据量
- 查询多个 series 的时候,不同的 series 采集的数据时间戳未必是对齐的,没法做聚合计算,所以可以通过 step 来对齐数据
总结
本文介绍了如何在 Grafana 中对接 VictoriaMetrics,实现数据可视化展示。也顺便介绍了 VictoriaMetrics 自己的 UI 工具 vmui,可以直接在浏览器中查看 VictoriaMetrics 的数据,尤其是解释了 step 参数的设计,希望对你有帮助。