Существует несколько различных способов решения этой проблемы, в этой ситуации агрегация происходит в двух местах:
Когда вы запрашиваете временной интервал, превышающий интервал хранения, ишепот возвращает агрегированные данные.Используемый здесь метод агрегирования определен в вашей конфигурации агрегации углерода.
Когда Grafana отправляет запрос в Graphite, он передает maxDataPoints=<width of graph in pixels>
, и Graphite выполняет агрегацию, чтобы получить максимум столько точек(потому что у вас недостаточно пикселей, чтобы отобразить больше точек).Метод, используемый для этой консолидации, контролируется функцией consolidateBy
.
Возможно, что оба они могут использоваться в одном запросе, если, например, у вас есть панель, которая запрашивает 3дней, и вы храните 2 дня с интервалом в 1 минуту и 7 дней с 5-минутным интервалом шепотом, тогда у вас будет 72 * 60/5 = 864 пункта из 5-минутного архива шепотом, но если ваш графикшириной всего 500px, тогда во время выполнения она будет консолидирована до 10-минутных интервалов и даст 432 балла.
Итак, если вы хотите всегда иметь доступ к счетчику, вы можете изменить конфигурацию углерода для использования sum
агрегирование для этих серий (и удаление существующих шепотных файлов, чтобы новые создавались с новой конфигурацией агрегации) и передача consolidateBy('sum')
в ваших запросах, и вы всегда будете получать сумму обратно для каждого интервала.
Тем не менее, вы также можете решить эту проблему во время запроса, умножив среднее значение обратно, чтобы получить общее значение (при условии, что ваша агрегация шепота соnfig использует average
).Простейшим способом сделать это будет summarize
данных с average
в сегменты, которые соответствуют наибольшему интервалу агрегации, который вы будете запрашивать, затем scale
этих значений к этому интервалу для расчета общего количества минут.Наконец, вы захотите использовать consolidateBy('sum')
, чтобы любая консолидация во время выполнения работала должным образом.
consolidateBy(scale(summarize(my.series, '10min', 'avg'), 60), 'sum')
Учитывая все вышесказанное, вы, возможно, захотите рассматривать время безотказной работы отчетов в процентах, а не в сырых минутах., в этом случае вы можете использовать сырые средние значения напрямую.