Size: a a a

2020 June 18

SR

Sanyam Rajpal in Moira
Hey everyone this is sanyam. I am new to open source and was looking for some guidance to make some open source contribution
источник

AE

Alexandr Erokhin in Moira
Добрый вечер. Если не секрет чем закончилась история, что мойра по потребляя 64гб и сняли heapdump) что за тяжёлый триггер оказался?
источник

SR

Sanyam Rajpal in Moira
I can't see the messages in English. Can anyone suggest how to translate in the application?
источник

MO

Michael Okoko in Moira
Sanyam Rajpal
I can't see the messages in English. Can anyone suggest how to translate in the application?
You could use Google translate, though I don't think it's related to your message.
источник

SR

Sanyam Rajpal in Moira
Sure, so can anyone guide me for first time contribution
источник

MO

Michael Okoko in Moira
Sanyam Rajpal
Sure, so can anyone guide me for first time contribution
Uhmm well, you could try looking at some  good first issues here:

https://github.com/moira-alert/moira/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22
and take a shot at any of them.
источник

Ei

Evgeny ihard in Moira
Alexandr Erokhin
Добрый вечер. Если не секрет чем закончилась история, что мойра по потребляя 64гб и сняли heapdump) что за тяжёлый триггер оказался?
@litleleprikon обещал глянуть на неделе как будет время, я пробежался по созданным триггерам - было подозрение на один триггер который  создавал 2000+ отдельных серий, но при его удалении ничего не изменилось в потреблении памяти. остальные триггеры (около 900) используют 1-2 серии, есть штук 20-30 триггеров которые используют от 10 до 30 серий.
источник

ES

Emil Sharifullin in Moira
Evgeny ihard
@litleleprikon обещал глянуть на неделе как будет время, я пробежался по созданным триггерам - было подозрение на один триггер который  создавал 2000+ отдельных серий, но при его удалении ничего не изменилось в потреблении памяти. остальные триггеры (около 900) используют 1-2 серии, есть штук 20-30 триггеров которые используют от 10 до 30 серий.
Слушай, а давай я тебе скину скрипт, который в редисе посмотрит самые жирные паттерны. Сможешь его на редис натравить и посмотреть какой паттерн содержит большое количество метрик. Ато я все не успеваю посмотреть твои профили. А так может найдем по-быстрому большой триггер.
источник

ES

Emil Sharifullin in Moira
Вообще еще может быть проблема в триггере у которого очень большой ТТЛ стоит
источник

ES

Emil Sharifullin in Moira
могу и на поиск таких триггеров скрипт накидать
источник

Ei

Evgeny ihard in Moira
Emil Sharifullin
Слушай, а давай я тебе скину скрипт, который в редисе посмотрит самые жирные паттерны. Сможешь его на редис натравить и посмотреть какой паттерн содержит большое количество метрик. Ато я все не успеваю посмотреть твои профили. А так может найдем по-быстрому большой триггер.
да, давай было бы отлично
источник

ES

Emil Sharifullin in Moira
Если не получится найти жирные триггеры-то значит утечка где-то, надо будет профили исследовать
источник

Ei

Evgeny ihard in Moira
по идее TTL ограничен же storage-schemas.conf
[default]
pattern = .*
retentions = 60s:1d
а в checker.yml
metrics_ttl: 6h
источник

ES

Emil Sharifullin in Moira
не, там можно ТТЛ поставить огромный в триггере и чекер будет выкачивать огромный массив данных, заменяя недостаюшие данные НаНами
источник

ES

Emil Sharifullin in Moira
а в том конфиге указывается ТТЛ на хранение этих метрик
источник

Ei

Evgeny ihard in Moira
кажется тут есть поле для оптимизации )
источник

AB

Arkady Borovsky in Moira
Не, Жень, через storage-schemas.conf ты мы указываем ретеншены, они никак не влияют на время хранения метрик в базе.
источник

ES

Emil Sharifullin in Moira
Evgeny ihard
кажется тут есть поле для оптимизации )
это уже поправлено в мастере, но не в релизе
источник

AB

Arkady Borovsky in Moira
Emil Sharifullin
Вообще еще может быть проблема в триггере у которого очень большой ТТЛ стоит
А про TTL Эмиль понимает большой NODATA-интервал, это нам пару раз мойру ложило
источник

ES

Emil Sharifullin in Moira
#!/usr/bin/env python

import redis
import json
from tqdm import tqdm
from datetime import datetime
r = redis.Redis(host='localhost', port=6379, db=0)

pattern_ids = r.keys('moira-pattern-metrics:*')
patterns = []
for pid in tqdm(pattern_ids):
   l = r.scard(pid)
   patterns.append({"id": pid, "len": l})


patterns = sorted(patterns, key=lambda x: x["len"])


with open('/tmp/patterns.json', 'w') as f:
   json.dump(patterns, f, indent=2)


Желательно запускать на хосте, где реплика редиса чтоб не нагружать мастер. Нужно еще установить библиотеки pip install redis tqdm
источник