Порядок суммирования и diffSeries с графитом

Я пытаюсь вычесть сумму пары метрик графита из суммы пары других метрик графита за суммарный период времени. Однако я получаю разные результаты в зависимости от того, суммирую ли я до или после выполнения 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 путаются, когда я просто передаю их как суммы и не суммирую, но я не уверен, как это сделать.


person mmrobins    schedule 30.11.2012    source источник
comment
Блин, 50 очков потрачено впустую на награду. Нет ответов. Если у кого-то даже есть комментарии о том, как я могу упростить ответ, дайте мне знать.   -  person mmrobins    schedule 12.12.2012


Ответы (1)


Я не совсем уверен, но у diffSeries тоже было какое-то странное поведение. В моем случае это выглядело так, как будто я всегда получал положительные различия, когда они должны были быть отрицательными.

Глядя на код, diffSeries использует функцию с именем safeDiff. Мне кажется, что первый строка функции может быть причиной. Он принимает только значения, отличные от None, поэтому, если вы попытаетесь отличить числовое значение от None, он выведет (положительное) числовое значение... Там, где я ожидал отрицательное.

Возможно, есть способ преобразовать None/null в нули? Я не мог найти функцию в графите для этого. Существует drawNullAsZero, но есть ли какой-то treatNullAsZero ? или может я что-то пропустил.

В любом случае, я подозреваю, что это может быть связано с проблемой, которую вы видите.

person gingerlime    schedule 25.12.2012
comment
Спасибо за внимание. Я немного просмотрел исходный код и думаю, что мне нужно будет сделать это еще немного, чтобы получить ответ на этот вопрос, поскольку это, по-видимому, не горячая тема - награда даже не получила комментариев. Когда у меня будет время, я слежу за safeDiff. Я надеялся, что будет больше тестов функций, которые я мог бы обновить, но, похоже, их немного. - person mmrobins; 28.12.2012