Ad Widget

Collapse

вопрос по функции fuzzytime

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • teddy
    Senior Member
    • Dec 2017
    • 234

    #1

    вопрос по функции fuzzytime

    Коллеги!
    Нужен совет по работе с функцией fuzzytime.
    Есть item который возвращает unix timestamp. Это кастомный agent item. item возвращает таймстапм в локальном часовом поясе - заббих считает, что это таймстамп в UTC. покрайне мере так отображает.
    fuzzytime должен сравнивать значение с локальным временем.
    Cобственно вопрос - в каком часовом поясе считается локальное время для функции? с чем сравнивает таймстамп эта функция?
    Нет никаких проблем подправить item на возврат по UTC, но нужно четкое понимание.
    У меня его нет, поэтому вынужден был отказаться от удобной функции и сравнивать с историческим значением этого item.
  • Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3404

    #2
    Unix timestamp тем и хорош, что не зависит от вашего часового пояса, летнего/зимнего времени и т.п. По определению - это такое число
    which represents the number of seconds that have passed since 00:00:00 UTC Thursday, 1 January 1970.
    Вот преобразование его в привычный формат с годами, днями, месяцами и так далее до секунд - это уже зависит от часового пояса.
    А триггерная функция fuzzytime() просто сравнивает два числа - ваш таймстэмп и текущий таймстэмп Zabbix-сервера или прокси (хотя на самом деле - таймстэмп, которым помечено пришедшее значение). И если разница между ними больше, чем параметр функции fuzzytime(), то она вернёт ноль, а иначе - единицу.
    item возвращает таймстапм в локальном часовом поясе - заббих считает, что это таймстамп в UTC. покрайне мере так отображает.
    Он отображает в соответствии с настройками часовой зоны в PHP, т.е. обычно - в местном часовом поясе. Если остальные таймстэмпы отображаются корректно, то, вероятнее всего, проблема с этим конкретным айтемом: скорее всего, при его вычислении берётся количество секунд, прошедшее с 01.01.1970 _в локальном_ часовом поясе, а не в UTC (как должно быть).

    Comment

    Working...