Ad Widget

Collapse

Подстановка значений и фиксирование axis

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Jimson
    Senior Member
    • Jan 2008
    • 1327

    #1

    Подстановка значений и фиксирование axis

    Дорый вечер.

    1) ZBXNEXT-245
    В рамках фича-реквеста, которому к слову уже 2.5 года, прилагается патч для версии 1.8.х реализующий независимые настройки для граничных значений ординат. Так как второй набор параметров надо где то хранить, то в патче добавляются дополнительные столбцы в таблицу graphs.
    Я решил что внесение изменений в БД мне не очень нравится и можно пожертвовать "полноценностью" функционала, посему я реализовал свой вариант workaround. Все изменения для реализации задуманного касаются только frontend-а (php).

    а) я добавляю 4 новых "типа" для фиксирования ординаты, 95% патча это внесение изменений в раличные "валидации", эти изменения даже теоритически не могут иметь "побочных эфектов"

    б) так как отрисовка графиков в забиксе по умолчанию поддерживает "расчет" двух ординат без фиксирования, то код для независимого расчета минимальных и максимальных значений ординат уже готов, там ничего менять не надо, требуется лишь дать алгоритму правильные данные, это оставшиеся 5% пача

    в) в моем варианте нельзя задать минимальное значение одновменно для правой и левой ординаты, так же как и максимальное значение, но можно ограничить, например, левую ординату или ограничить левую по минимальному значению, а правую по максимальному, ну и т.д.


    2) ZBXNEXT-123 Смешно сказать, но через месяц этому фича-реквесту будет 4 года. В коментариях к нему есть ссылка на пост на форуме где публикуется патч для версии 1.8.x. Если чесно я его не смотрел внимательно. Написал свой вариант, опять же все правки только интерфейсные.

    а) внес изменения в две функции в class.cchart.php которые отрисовывают левую и правую ординаты, эти две функции по сути одинаковы, я проверяю определен ли valuemapid для отображаемого на данной ординате итема, если у нас несколько итемов с мапингом или если один из итемов определяет units, то я не буду мапить значения (проверки независимы для каждой ординаты, как я уже сказал, так что мы можем мапить с одной стороны, а с другой отображать итем с единицами измерения)

    б) переписал функцию applyValueMap, во первых добавил опциональный параметр при установке которого в TRUE на выходе будет пустая строка если подстановка не найдена, во вторых сделал кэширование "ненайденных" значений, что бы не дергать БД лишний раз, в целом код там более чем тривиальный

    Вообщем, что имеем прикладываю в посту.
    На моем графике соотношение сигнал/шум в "прямом" спутниковом канале отображается на левой ординате и измеряется оно в dB, на правой же ординате мы отображаем модуляцию и FEC (modcod) используемый для передачи данных данному vsat. Сигнал/шум хочется отобразить с привязкой ординаты к нулю, так лучше воспринимается визуально, а модкоды хочется видеть по их названиям, а не какие то числа. Модкодов в районе 30 штук.

    P.S. На закуску прикладываю еще патч добавляющий вычисление квадратного корня (например, last("mykeyone[]") * 2~(last("mykeytwo[]") + last("mykeythree[]")) собственно "2~" это операция квадратного корня по модулю) и вычисление степени - "^". Мне как и другим понадобилось вычислять среднеквадратичное отклонение джитера по данным cisco sla udp-jitter, если кому будет интересно, то и шаблон приложу.

    P.P.S. все патчи для версии stable 2.0.3rc1, у меня ревизия 29519. Так же проверил что патчи прикладываются на последнюю доступную ревизию - 29985.
    Attached Files
    Last edited by Jimson; 31-08-2012, 22:00.
  • zalex_ua
    Senior Member
    Zabbix Certified Trainer
    Zabbix Certified SpecialistZabbix Certified Professional
    • Oct 2009
    • 1286

    #2
    Это все нужно писать там в трекере, а то тут результаты этой работы могут быть забыты и потеряны.

    Comment

    • Jimson
      Senior Member
      • Jan 2008
      • 1327

      #3
      Originally posted by zalex_ua
      Это все нужно писать там в трекере, а то тут результаты этой работы могут быть забыты и потеряны.
      Ну там они тоже никому особо не нужны, реквесты по 2+ года как бы явно на это намекают

      Comment

      Working...