首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kubernetes,Java和Grafana -如何只显示正在运行的容器?

Kubernetes,Java和Grafana -如何只显示正在运行的容器?
EN

Stack Overflow用户
提问于 2016-10-24 15:07:03
回答 2查看 762关注 0票数 3

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

希望创建一个仪表板,在这里我可以监视grafana中所有服务实例的堆使用情况。使用模式将度量写入statsd:

<servicename>.<containerid>.<processid>.heapspace工作得很好,我可以在我的图表中看到所有的堆用法。

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

在地堑有什么简单的解决办法吗?我可以说:如果您没有接收到超过X秒的度量数据,那么中止图表行吗?

更新:升级到最新的Grafana版本,并将" Null“设置为堆栈中的"Null value”值,而Null值没有工作。

也许是statsd的问题?

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

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

这有什么问题吗?

EN

回答 2

Stack Overflow用户

发布于 2016-10-24 15:35:27

这可能有两个原因,因为grafana对空值使用"connected“设置,和/或(就像这里的情况一样),因为当当前期间没有更新时,statsd将发送以前看到的值。

Grafana Config

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

首先,转到"Display“选项卡,在”堆栈&空值“下将"Null值”更改为" Null ",这将导致Grafana在没有数据的情况下停止显示行。

第二,如果使用图例,可以转到“图例”选项卡,并在“隐藏序列”下选中"With only null“复选框,这将导致只有在图表期间具有非空值的项才会在图例中显示。

状态Config

规范度量的statsd文档告诉我们:

如果下一次刷新时没有更新量规,它将发送前一个值。通过设置config.deleteGauges,您可以选择对此量规不发送任何度量。

因此,单是grafana的更改在本例中是不够的,因为石墨中的值实际上并不为空(因为statsd一直在发送最后一个读数)。如果您将statsd配置更改为有deleteGauges: true,那么statsd将不会发送任何内容,而石墨将包含我们期望的空值。

石墨笔记

另外,在每次启动容器时,当您创建新的系列时,这样的设置将导致数据文件夹不断增长。您肯定希望在一段时间的不活动之后删除旧的系列,以避免填满磁盘。如果您使用带有耳语的石墨,这可以像cron任务一样简单,运行find /var/lib/graphite/whisper/ -name '*.wsp' -mtime +30 -delete来删除在过去30天中没有修改过的窃听器文件。

票数 1
EN

Stack Overflow用户

发布于 2016-11-02 16:23:01

为了做到这一点,我会用

代码语言:javascript
复制
maximumAbove(transformNull(felix.javaclient.*.heap, 0), 0)

transformNull将接受当前为null的任何数据池,或在这一时刻未报告的数据,并将其转换为0值。

maximumAbove将只显示在所选时间段内在0之上具有最大值的系列“。

使用maximumAbove,您可以看到所有历史容器,如果只希望看到当前正在运行的容器,则应该只使用:currentAbove

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40221691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档