我正在尝试从一段时间内其他几个 Graphite 指标的总和中减去几个 Graphite 指标的总和。但是,根据我是在执行 diffSeries 之前还是之后进行总结,我会得到不同的结果。
我希望下面的这两个 Graphite 查询是相同的,但它们不是:
summarize(
diffSeries(
sum(
stats_counts.otherthing.one,
stats_counts.otherthing.two
),
sum(
stats_counts.thing.one,
stats_counts.thing.two,
stats_counts.thing.three
)
),
'1week',
'sum',
true
)
通过 diffSeries 外部的摘要(如上所述),根据查看 csv 导出中的原始数据,我得到的数字似乎太高了。
diffSeries(
summarize(
sum(
stats_counts.otherthing.one,
stats_counts.otherthing.more_than_five
),
'1week',
'sum',
true
),
summarize(
sum(
stats_counts.thing.one,
stats_counts.thing.two,
stats_counts.thing.three,
),
'1week',
'sum',
true
)
)
上面似乎给了我正确的数据,但我宁愿只总结一次,而且我一生都无法弄清楚为什么它应该不同。当我只是将它们作为总和传递并且不进行总结时, diffSeries 的参数似乎变得困惑,但我不确定如何。
最佳答案
我不完全确定,但 diffSeries
也出现了一些奇怪的行为。就我而言,看起来我总是得到积极的差异,而实际上它应该是消极的。
查看代码,diffSeries
使用了一个名为 safeDiff
的函数。 。在我看来就像 first line of the function可能是罪魁祸首。它只接受非 None
的值,因此,如果您尝试将数值与 None
进行比较,它将输出(正)数值...我会在哪里预计会出现负面影响。
也许有办法将 None
/null
转换为零?我在 Graphite 中找不到这样做的函数。有一个drawNullAsZero
,但是有某种 treatNullAsZero
吗?或者也许我错过了什么。
无论如何,我怀疑这可能与您遇到的问题有关。
关于graphite - Graphite 的 summarise 和 diffSeries 的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13637477/