Git Product home page Git Product logo

Comments (9)

gmlexx avatar gmlexx commented on August 26, 2024

Trigger's expression calculates the new trigger state.
NOTCHANGED state blur existing conception.
But if you need some previous value and current trigger state to calculate new trigger state, we can easily add a few reserved variables like "t1, warn_value, error_value" available to use in expression.
For example, PREV_STATE if abs(t1 - prev_t1) < 1 else ERROR

Or may be your case can be solved in existing expression syntax. Can you give more details about your case?

from worker.

tantra35 avatar tantra35 commented on August 26, 2024

I thik about this, you suggestion is better then NOTCHANGED, so i agree with you concept. For now we have some value with small fluctuations, around some const value(for example 50), so values can be 49.5. 49.9. 50.1 ans so on, and at each value change, trigger will switch it state

from worker.

gmlexx avatar gmlexx commented on August 26, 2024

Why standard derivative, movingAverage, etc graphite functions doesn't satisfy you?

from worker.

tantra35 avatar tantra35 commented on August 26, 2024

this values was get from this transformations

from worker.

gmlexx avatar gmlexx commented on August 26, 2024

Ok, why it is not enough?

from worker.

tantra35 avatar tantra35 commented on August 26, 2024

Because value can change on small range, and PREV_STATE allow describes the band of allowed values, WARN,OK,EROR, doesn't allow this

PS: russian version
Попытаюсь обрисовать ситуацию на родном языке. Вот предположим у нас есть всплеск некоей величины, а потом плавный её спуск до приемлемого значения, в момент когда величина пересекает пороговое значение триггера, она может колебаться вокруг этого порогового значения какое то время, в результате мы имеем ложные срабатывания: "включено", "выключено" в этот момент, введение же полосы пропускания позволит имхо избежать этих срабатываний. Мы очень долго пытались побороть такое поведение в zabbix, но без особых успехов, более менее помогали эскалации, у мойры же её довольно простая архитектура позволяет добавить подобное поведение очень просто и дешево. Просто ввести полосу через условия WARN,OK,EROR невозможно(не позволит генераторное выражение python), нужно знать предыдущее состояние чтобы гарантированно не перевести триггер в сигнальное состояние

from worker.

gmlexx avatar gmlexx commented on August 26, 2024

Ok, check please that I understand right.

Problem:
Value has changed and then started fluctuation around new value.
This fluctuation could lead to trigger fatigue (unwanted state changing)

Solution:
Add PREV_STATE variable to allow expression check, that derivative of value is small and not change state.

from worker.

tantra35 avatar tantra35 commented on August 26, 2024

Yes that's right. Or you may extend custom exresssion feature not only write python generator expression, but fully python code, in this situation moira will be like bosun(https://bosun.org/), but i doesn't think that it is a good idea.

from worker.

gmlexx avatar gmlexx commented on August 26, 2024

Add PREV_STATE in @a7d2af5

from worker.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.