Size: a a a

2019 December 25

ES

Emil Sharifullin in Moira
Merry Christmas!
источник

AK

Alexey Kirpichnikov in Moira
источник

IM

Ioannis Mavroukakis in Moira
Now imagine 3 cats and you have my household.
источник
2019 December 31

AA

Andrey A in Moira
Добрый вечер, небольшой вопрос перед НГ. Немного недопонимаю advanced trigger
у moira, например необходимо генерировать аларм, если используемая память больше некоторого
порога (42Гб), если пороги не превышаются, то все OK. Для всех серверов нет смысла это реализовывать, интересует только 2.
Поэтому сделал 2 таргета T1 - stats.server1.memory.memory.used, T2 - stats.server2.memory.memory.used

Само выражение триггера:
(t1 > 45097156608 || t2 > 45097156608) ? ERROR:OK

Делал интуитивно, но я не до конца его понимаю (и вообще правильно ли оно).
Пока понимаю это так: В скобках если хотя бы одно из значений возвращает true, то далее возвращается ERROR (https://github.com/Knetic/govaluate/blob/master/MANUAL.md#ternary-false-).
Как далее интерпретировать :OK? Это вроде как это https://github.com/Knetic/govaluate/blob/master/MANUAL.md#ternary-false-
но не понимаю как это правильно выражение связать.
В доке moira мало примеров с advanced trigger, а об govaluate expression я узнал только сегодня
источник

AK

Alexey Kirpichnikov in Moira
Привет. У нас в Екатеринбурге уже глубокий вечер, лично я ем оливье и селедку под шубой. Но постараюсь помочь в меру возможностей с телефона.

Думаю, что advanced mode в этом случае не нужен. Надо делать simple mode триггер.

Таргет сделать stats.server*.memory.memory.used

Пороговое значение на ERROR вот это большое число. Тип триггера rising.
источник

AK

Alexey Kirpichnikov in Moira
Мойра будет следить за каждым сервером отдельно.
источник

AA

Andrey A in Moira
Я тоже из Екатеринбурга)
источник

AK

Alexey Kirpichnikov in Moira
Класс!
источник
2020 January 03

AA

Andrey A in Moira
а все-таки, как правильно прочитать выражение
(t1 > 45097156608 || t2 > 45097156608) ? ERROR:OK ?  Если есть какая-нибудь хорошая ссылка, чтобы подучится понимать  govaluate, то с удовольствием почитаю)
источник

ДУ

Денис Устинов in Moira
t2 насколько я помню нельзя так использовать
источник

AB

Arkady Borovsky in Moira
Можно использовать, пока t2 маппится в одну метрику, только сейчас это в интерфейсе будет отображаться не сильно понятно. Тот вариант, который предложил @beevee_ru однозначно лучше.
источник

AB

Arkady Borovsky in Moira
Andrey A
а все-таки, как правильно прочитать выражение
(t1 > 45097156608 || t2 > 45097156608) ? ERROR:OK ?  Если есть какая-нибудь хорошая ссылка, чтобы подучится понимать  govaluate, то с удовольствием почитаю)
Понимать это просто: у мойры есть 4 состояния метрики: OK, WARN, ERROR, NODATA. В своем выражении ты говоришь, что хочешь при каких-то условиях чтобы состояние стало ERROR при обратных условиях - чтобы перешло в ОК. Если состояние меняется то генерируется алерт.
источник

AB

Arkady Borovsky in Moira
Такого же вида экспрешены ты можешь писать например в java или c# например. Govaluate в данном случае просто является компилятором этих экспрешенов
источник

AA

Andrey A in Moira
Можно использовать, пока t2 маппится в одну метрику, только сейчас это в интерфейсе будет отображаться не сильно понятно.
да, верно, в Current  state триггера показывается только значение T1
источник

ES

Emil Sharifullin in Moira
Andrey A
а все-таки, как правильно прочитать выражение
(t1 > 45097156608 || t2 > 45097156608) ? ERROR:OK ?  Если есть какая-нибудь хорошая ссылка, чтобы подучится понимать  govaluate, то с удовольствием почитаю)
Это обычные тернарные операторы. Работают так же как в си подобных языках
источник

AA

Andrey A in Moira
Понимать это просто: у мойры есть 4 состояния метрики: OK, WARN, ERROR, NODATA. В своем выражении ты говоришь, что хочешь при каких-то условиях чтобы состояние стало ERROR при обратных условиях - чтобы перешло в ОК. Если состояние меняется то генерируется алерт.

спасибо, понял. Теперь стало понятнее почему у меня другой триггер работал "не очень верно":
ранее я там написал не очень правильно:
Target - scale(perSecond(stats.server.carbon_c_relay.metricsReceived), 60) - сколько метрик приходит в carbon-c-relay
Сам триггер - (t1 < 180000 || t1 > 225000) ? ERROR (если метрик стало вдруг сильно мало или сильно много)
Веб-интерфейс не заругался,  но триггер работал не верно. После поправки на  (t1 < 180000 || t1 > 225000) ? ERROR:OK стало все ОК.
источник

AK

Alexey Kirpichnikov in Moira
Формально ответ такой: если часть перед знаком вопроса истинна, то результатом вычисления всего выражения будет то, что перед двоеточием. Если ложна, то после двоеточия.

Можно погуглить тернарный оператор в си.
источник
2020 January 08

KS

Karanpreet Singh in Moira
Hi everyone , I wish to contribute to this organization .  I am currently a Computer Science undergrad in Indian Institute of Technology , Roorkee . I have some experience in development including javascript ,golang and DevOps. It would be really helpful if anyone could let me know , how and from where can I start . Thanks!
источник

ES

Emil Sharifullin in Moira
Karanpreet Singh
Hi everyone , I wish to contribute to this organization .  I am currently a Computer Science undergrad in Indian Institute of Technology , Roorkee . I have some experience in development including javascript ,golang and DevOps. It would be really helpful if anyone could let me know , how and from where can I start . Thanks!
Hi Karanpreet! We are very glad to see a new contributors. Right now I cannot recall any suitable issue for you, and I will raise this question on next weekly planning on Monday. Stay tuned!
источник
2020 January 09

KS

Karanpreet Singh in Moira
источник