Spring boot Grafana singlestat和transformNull

Spring boot Grafana singlestat和transformNull,spring-boot,grafana,graphite,spring-boot-actuator,Spring Boot,Grafana,Graphite,Spring Boot Actuator,我正在使用Graphite数据源的Grafana 5.0.3,使用transformNull函数的Singlestat存在一些问题。下面引用的数据源来自Spring Boot 2 Millomer的http度量,因此我无法修改生成此数据的代码 我有一个跟踪上次服务器重启后HTTP 500错误的图表 场景1-数据变为空 当我重新启动服务器并且没有出现新的HTTP 500错误时,会发生这种情况: 我还有一个Singlestat,显示该图的当前值。如果我使用transformNull将null数据转

我正在使用Graphite数据源的Grafana 5.0.3,使用transformNull函数的Singlestat存在一些问题。下面引用的数据源来自Spring Boot 2 Millomer的http度量,因此我无法修改生成此数据的代码

我有一个跟踪上次服务器重启后HTTP 500错误的图表

场景1-数据变为空 当我重新启动服务器并且没有出现新的HTTP 500错误时,会发生这种情况:

我还有一个Singlestat,显示该图的当前值。如果我使用transformNull将null数据转换为0s,它将按预期工作(sumSeries之前或之后的transformNull显示相同的结果):

如果我省略transformNull,那么我似乎得到了上次收集数据时的总和,而不考虑当前值应为0的事实:

情景1解决方案 我应该使用transformNull,因为这将说明当前数据为null

场景2-数据为非空 发生错误且服务器仍在运行后,会发生这种情况:

如果我的Singlestat不包含transformNull函数,那么它将按预期工作。我想这是因为它显示了上次收集数据时的数据:

但是,如果我包括transformNull,我会看到数据非常频繁地归零。我的猜测是,因为数据是从石墨中提取出来的,所以有时Grafana会在“现在”之前绘制图表,但“现在”的石墨数据并不存在。我的Spring引导服务器每15秒将数据推送到Graphite。

情景2解决方案 我不应该使用transformNull,因为这将确保从上次收集数据时获取数据

问题:
如何在Singlestat中准确显示这些数据?这只是我将数据从Spring Boot推送到Graphite的速度和Grafana刷新间隔的神奇结合吗?

我不知道任何底层解决方案,但以下是对我有效的方法。我使用transformNull来确保最近的样本具有正确的数字,然后我更改了时间范围,使其不是实时的,而是延迟了30秒或一分钟。例如,在“最后1小时”中,我将窗口从“from:now-1h,改为:now”改为“from:now-1h,改为:now-30s”

这并不能解决问题,但这是一个对我来说足够好的解决办法