Ad Widget

Collapse

Моргает или зажмурился?

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

    #1

    Моргает или зажмурился?

    Моя задача напрямую к забиксу отношения не имеет, прощу прощения, но в какой то мере она очень близка к оценке качества чего-либо, поэтому решил спросить совета.

    Требуется определить "моргание" по статусу сервиса. Статус это просто 0 или 1. Сложность в том что бы детектировать именно периодический процесс. Проще описать на примере:
    для начала возьмем некий интервал времени, допустим 60 секунд
    если сервис пропадал на 5, 15, 25, 35, 55 секундах, то это периодика, с сервисом проблемы
    если сервис пропадал на 5, 7, 9, 10, 14, 15 секундах, то пока дергаться рано, надо оценивать больший интервал времени, так как возможно проблема была единичной и в дальнейшем сервис пропадать не будет.

    Если кто то знает некую методику просьба подсказать. Алгоритмы-костыли я могу и сам придумать, только в моем случае вероятность ложных срабатываний должна быть минимальной. Может есть какие то "оценки" вроде mos/icpif с некоторой инертностью?

    P.s. Для тех кто решил дочитать и возможно что то предложить я еще немного поясню пример. Допустим у меня было несколько пропаданий сервиса по 1 секунде в течении 60 секунд: на 10, 25, 35, 55 секундах - это не совсем проблема. Ну в моем случае, это плохо, но сервис будет в этом случае работать. Если же интервалы "нулей" увеличить: с 10 по 12 секунды, с 25 по 28, с 35 по 36, с 55 по 57, то это означает что сервис рухнул и по сути все 60 секунд сервиса не было, надо переходить на резерв. Как я писал уже выше, если пропадания сервиса были в некий "компактный промежуток" времени, то ждем дальше, а следовательно алгоритм должен в такой ситуации перейти в режим оценки большего интервала времени. Что бы было понятно, "переход на резерв" в моей задаче процесс сложный, долгий и не факт что резерв в данный момент вообще доступен, а следовательно при ложных срабатываниях алгоритма я могу плохо работающий сервис превратить в полное его отсутствие, попутно еще и лишившись удаленного доступа.
  • yukra
    Senior Member
    • Apr 2013
    • 1359

    #2
    Мало понятно из описания что именно происходит, но при таких вводных я вижу 2 варианта:
    1) Смотрим сколько было переключений туда сюда (ноль - один - ноль) за какой то период времени. Если их больше чем обычно, то считаем что сервис падает и пытается поднятся, у него неполучается, и все начинается сначала, то есть переключаемся.
    2) Мониторим не "статус сервиса", а именно работу сервиса. Если это какой-то sql, то делаем некий select, если веб-сервис, то делает гет, на который ожидаем получить некую строку, если телефония, то делаем звонок.

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

    Comment

    • Jimson
      Senior Member
      • Jan 2008
      • 1327

      #3
      Специфика мало о чем вам скажет. Мои 0-1 это "видимость" прямого канала спутника - RX. Когда объект с подвижной системой связи движется могут быть перекрытия видимости, например, для антены на морском судне при определенном азимуте спутник может загораживаться надстройками судна. Если перекрытие видимости имеет периодический и достаточно "сильный" характер, например, каждые секунд 30 по 10 секунд нет видимости (RX = 0), то почти наверняка модем не сможет выйти в Online, т.е. канала/услуги не будет.

      Просто считать кол-во ничего не дает, я не могу дергать антеной с одного спутника на другой как вздумается, это долгий процесс. Может быть временное перекрытие, он может "моргнуть" 10 раз подряд и все проблемы уложатся секунд в 20-30, это нормальная ситуация.

      P.S. ориентироваться на статус "online" нет возможности, не у всех модемов можно его получить, к тому же модем может не выйти в online по куче других причин, например, находится в состоянии обновления софта.

      Comment

      Working...