概 述

生产环境指标监控对于运维分布式系统非常重要。Alluxio使用Codahale指标库(见文末链接1)收集I/O吞吐量、RPC吞吐量和资源使用的指标。Alluxio指标可在其webUI(见文末链接2)中显示,还能通过REST端点获取,也可按时间序列方式导出至多个第三方接收器(参阅文档见文末链3)。

Grafana是一款全面的指标可视化软件,它依靠拉取系统(例如Alluxio)通过接收器收集的指标并以更有用的形式进行可视化。本手册将介绍如何设置Grafana和Graphite(Alluxio支持的接收器,可将指标放入时间序列数据库),并探讨该组合提供的一些可能点。

安 装

安装Graphite和Grafana的方法有很多:从源码安装、在本地、Docker和其他几种方法。Alluxio、Graphite和Grafana全都有关于各种安装方式的文档。我在本手册中选择使用Docker安装以节省管理依赖项的时间。本篇文档介绍如何使用Docker安装Alluxio与Graphite和Grafana。通过将--net=alluxio_nwt添加到docker run命令,除Grafana外的所有容器可在同一网络上运行。这使得容器可轻松地彼此通信。所有这三个服务都开放了WebUI,用于用户确保这些服务都流程并正确的运行。

配 置

Grafana不会直接收集任何指标,而是使用Graphite作为信息的中间人。Alluxio将其指标推送给Graphite,Graphite将它们存入时间序列数据库中,然后Grafana从中拉取这些指标。


由于Alluxio不与Grafana通信,因此唯一需要的配置更改在Alluxio和Graphite之间。Alluxio已经支持Graphite作为第三方接收器,因此需要在位于/alluxio/conf的Alluxio的metrics.properties文件添加以下内容:

alluxio.metrics.sink.graphite.class=alluxio.metrics.sink.GraphiteSinkalluxio.metrics.sink.graphite.host=graphitealluxio.metrics.sink.graphite.port=2003alluxio.metrics.sink.graphite.period=10

无论是否使用Docker,metrics.properties中都需要以上五行。启用接收器的同时,它们还要告诉Alluxio何时何地推送其指标。编辑好的metrics.properties文件也必须添加到所有Alluxio工作节点。为确保Graphite正确配置了Alluxio,可以转到Graohite的webUI来检查Alluxio指标是否存在。

Alluxio的所有指标显示在Graphite中大约需要五到十分钟,但在配置了Alluxio之后,必须将其添加为Grafana的数据源。与Alluxio类似,Grafana已经内置了对Graphite的支持,因此配置很简单。只要按照指导说明将Graphite添加为数据源。需在“HTTP URL”下输入webUI URL,并将“HTTP Access”设置为“Browser”,然后设置Graphite版本。之后,Grafana将开始从Graphite拉取指标,您可以开始在Grafana中显示Alluxio的指标。

查询指标


要在Grafana中显示Alluxio的各项指标,需要在仪表盘面板中创建查询。面板是显示所有指标的位置,也是输入查询检索指标的入口。使用Graphite查询与浏览文件系统非常类似。用户还可使用多种功能,以各种方式组合、过滤和处理指标。这使得用户可控制想要显示的内容。 单个面板中可添加多个查询,然后可使用函数通过汇总、求异和划分查询来处理指标。如果想要在面板中仅显示一个指标,也可启用或禁用查询可视性。这使得函数中使用多个查询。“*”在创建查询时也是很有用的符号,因为它显示所有可用指标,并且在汇总工作节点指标时非常有用。Grafana确实提供了Graphite使用文档,是个有用的基础文档,虽仍有用但有些过时。 还有一些显示查询的选项,包括图形、表格、量表和单条数据。在这众多可视化中,您可以添加范围、单位、阈值、编辑图例、轴比例和其他许多选项,其中某些选项对每种可视化是唯一的。当把所有不同类型的查询与可视化结合时,每种图形或单个统计信息是唯一的。

探索Grafana

创建仪表盘时,可更改面板大小来适应屏幕上的更多指标或使得仪表盘更具视觉吸引力。仪表盘还可具有使指标按类型组织的行。这些行是可折叠的,有助于减少屏幕拥挤。通过将查询和所有编辑面板的方式结合,可以多种不同方式可视化指标。

当我第一次使用Grafana时遇到了一些挑战,并在使用所有可用选项时,启动变得困难。再加上所有不同的可用功能,很难找到符合目标的功能。最重要的是,图形和单个统计的阈值很难使用,并且值得注意的是,阈值仅支持使用限制功能的常量值。

许多编辑选项也很少提供功能描述,在很短时间后,我逐渐适应了该软件,并且我能够创建许多包含Alluxio指标的仪表盘。该仪表盘仅使用了一小部分可用功能,但如果需要可作为仪表盘基础。可在/alluxio/integration/grafana/alluxio-grafana-template.json中找到包含Alluxio指标的模板。

希望您现在可以安心地创建子集的Grafana仪表盘,显示任何所需指标!


参考链接:


链接1:

https://metrics.dropwizard.io/4.0.0/

链接2:

https://docs.alluxio.io/os/user/stable/en/basic/Web-Interface.html

链接3:

https://docs.alluxio.io/os/user/stable/en/operation/Metrics-System.html