石墨在数据点之间具有空值

Posted

技术标签:

【中文标题】石墨在数据点之间具有空值【英文标题】:Graphite has null values between data points 【发布时间】:2020-03-17 10:00:23 【问题描述】:

我有一个从不同服务器获取数据包的 API。它将这些数据格式化为不同的小型 JSON 单元。我编写了一个算法,使用命令 json2graphite 将它们发送到石墨。 发送效果很好,传入的数据看起来也不错。

现在的问题: 石墨中显示的数据显示每个条目后跟一个空值。

The data points that should be connected

我知道这些数据也可以使用 Graphite 接口提供的函数连接,但这无济于事,因为 Grafana 板总是在 value 和 null 之间来回跳转。 有没有办法告诉 Grafana,如果超过 1 分钟左右没有数据,它只会变为 null?

我已经尝试使用“storage-schemas.conf”和“storage-aggregation.conf”中的数据来解决问题。不幸的是没有成功。

storage-schemas.conf:

[default_1min_for_1day]
pattern = .*
retentions = 10s:6h,30s:8d,1m:31d,10m:1y,1h:5y

聚合.conf:

[default_average]
pattern = .*
xFilesFactor = 0
aggregationMethod = average

如果你想知道更多,问我。 :)

【问题讨论】:

【参考方案1】:

Grafana 可以选择连接由空值分隔的数据点。您可以在 Grafana 文档的“显示样式设置”下显示的 the screenshot 中查看如何启用此功能。

在 Graphite 作曲家中,您也可以通过在此处的 Graph 选项下指定 connected 线模式来实现:

此外,您可以使用 Graphite 的 keepLastValue 函数将最后接收到的值传递到有空值的间隙。

【讨论】:

感谢您帮助我。正如我上面写的,简单地连接接口中的数据点对我来说不是一个解决方案。不幸的是,显示最后一个值并不是一个很好的解决方案。如果最后一个值表示服务器仍然在线但已经在两天前是相当有害的。他应该很快告诉我服务器离线。但感谢您的帮助。 【参考方案2】:

我还没有找到直接的解决方案,但我现在会尽量减少条目之间的间隔。我注意到请求花费的时间太长了:2-5 分钟。 可能有太多服务器,所以请求阻塞端口太久。 问题尚未解决,但我想如果 5 天内没有人说我有问题,我会将其标记为已解决。

【讨论】:

以上是关于石墨在数据点之间具有空值的主要内容,如果未能解决你的问题,请参考以下文章

石墨——如何将数据发送到时间戳超过一年的碳

Graphite 在不到一秒的时间间隔内聚合数据

查询特定数据点的 Graphite Metrics

我只需要在 pyspark 数据框中附加那些具有非空值的人

Spark数据框不添加具有空值的列

在每个数据库的表中查找具有空值的列[关闭]