博客/工程

Grafana插件教程:Polystat面板(第一部分)

2019年4月2日4分钟

Polystat

grafana-polystat-panel插件创建的目的是提供一种方法来汇总多个指标,并实现对其他仪表板的灵活下钻。

本例将重点介绍如何创建一个面板卡珊德拉使用来自普罗米修斯收集自Kubernetes集群。我们将重点关注来自cAdvisor的CPU/内存/磁盘的基本指标,但是一个良好的工具化服务将有许多指标表明总体健康状况,例如每秒请求数、错误率等等。

此面板允许您将这些指标组合成一个整体运行状况状态,可用于向下钻取到更详细的仪表板。对于这个Cassandra的例子,最终结果是这样的:

小组的目标

最基本的

获取CPU、内存和磁盘利用率将提供足够的指标来演示合成指标背后的思想,并在Grafana中显示它们。下面的PromQL查询很简单,可以使用模板变量进行调整,使面板更“通用”。首先,将使用一些简单的查询,然后进行修改。

CPU

container_cpu_usage_seconds_total{名称空间= " metrictank ", pod_name cassandra-sfs - = ~”。*”,container_name = "卡桑德拉"}

上面使用polystat的查询将显示大量的多边形(每个度量一个):

所有卡桑德拉豆荚

有相当多的pod显示(我们有多个Cassandra集群),所以我们将缩小到一个集群:

container_cpu_usage_seconds_total{名称空间= " metrictank ", pod_name cassandra-sfs - = ~”。*", container_name="cassandra", cluster="ops-tools1"}

名称仍然不会显示出来,因为它们太长了(提示:工具提示会显示它们)。添加{{pod_name}}将导致更好的显示:

都是传说中的卡桑德拉豆荚

结果:

所有卡桑德拉豆荚都有传说结果

查询需要更多的工作——度量是一个计数器——所以我们将使用irate来获得瞬时每秒值。

愤怒的(container_cpu_usage_seconds_total{名称空间= " metrictank ", pod_name cassandra-sfs - = ~”。*", container_name="cassandra", cluster="ops-tools1"}[1m])

所有卡珊德拉吊舱的CPU速率

磁盘

虽然CPU很有趣,但cassandra中的磁盘空间通常会用完,所以我们将添加这个查询来显示磁盘使用情况:

container_fs_usage_bytes{名称空间= " metrictank ", pod_name cassandra-sfs - = ~”。*", container_name="cassandra", cluster="ops-tools1"}
container_fs_limit_bytes{名称空间= " metrictank ", pod_name cassandra-sfs - = ~”。*", container_name="cassandra", cluster="ops-tools1"}
container_fs_limit_bytes{名称空间= " metrictank ", pod_name cassandra-sfs - = ~”。*", container_name="cassandra", cluster="ops-tools1"}- container_fs_usage_bytes{namespace="metrictank", pod_name=~"cassandra-sfs-.*", container_name="cassandra", cluster="ops-tools1"}

内存

为了完成我们的统计,添加这个内存查询:

container_memory_usage_bytes{名称空间= " metrictank ", pod_name cassandra-sfs - = ~”。*", container_name="cassandra", cluster="ops-tools1"}

我们现在可以看到结果:

所有卡桑德拉吊舱,所有数据

格式化

在Grafana中,属性本身的值类型是“short”。切换到polystat的选项,我们可以将它们调整为更有意义的东西:

cpu覆盖

磁盘覆盖

内存覆盖

阈值

下一步是为每个指标创建阈值。在阈值部分,添加一个新的阈值,将名称设置为与指标匹配,并根据需要进行配置。这个示例为CPU利用率设置了60%的警告值和80%的关键值。

CPU阈值设置

面板现在看起来是这样的:

CPU阈值结果

复合材料

现在我们有了基本的指标和阈值,我们可以创建组合。(注意:这里创建的组合是为单个节点创建的,以保持一切简单,但最终结果将显示所有节点。)

复合允许您将多个指标分组在一起,并显示反映阈值状态的单个项。多边形被赋予了“最差”状态的颜色。工具提示将显示各个状态,按最差到最好排序。

要创建一个复合,单击复合部分中的Add:

复合材料

这将创建一个名为“Cassandra”的新组合,并将包括与CPU/内存/磁盘匹配的所有指标。

复合卡桑德拉

复合的结果将改变多边形统计器,以显示代表三个不同指标的单个多边形,并将动画显示每个指标的值。

动画

点击率

这个面板提供了三个级别的点击。

  1. 违约点进
  2. 覆盖点进
  3. 复合点进

优先级的顺序是最特定到最不特定(3,2,1)。

违约点进

当没有为多边形定义覆盖或复合点击时,可以设置全局使用点击。

在这个例子中,点击被设置为:

仪表板/ db /卡桑德拉

点击默认

单击该多边形将带您到同一个Grafana服务器中的Cassandra仪表板。点击可以是任何有效的url。

该插件还包括可以传递给其他仪表板的参数。

仪表板/ db /卡桑德拉?var-environment = $ Cluster&var-instance =

点击默认

可以传递其他变量;详情如下:https://github.com/grafana/grafana-polystat-panel#single-metric-variables

覆盖点进

在覆盖部分中,可以指定应用该特定覆盖的单击。这主要用于不使用复合材料的情况。

设置CPU的点击率为…

仪表板/ cpu ?var-node = $ {__cell_name}

…将带你到一个名为“CPU”的仪表板,并传递所单击的多边形的值。

复合点进

第三种类型的点击直通用于指定当一个合成多边形被点击时要去哪里。实现方法与上述相同。

组合有另一组可以传递给点击点的变量。看到的:https://github.com/grafana/grafana-polystat-panel#composite-metric-variables

模板

为了保持上面的示例简单,名称是硬编码的。利用Grafana模板变量将使仪表板更加灵活。

查询使用“名称空间”和“集群”,因此让我们创建它们。

添加一个模板变量,允许选择不同的集群:

模板化变量

几乎有

仪表板看起来像这样,显示一个节点,显示三个不同的指标。

指示板完成

仪表板完成动画

结束

要完成面板,只需修改组合以匹配每个节点的regex。

composite1composite2

在改变复合后,最终结果将是这样的:

小组的目标

关于第二部分

第2部分将详细介绍更多的复合选项和高级功能,使它们更容易创建。

如果你已经用polystat创建了一些仪表板,我们很乐意看到它们!