使用 Prometheus 的 InfoMetricFamily 在 Grafana 中制作 table 可视化

Make table visualization in Grafana using Prometheus's InfoMetricFamily

我有以下代码:

c = InfoMetricFamily("health", "Health Monitoring")
c.add_metric(labels=name, value={"name": name, "status": status, "value": value})

为 Prometheus 提供以下指标:

# HELP health_info Health Monitoring
# TYPE health_info gauge
health_info{name="external",status="danger",value="N\A"} 1.0

我想在 Grafana 中构建 table 仪表板,其中 namestatusvalue 将是列。我该怎么做?

由于Grafanav4.3, the table panel支持Prometheus标签的显示

要创建显示,请在仪表板中添加一个 table 面板:

  1. Query 选项卡中
    1. Instant切换为True并将Format设置为Table;如果您从填写查询开始,您可能会收到 BIG 响应冻结您的 window
    2. Metrics 中写下您的查询:在您的情况下 health_info
  2. 在可视化选项卡中,您将控制应显示的列并设置其显示格式
    1. 删除Time列(除非你需要它,我个人很少这样做)
    2. 将包罗万象的规则 /.*/ 设置为类型 Hidden;它会隐藏你所有的列
    3. 使用 Add column style 隐藏要显示的列,方法是在 Apply to columns named 中键入名称然后显示(完成效果很好)
    4. 您可以调整 Column Header 中的列名称并调整显示

注意:目前,您无法修改列的顺序。

如果您想在同一行显示多个指标,请注意:

  • 所有标签必须匹配:通过应用聚合函数删除冲突的标签
  • 度量的名称是一个标签:您还需要去掉 __name__ 标签
  • 添加第二个值时,第一个值的列名称变为Value #A,需要调整显示