Результаты функции Graphite summ() несовместимы для разных значений «от»

Я использую Graphite для записи информации о входе пользователя.

Когда я запускаю следующее:

render?target=summarize(stats_counts.login.success,"1day")&format=json&from=-1days

Я получаю результат:

[
  {
    "target": "summarize(stats_counts.login.success, \"1day\", \"sum\")",
    "datapoints": [
      [
        5,
        1435708800
      ],
      [
        21,
        1435795200
      ]
    ]
  }
]

Но для следующего запроса:

render?target=summarize(stats_counts.login.success,"1day")&format=json&from=-7days

Я получаю результат:

[
  {
    "target": "summarize(stats_counts.login.success, \"1day\", \"sum\")",
    "datapoints": [
      [
        0,
        1435190400
      ],
      [
        1,
        1435276800
      ],
      [
        0,
        1435363200
      ],
      [
        0,
        1435449600
      ],
      [
        5,
        1435536000
      ],
      [
        16,
        1435622400
      ],
      [
        6,
        1435708800
      ],
      [
        21,
        1435795200
      ]
    ]
  }
]

Обратите внимание на значение сегмента: 1435708800 в обоих результатах. В одном результате это: 5, а во втором результате: 6

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

В чем причина этой разницы?

ОБНОВЛЕНИЕ

Версия Graphite: 0.9.10 Настройки хранения:

[carbon]
pattern = ^carbon\.
retentions = 60:90d

[real_time]
priority = 200
pattern = ^stats.*
retentions = 1:34560000

[stats]
priority = 110
pattern = .*
retentions = 1s:24h,1m:7d,10m:1y

person ajaybc    schedule 02.07.2015    source источник
comment
Не могли бы вы опубликовать свою конфигурацию хранения и версию Graphite, которую вы используете, пожалуйста?   -  person dukebody    schedule 03.07.2015
comment
@dukebody Я использую версию: 0.9.10   -  person ajaybc    schedule 03.07.2015
comment
@dukebody Retention: рисунок [углерод] = ^углерод\. удержания = 60:90д [в реальном времени] приоритет = 200 шаблон = ^stats.* удержания = 1:34560000 [статистика] приоритет = 110 шаблон = .* удержания = 1с:24ч,1м:7д,10м:1г   -  person ajaybc    schedule 03.07.2015
comment
У вас есть интервал сброса statsd 1 с?   -  person dukebody    schedule 03.07.2015
comment
@dukebody Я не настроил flushInterval. Я думаю, что это сама 10s по умолчанию   -  person ajaybc    schedule 03.07.2015


Ответы (1)


Попробуйте добавить для allign значение true, так как в зависимости от времени изменяется количество точек данных, которые он получает в интервале корзины.

По умолчанию сегменты вычисляются путем округления до ближайшего интервала. Это хорошо работает для интервалов меньше суток. Например, 22:32 окажется в сегменте 22:00-23:00, если интервал равен 1 часу.

Передача alignToFrom=true вместо этого создаст корзины, начиная с момента времени. В этом случае ведро на 22:32 зависит от времени. Если from=6:30, то 1-часовое ведро для 22:32 равно 22:30-23:30.

"обобщить (ex.cpe.ex.xxx,'30s','avg', true)"

person Sree Lasya Vallabhaneni    schedule 06.11.2019