Mitigator хранит данные графиков в Graphite. В базовой настройке метрики хранятся максимум 182 дня, при необходимости можно изменить время хранения и точность.
Параметры задаются в файле конфигурации storage-schemas.conf
,
базовое содержимое:
[mitigator]
pattern = ^mitigator\.
retentions = 5s:1d,10s:7d,1m:30d,5m:145d,10m:182d
[carbon]
pattern = ^carbon\.
retentions = 60s:5d,5m:30d
[default_1min_for_1day]
pattern = .*
retentions = 60s:1d,5m:10d
Синтаксис файла конфигурации описан в документации Graphite.
В базовом варианте данные за последние сутки хранятся с интервалом 5 секунд,
за последнюю неделю — 10 секунд и т. д. Важно понимать, что времена хранения
не суммируются, то есть самые старые данные будут на 182 дня назад.
Рекомендуется менять только параметры раздела [mitigator]
.
Для изменения настроек нужно подготовить и примонтировать
новый файл конфигурации сервису Graphite. Если файл создан в /srv/mitigator
,
монтирование выполняется через docker-compose.override.yml
следующим образом:
version: "2.1"
services:
graphite:
volumes:
- ./storage-schemas.conf:/etc/go-carbon/storage-schemas.conf:ro
Все манипуляции выполняются на остановленном контейнере Graphite.
docker-compose stop graphite
Новый файл конфигурации будет иметь силу только для новых файлов метрик,
то есть не будет работать для существующих политик. Для их обновления имеется
штатный скрипт whisper-resize
(оригинал, deb-пакет python3-whisper).
Файлы метрик Mitigator´а хранятся в директории
/var/lib/docker/volumes/mitigator_graphite/_data/mitigator
.
Обновить все файлы метрик для хранения, например, до 2 лет (730 дней) можно следующим образом:
find /var/lib/docker/volumes/mitigator_graphite/_data/mitigator -name '*.wsp' \
-exec whisper-resize {} 5s:1d 10s:7d 1m:30d 5m:145d 10m:182d 30m:730d \;
Cкрипт может выполняться несколько часов для базы с большим количеством политик.
Увеличится объем дискового пространства, занимаемого метриками.
Чтобы оценить эффект, можно запустить скрипт на одном файле,
затем умножить разницу в размерах на количество файлов:
find /var/lib/docker/volumes/mitigator_graphite/_data/mitigator -name '*.wsp' | wc -l
Запустить Graphite с новыми настройками:
docker-compose up -d graphite
Скрипт создает файлы с расширением .bak
для каждой метрики перед изменением.
После успешного обновления их можно удалить:
find /var/lib/docker/volumes/mitigator_graphite -name '*.bak' -delete