Ad Widget

Collapse

Сумма значений за текущий месяц.

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • kharkov_max
    Member
    • Mar 2016
    • 83

    #1

    Сумма значений за текущий месяц.

    Добрый день.

    Есть параметр числовой, который всегда увеличивается.
    Хочу как то настроить такой подсчет ...

    1. Необходимо получать значение за текущий месяц т.е. берем значение на сейчас и от него отнимаем то что было на начало месяца.
    2. Хранить историю таких значений по месяцам, можно в виде списка ...

    Через какие элементы можно такое закрутить?
    Может натолкнете на что то...
  • rough-84
    Senior Member
    • Oct 2014
    • 198

    #2
    Если все время увеличивается то можно просто
    Тип элемента данных calculated
    максимальное значение за последний месяц- минимальное значение за последний месяц
    получим ваше искомое число

    Comment

    • kharkov_max
      Member
      • Mar 2016
      • 83

      #3
      Originally posted by rough-84
      Если все время увеличивается то можно просто
      Тип элемента данных calculated
      максимальное значение за последний месяц- минимальное значение за последний месяц
      получим ваше искомое число
      Собственно так и думал делать через вычисляемое значение.
      Не смог найти как определить минимальное и максимальное значение.
      Подскажите функцию ...

      Comment

      • rough-84
        Senior Member
        • Oct 2014
        • 198

        #4
        Попробуйте так

        max("host:item",2592000)-
        min("host:item",2592000)-

        2598000 это месяц в секундах 60*60*24*30

        Comment

        • Kos
          Senior Member
          Zabbix Certified SpecialistZabbix Certified Professional
          • Aug 2015
          • 3404

          #5
          Если я правильно понял автора темы, то его интересуют данные не "за месяц назад", а "за текущий месяц", т.е. "с 1-го числа текущего месяца".

          Comment

          • rough-84
            Senior Member
            • Oct 2014
            • 198

            #6
            Originally posted by kos
            Если я правильно понял автора темы, то его интересуют данные не "за месяц назад", а "за текущий месяц", т.е. "с 1-го числа текущего месяца".
            Если так, то на ум пришло только создать отдельный элемент данных в который бы в приходили данные 1 числа каждого месяца

            Comment

            • kharkov_max
              Member
              • Mar 2016
              • 83

              #7
              Originally posted by kos
              Если я правильно понял автора темы, то его интересуют данные не "за месяц назад", а "за текущий месяц", т.е. "с 1-го числа текущего месяца".
              Да так и есть, нужно снимать только за текущий месяц.
              Фактически получаемое значение это расход за месяц...

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

              Ps
              Уже возник вопрос, как поймать первое значение месяца, новое, отличное от старого?
              Если делать отдельный элемент на конкретьное время к примеру на 00:00, то так не подойдет т.к. узел может быть выключенным.

              Что посоветуете ?

              Comment

              • rugo
                Junior Member
                • Apr 2013
                • 21

                #8
                Originally posted by kharkov_max
                Уже возник вопрос, как поймать первое значение месяца?
                Что посоветуете ?
                Запускаем элемент по расписанию и указываем например
                md1h9m30
                что будет означать получение данных в 9-30 1 числа месяца.
                Более подробно про пользовательские интервалы написано на сайте Заббикса https://www.zabbix.com/documentation...stom_intervals

                Comment

                • rough-84
                  Senior Member
                  • Oct 2014
                  • 198

                  #9
                  Ага тоже хотел про это написать, ну и тригер на nodata по последнему значению чтобы поймать проблему, на случай если комп может быть как вы написали выключен.

                  Comment

                  • Kos
                    Senior Member
                    Zabbix Certified SpecialistZabbix Certified Professional
                    • Aug 2015
                    • 3404

                    #10
                    В общем, штатными средствами решить Вашу задачу будет проблематично. Разве что писать скрипт с использованием Zabbix API для получения значения "на первое число", вычитанием его из последнего текущего значения и закидыванием результата назад через zabbix_sender.

                    Как вариант - можно извратиться и (с учётом того, что результат логических операций преобразуется к нулю или единице) написать в формулу вычисляемого элемента данных что-то наподобие следующего:
                    Code:
                    (dayofweek("host:item")=1) * delta("host:item",1d) +
                    (dayofweek("host:item")=2) * delta("host:item",2d) +
                    (dayofweek("host:item")=3) * delta("host:item",3d) +
                    (dayofweek("host:item")=4) * delta("host:item",4d) +
                    ...
                    (dayofweek("host:item")=31) * delta("host:item",31d)

                    Comment

                    • Evgeniy
                      Senior Member
                      • May 2012
                      • 157

                      #11
                      Похоже мониторим электросчетчики. В зависимости от модели возможны разные варианты реализации. Но как и в Вашем случае, все сводится к созданию двух элементов данных и вычисляемому значению, но только на zabbix 3.4, т.к. там реализован запрос в определенное время.

                      Comment

                      • rugo
                        Junior Member
                        • Apr 2013
                        • 21

                        #12
                        Когда мы работали со счетчиками, то опрашивали не только мгновенное значение, но и расход за месяц. Но это было по последовательному порту.

                        Comment

                        • kharkov_max
                          Member
                          • Mar 2016
                          • 83

                          #13
                          Originally posted by evgeniy
                          Похоже мониторим электросчетчики. В зависимости от модели возможны разные варианты реализации. Но как и в Вашем случае, все сводится к созданию двух элементов данных и вычисляемому значению, но только на zabbix 3.4, т.к. там реализован запрос в определенное время.
                          Эта логика верна, но проблема в том что привязаться к конкретному времени не получится, т.к. устройство может заработать с начала месяца в любое время, к примеру 15го числа ...

                          Тут нужно как то вычислить первое значение месяца ...

                          Comment

                          • rugo
                            Junior Member
                            • Apr 2013
                            • 21

                            #14
                            Originally posted by kharkov_max
                            Эта логика верна, но проблема в том что привязаться к конкретному времени не получится, т.к. устройство может заработать с начала месяца в любое время, к примеру 15го числа ...
                            Тут нужно как то вычислить первое значение месяца ...
                            Устройство - это то, что опрашивает значения со счетчика? Тогда получится, что значение за месяц будет неправильным.

                            Comment

                            • kharkov_max
                              Member
                              • Mar 2016
                              • 83

                              #15
                              Устройство, это сетевой принтер, на котором увеличивается счетчик напечатанных страниц, таких принтеров много ...
                              Я взял шаблон с share.zabbix.com, который мониторит принтер по SNMP, немного подпилил его под себя.
                              Данные есть и все можно посчитать руками, по факту это должна быть разница между первым и последним значением счетчика за месяц.
                              Хочу как то автоматизировать и облегчить расчет.

                              Принтер может быть в ремонте или стоять в ИТ отделе, поэтому когда он может включиться и выключиться изначально не известно....

                              PS
                              Версия zabbix у меня последняя 3.4
                              Last edited by kharkov_max; 04-12-2017, 10:09.

                              Comment

                              Working...