Ad Widget

Collapse

Как найти первое значение в этом месяце?

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • CrashXRu
    Junior Member
    • Nov 2022
    • 8

    #1

    Как найти первое значение в этом месяце?

    ключевой вопрос как найти в этом месяце не зависимо от того какой сейчас день месяца

    в графиках все выглядит красиво now/M
    за прошлый месяц now-1M/M

    но как это корректно использовать например с last ?

    максимальное или последнее значение в прошлом месяце
    last(//item,#1,now-1M/M)
    max(//item,#1,now-1M/M)


    минимальное в этом
    min(//item,#1,now/M)

    нашел в соседней теме
    trendmin(//item,1M:now/M+1M)
    но это возвращает прогноз, а не реальное значение




    на данный момент есть костыль, каждый день в 00.00:01 выполняется last и потом так вычисляется изменение за день, и потом за месяц






  • CrashXRu
    Junior Member
    • Nov 2022
    • 8

    #2
    разве не способа получить первое и последнее значение за указанный период ?

    графики же как то строятся автоматом с возможность за месяц, за этот месяц, и тп

    Comment

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

      #3
      Originally posted by CrashXRu
      разве не способа получить первое и последнее значение за указанный период ?

      графики же как то строятся автоматом с возможность за месяц, за этот месяц, и тп
      Думаю, что графики используют Zabbix API.
      Вы же спрашиваете, видимо, про триггерные функции. Среди них есть и last(), и first() (ссылка).
      Last edited by Kos; 30-11-2022, 10:22.

      Comment

      • CrashXRu
        Junior Member
        • Nov 2022
        • 8

        #4

        возможные значения интервалов (h, d, w, M, y)

        НО в time-shift
        https://www.zabbix.com/documentation...ion#time-shift
        #
        1w:now/w - прошлая неделя
        1h:now/h - прошлый час
        1d:now/d прошлый день
        #
        1w:now/w+1w - текущая неделя
        1d:now/d+1d - текущий день


        НО В трендах есть time-shift за месяц, год
        1M:now/M - прошлый месяц


        last ранее
        last (сек|#кол-во,<сдвиг_времени>)
        теперь
        last (/host/key,<#num<:time shift>>)​​

        вторая проблема в том что разные функции по разному используют параметры
        хотя при тестировании работает
        Code:
         last(//Print.Page.Total,1d:now/d)
        но сохранить нельзя
        @ Ошибочный параметр "/1/params": недопустимый второй параметр в функции "last".

        Code:
        last(//Print.Page.Total,#1:now-1d/d)
        последнее позавчера
        28.11.2022 23:59:55 1142893

        Code:
        last(//Print.Page.Total,#1:now/d)
        последнее значение вчера
        29.11.2022 23:59:55 1143180

        Code:
        first(//Print.Page.Total,1d:now/d)
        первое значение вчера
        29.11.2022 00:30:55 1142933

        Code:
        min(//Print.Page.Total,1d:now/d)
        минимальное значение вчера
        29.11.2022 00:30:55 1142933

        Code:
        max(//Print.Page.Total,1d:now/d)
        максимальное значение вчера
        29.11.2022 23:59:55 1143180

        расчетное изменение за период - "вчера", работает корректно

        Code:
        last(//Print.Page.Total,#1:now/d)-first(//Print.Page.Total,1d:now/d)
        Результат = 247

        Code:
        max(//Print.Page.Total,1d:now/d)-min(//Print.Page.Total,1d:now/d)
        Результат = 247


        СЕГОДНЯ все рассчитывается корректно
        Code:
        max(//Print.Page.Total,1d:now/d+1d)-min(//Print.Page.Total,1d:now/d+1d)
        Результат = 99 (1143281 - 1143182)
        Last edited by CrashXRu; 30-11-2022, 11:48.

        Comment

        • CrashXRu
          Junior Member
          • Nov 2022
          • 8

          #5
          С трендами есть проблема
          trendmax(//Print.Page.Total,1M:now/M+1M)
          30.11.2022 14:59:55 1143275 - значение реальное, но не актуальное, отстает на 1.15 1 час 15 минут, собираю 2 значения в час...

          но есть и актуальное значение 30.11.2022 15:59:55 1143339
          trendmin(//Print.Page.Total,1M:now/M+1M)
          Вычислил 1138651, но первое значение в месяце 25.11.2022 11:59:55 1142159


          те поймать первое значение за месяц не реально...


          trendmax(//Print.Page.Total,1M:now/M+1M)-trendmin(//Print.Page.Total,1M:now/M+1M)
          Прогноз - 4624




          Единственный вариант расчета за прошлый месяц - остается тот же самый, что и был ранее
          (last(//Print.Page.Total,#1) - last(//Print.Page.Total,#1:now-1M))
          расчет запускается каждый месяц 1 числа в 00:01 = md1h0m1
          тк сбор данных 2 раза в час данные будут актуальные

          Узнать значение за этот месяц нельзя... тк нельзя получить первое значение за месяц, тк в функциях истории нет такого сдвига, максимальный неделя...
          Last edited by CrashXRu; 30-11-2022, 14:10.

          Comment

          Working...