#graphite #collectd
#графит #collectd
Вопрос:
У меня есть стек углерода / графита с некоторыми очень простыми схемами хранения. Эти периоды хранения работают нормально, за исключением пары статистических данных — они, похоже, длятся всего неделю.
Мое хранилище-schemas.conf:
[carbon]
pattern = ^carbon.
retentions = 60:90d
[collectd]
pattern = ^collectd.*
retentions = 10s:2d,1m:14d,5m:1y
И мое хранилище-aggregation.conf:
[min]
pattern = .min$
xFilesFactor = 0.1
aggregationMethod = min
[max]
pattern = .max$
xFilesFactor = 0.1
aggregationMethod = max
[sum]
pattern = .count$
xFilesFactor = 0
aggregationMethod = sum
[default_average]
pattern = .*
xFilesFactor = 0.5
aggregationMethod = average
Все статистические данные поступают с префиксом collectd . , поэтому шаблоны сохранения верны. При просмотре затронутой панели мониторинга в Grafana я вижу следующее в cache.log графита:
Чт Окт 13 11:25:16 2016 :: Кэш CarbonLink-запрос запроса для collectd.host_domain_com.openstack-keystone-totals.gauge-users-count вернул 0 точек данных
Использование whisper-info.py на затронутом .wsp отображается следующее:
maxRetention: 31536000
xFilesFactor: 0.5
aggregationMethod: average
fileSize: 1710772
Archive 0
retention: 172800
secondsPerPoint: 10
points: 17280
size: 207360
offset: 52
Archive 1
retention: 1209600
secondsPerPoint: 60
points: 20160
size: 241920
offset: 207412
Archive 2
retention: 31536000
secondsPerPoint: 300
points: 105120
size: 1261440
offset: 449332
Может кто-нибудь предложить что-нибудь, что я, возможно, пропустил?
Ответ №1:
Итак, ответ на этот вопрос вытекает из нескольких проблем. Во-первых, точки данных отправляются с -count в конце имени вместо .count , поэтому к данным применяется агрегирование по умолчанию [sum] . Поскольку мы не отправляем данные каждые 10 секунд (и поскольку по умолчанию у нас xFilesFactor равен 0,5), данные обрабатываются при попадании в точку хранения, а поскольку ожидаемых точек данных менее 50%, вместо них сохраняется значение null.