【问题标题】:Kubernetes, Java and Grafana - How to display only the running containers?Kubernetes、Java 和 Grafana - 如何仅显示正在运行的容器?
【发布时间】:2016-10-24 15:07:03
【问题描述】:

我正在做一个设置,我们在托管在 kubernetes 平台上的 docker 容器中运行我们的 Java 服务。

想要创建一个仪表板,我可以在其中监控我的 grafana 中所有服务实例的堆使用情况。使用模式将指标写入 statsd:

<servicename>.<containerid>.<processid>.heapspace 运行良好,我可以在图表中看到所有堆使用情况。

重新部署后,容器名称会发生​​变化,因此会将新值添加到现有图表中。我的问题是,旧行继续存在于收到的最后一个值的位置,但容器已经死了。

在 grafana 中是否有任何简单的解决方案?我只能说:如果您在 X 秒内没有收到某个指标的数据,请中止图表线?

更新: 升级到最新的 Grafana 版本并在 Stacking 和 Null 值中将“null”设置为“Null 值”的值不起作用。

也许是 statsd 的问题?

我正在以以下形式向 statsd 发送数据:

felix.javaclient.machine<number>-<pid>.heap:<heapvalue>|g

这有什么问题吗?

【问题讨论】:

    标签: java docker kubernetes grafana


    【解决方案1】:

    发生这种情况的原因有两个,因为 grafana 对空值使用“已连接”设置,和/或(就像这里的情况一样)因为 statsd 在没有更新时发送仪表的先前看到的值在当前期间。

    Grafana 配置

    您需要对图表配置进行 2 次调整:

    首先,转到“显示”选项卡并在“堆叠和空值”下将“空值”更改为“空”,这将导致 Grafana 在没有系列数据时停止显示行。

    其次,如果您使用的是图例,您可以转到“图例”选项卡并在“隐藏系列”下选中“只有空值”复选框,这将导致项目仅显示在图例中,如果它们有图表期间的非空值。

    statsd 配置

    statsd documentation for gauge metrics 告诉我们:

    如果仪表在下一次刷新时没有更新,它将发送 以前的值。您可以选择不发送任何度量标准, 通过设置config.deleteGauges

    因此,在这种情况下,仅 grafana 更改是不够的,因为石墨中的值实际上并不为空(因为 statsd 不断发送最后的读数)。如果您将 statsd 配置更改为 deleteGauges: true,那么 statsd 将不会发送任何内容,并且石墨将包含我们期望的空值。

    石墨笔记

    附带说明,这样的设置将导致您的数据文件夹在您每次启动容器时创建新系列时不断增长。您肯定会在一段时间不活动后考虑删除旧系列以避免填满磁盘。如果您正在使用带有 Whisper 的石墨,它可以像运行 find /var/lib/graphite/whisper/ -name '*.wsp' -mtime +30 -delete 的 cron 任务一样简单,以删除过去 30 天内未修改的 Whisper 文件。

    【讨论】:

    • Grafana 仍然显示没有值的图表线条。也许这是一个statsd问题?我以这种格式向 statsd 发送数据:' String payload = "felix.javaclient.machine" + i + "-" + i + ".heap:" + nextInt + "|g"; '
    • @CommanderKeen 我用应该可以解决问题的 statsd 配置更改更新了答案。
    【解决方案2】:

    为此,我会使用

    maximumAbove(transformNull(felix.javaclient.*.heap, 0), 0)
    

    transformNull 将获取当前为空或在该时刻未报告的任何数据点,并将其转换为 0 值。

    maximumAbove 将仅显示所选时间段内最大值高于0 的系列。

    使用maximumAbove,你可以看到所有的历史容器,如果你只想看到当前运行的容器,你应该使用这个:currentAbove

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-29
      • 1970-01-01
      • 2020-05-13
      • 2020-02-06
      • 2015-10-30
      • 1970-01-01
      • 2020-03-21
      • 2018-10-24
      相关资源
      最近更新 更多