石墨的汇总顺序和diffSeries

时间:2012-11-30 00:58:01

标签: graphite

我试图在总结的时间段内从几个其他石墨指标的总和中减去几个石墨指标的总和。但是,我会得到不同的结果,这取决于我在做diffSeries之前或之后总结。

我希望下面的这两个石墨查询是相同的,但它们不是:

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的参数在我作为总和传递它们并且不总结时会搞砸,但我不确定如何。

1 个答案:

答案 0 :(得分:2)

我不完全确定,但diffSeries也有一些奇怪的行为。在我的情况下,看起来我总是得到积极的差异,当它应该是负面的。

查看代码,diffSeries使用名为safeDiff的函数。在我看来,first line of the function可能是罪魁祸首。它只需要不是None的值,所以如果你尝试从None区分数值,它将输出(正)数值......我预期会有一个负值。

也许有办法将None / null转换为零?我无法在石墨中找到这样做的功能。有一个drawNullAsZero,但有某种treatNullAsZero吗?或许我错过了什么。

无论如何,我怀疑可能与您所看到的问题有关。