graphite - Graphite 的 summarise 和 diffSeries 的顺序

标签 graphite

我正在尝试从一段时间内其他几个 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/

相关文章:

docker - 虚拟机 CPU 使用率为 100%

javascript - 缩小大值以使用 D3.js 显示它们

graphite - 如何让 Graphite 简单地计算计数器,而不是对它们进行计时

maven - 如何覆盖 gadling.conf 进行 Graphite 配置?

monitoring - 如果过去 60 分钟内的交易少于 x,如何使用 Graphite 在 Seyren 中发出警报?

python - 我可以按正则表达式对 Graphite 结果进行分组吗?

java - 在 Graphite 服务器中 - Actuator/metrics/http.server.requests 计数未更新

graphite - 组合别名函数

export-to-csv - Statsd & Graphite - 以 CSV 格式获取数据

python - Graphite /碳导入错误 : No module named fields