171 похожих чатов

Добрый день. Скажем, я хочу написать recording rule, чтобы писать

новую серию со значениями среднего использования памяти за последние 3 минуты, чтобы потом использовать это в alert rules с разными порогами:
- record: instance:node_memory_MemUsed:avg_3m_pct
expr: 100 - (avg_over_time(node_memory_MemAvailable_bytes[3m]) / node_memory_MemTotal_bytes) * 100
В общем, оно возвращает то, что нужно (ну, я так думаю), однако, это нод экспортер, который собирает данные с vm (ну, в моей лабе только vm), память которых может измениться, в таком случае получается, что available оценивается за 3 минуты, а total берётся последний из серии. Я не очень понимаю, следует ли заморачиваться с этим. Ну и вопрос про алерт рул, очевидно, что в алерт нет смысла задавать период оценки через for, ведь в новой тайм серии значения уже за 3 минуты, верно? Или есть какие-то нюансы (ну, кроме того, что в случае изменения интервала в record я получу новую серию)?

4 ответов

32 просмотра

Советую заменить avg_over_time на min_over_time и увеличить интервал времени в квадратных скобках с 3 минут хотя бы до 30 минут. avg_over_time в этом алерте не имеет смысла, т.к., если за последние 30 минут в течение одной минуты оставалось почти 0 байт свободной памяти, а в оставшиеся 29 минут - вся память была свободна, то avg_over_time за 30 минут вернет 97% свободной памяти. Но это не имеет смысла, т.к., если бы в ту минуту, когда свободной памяти оставалось совсем мало, она бы вообще закончилась, то пришел бы oom killer и замочил пару жирных процессов на хосте. Вряд ли это то, что вы ожидаете, наблюдая 97% свободной памяти в среднем за последние полчаса.

Anatoliy-Копылов Автор вопроса
Aliaksandr Valialkin
Советую заменить avg_over_time на min_over_time и ...

Спасибо за ответ. Солгасен, отслеживать минимум доступной памяти логичнее. Ну и действительно, не вижу смсыла использовать for в алерте, если у меня в record используется range vector (или я не прав?). Скажите, а своп рид рейт отслеживаете? Например: rate(node_vmstat_pgmajfault[1m]) > 1000

Anatoliy Копылов
Спасибо за ответ. Солгасен, отслеживать минимум до...

Нет, т.к., если из-за медленного чтения из свопа приложение начнет тормозить, то жто будет видно по другим метрикам вроде времени выполнения запросов или процента запросов с ошибками. А если своп находится на быстром диске (ram, comprrssed ram или ssd), то вообще пофиг, сколько данных из него читают

Anatoliy-Копылов Автор вопроса
Aliaksandr Valialkin
Нет, т.к., если из-за медленного чтения из свопа п...

да, дисковая латенси вырастет, просто из повышенного своп рейта будет понятно, что это именно из-за неё. хотя, возможно, это действительно избыточно, там ведь и алрет по памяти должен будет выстрелить.

Похожие вопросы

Обсуждают сегодня

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
короче сгенерила мне эта штука код на ассемблере: struc string val { common local .value dq .value .value: if ~val eq db val end if db 0 } fo...
Vi Chapmann Chapmann
12
Всем привет! Массив вводится с клавиатуры, кол-во элементов неизвестно, поэтому я указал arr db 100 dup(?) С нахождением максимума проблем нет, а вот минимум почему-то всегд...
En Vind Av Sorg
11
#include <stdio.h> int main(void) { int n; scanf("%d", &n); int digits1[n] = {0}; int digits2[n] = {0}; я не могу таким образом заранее массив нулями заполнить?
Linus
12
в сях есть множество как в питоне? для удаление дубликатов
Linus
25
я про форму записи. смысл указывать что 8 байтный регистр 8 байт?
Aiwan \ (•◡•) / _bot
10
читать файл максимально быстро? странный вопрос))
zamtmn
53
Вроде бы вопрос уже заезжанный, но тем не менее У меня есть функция menu() которая выводит набор возможных действий, а затем спрашивает у пользователя что он хотел бы сделать....
David Golovatin
3
Кто создает тут ботов для телеграмм групп ?
Antskup
8
а как бы вылезти из ИО, что то типа IO -> Ether или в какую сторону смотреть ? что то туплю
Fedor
14
Карта сайта