Grafana singlestat 和 transformNull
Grafana singlestat and transformNull
我将 Grafana 5.0.3 与 Graphite 数据源一起使用,但在使用 transformNull 函数的 Singlestat 时遇到了一些问题。下面引用的数据源来自Spring Boot 2 Micrometer's http metrics,因此我无法修改生成此数据的代码。
我有一个图表可以跟踪自上次服务器重启以来的 HTTP 500 错误。
场景 1 - 数据变为空
当我重新启动服务器并且没有出现新的 HTTP 500 错误时会发生这种情况:
我还有一个 Singlestat 显示该图表的当前值。如果我使用 transformNull 将空数据转换为 0,它会按预期工作(sumSeries 之前或之后的 transformNull 显示相同的结果):
如果我省略 transformNull 那么我似乎得到了上次收集数据时的总和,而不管当前值应该为 0 的事实:
场景 1 解决方案
我应该使用 transformNull,因为这将说明当前数据为空。
场景 2 - 数据非空
发生错误并且服务器仍然 运行 后会发生这种情况:
如果我的 Singlestat 不包含 transformNull 函数,那么它将按预期工作。我想这是因为它显示了收集最后一个时间点的数据:
但是,如果我包含 transformNull,我会经常看到数据归零。我的猜测是,因为数据是从 Graphite 中提取的,所以有时 Grafana 绘制图形直到“现在”,但“现在”的 Graphite 数据不存在。我的 Spring 引导服务器每 15 秒将数据推送到 Graphite。
场景 2 解决方案
我应该不使用 transformNull,因为这将确保从上次收集数据时获取数据。
问题
如何在 Singlestat 中准确显示这些数据?这只是我将数据从 Spring Boot 推送到 Graphite 和 Grafana 刷新间隔的速率的某种神奇组合吗?
我不知道任何潜在的解决方案,但这是对我有用的。我使用 transformNull 来确保最近的样本具有正确的数字,然后我更改了时间范围,使其不是实时的,而是延迟了 30 秒或一分钟。例如。对于 "Last 1 hour",我将 window 从 "From: now-1h, To: now" 更改为 "From: now-1h, To: now-30s."
它没有解决问题,但它是一种对我来说足够好的解决方法。
我将 Grafana 5.0.3 与 Graphite 数据源一起使用,但在使用 transformNull 函数的 Singlestat 时遇到了一些问题。下面引用的数据源来自Spring Boot 2 Micrometer's http metrics,因此我无法修改生成此数据的代码。
我有一个图表可以跟踪自上次服务器重启以来的 HTTP 500 错误。
场景 1 - 数据变为空
当我重新启动服务器并且没有出现新的 HTTP 500 错误时会发生这种情况:
我还有一个 Singlestat 显示该图表的当前值。如果我使用 transformNull 将空数据转换为 0,它会按预期工作(sumSeries 之前或之后的 transformNull 显示相同的结果):
如果我省略 transformNull 那么我似乎得到了上次收集数据时的总和,而不管当前值应该为 0 的事实:
场景 1 解决方案
我应该使用 transformNull,因为这将说明当前数据为空。
场景 2 - 数据非空
发生错误并且服务器仍然 运行 后会发生这种情况:
如果我的 Singlestat 不包含 transformNull 函数,那么它将按预期工作。我想这是因为它显示了收集最后一个时间点的数据:
但是,如果我包含 transformNull,我会经常看到数据归零。我的猜测是,因为数据是从 Graphite 中提取的,所以有时 Grafana 绘制图形直到“现在”,但“现在”的 Graphite 数据不存在。我的 Spring 引导服务器每 15 秒将数据推送到 Graphite。
场景 2 解决方案
我应该不使用 transformNull,因为这将确保从上次收集数据时获取数据。
问题
如何在 Singlestat 中准确显示这些数据?这只是我将数据从 Spring Boot 推送到 Graphite 和 Grafana 刷新间隔的速率的某种神奇组合吗?
我不知道任何潜在的解决方案,但这是对我有用的。我使用 transformNull 来确保最近的样本具有正确的数字,然后我更改了时间范围,使其不是实时的,而是延迟了 30 秒或一分钟。例如。对于 "Last 1 hour",我将 window 从 "From: now-1h, To: now" 更改为 "From: now-1h, To: now-30s."
它没有解决问题,但它是一种对我来说足够好的解决方法。