Jump to content
Калькуляторы

Мониторинг multicast stream на тему потери фреймов и прочего

Т.е. исходники там собираются, но дальше надо повозиться с ключами запуска.

Share this post


Link to post
Share on other sites

erl -noshell -s mpegtsmon start -s init stop

{"init terminating in do_boot",{noproc,{gen_server,call,[snmp_master_agent,{load_mibs,["./priv/mibs/MPEGTSMON-MIB"]},infinity]}}}

 

Crash dump was written to: erl_crash.dump

init terminating in do_boot ()

файлик с mib подложил ему,но все равно креш..

там еще сишный модуль в исходнике, с ним вообще не понятно что делать. Автор хоть бы пару строк написал ;)

Share this post


Link to post
Share on other sites

Автор хоть бы пару строк написал ;)

 

Вот так, хочешь поделиться с коллегами, размешаешь инфу о программе на НАГе в теме "Мониторинг multicast stream", а сообщение кто-то молча удаляет... Куда катится мир... :)))

Наверное по этому..

Share this post


Link to post
Share on other sites

Сишный модуль компилируется ребаром. Надо скачать rebar и собирать всё:

 

./rebar get-deps compile

 

После чего явно надо как-то использовать sys.config.sample, возможно даже сделать эрланговский релиз, но с релизами я за 7 лет работы на эрланге как-то не подружился.

 

И вопрос Дмитрию: а чего CC-ошибки то не считаешь? Там же в mpegts_udp есть код для этого.

Share this post


Link to post
Share on other sites

как ее посмотреть только не понятно. Доки совсем 0

 

Релиз ждал, что бы опубликовать процедуру инсталляции. А так отсылал только самым любопытным и нетерпеливым, кто по почте присылал вопросы.

Через пару дней инструкция появится на страничке.

 

И вопрос Дмитрию: а чего CC-ошибки то не считаешь? Там же в mpegts_udp есть код для этого.

Как не считаю? А откуда тогда

continuityErrors OBJECT-TYPE
SYNTAX		Counter32
MAX-ACCESS	read-only
STATUS		current
DESCRIPTION	"The number of detected discontinuities."
   ::= { cumulative 2 }

? :)

Edited by corneyy

Share this post


Link to post
Share on other sites

Как выяснилось, я неправильно понял и всё таки контроль за Cc там есть.

Share this post


Link to post
Share on other sites

Запустил его, спасибо автору! В принципе достаточно неплохо реализовано. Разбираюсь пока как реализовать уведомления, если нет какого-то потока или идут ошибки.

Интересно, сколько потоков сможет мониторить

Share this post


Link to post
Share on other sites

Уведомления пока такие:

1. SNMP trap на принципиальное изменение состояния потока;

2. можно брать через HTTP JSON относительно детальные данные. Так веб-консоль и работает.

 

Количество потоков - у меня 110, суммарный поток ~400-450 мбит/c.

Share this post


Link to post
Share on other sites

Интересно мониторить именно ошибки. У нас потоки пропадают редко, а вот косяки на некоторые каналах ловить было бы интересно.

Share this post


Link to post
Share on other sites

Интересно мониторить именно ошибки. У нас потоки пропадают редко, а вот косяки на некоторые каналах ловить было бы интересно.

Тогда пока только JSON. Ну или самостоятельно докрутить mpegtsmon_stat.

Попозже можно будет сделать SNMP таблицу по потокам.

Share this post


Link to post
Share on other sites

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

15172 root 20 0 1928140 546240 3132 S 100.0 6.9 1:44.37 beam.smp

 

Streams: 178 Bad: 8 Bitrate: 548.9 Mbit/s

Share this post


Link to post
Share on other sites

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

15172 root 20 0 1928140 546240 3132 S 100.0 6.9 1:44.37 beam.smp

 

Streams: 178 Bad: 8 Bitrate: 548.9 Mbit/s

100% загрузку CPU лучше не допускать. Могут возникнуть CC ошибки из-за того что система теряет пакеты.

Share this post


Link to post
Share on other sites

CC ошибки из-за т

Это понятно. Убрал немного каналов - сейчас 80-90 нагрузка. Мне кажется часто еще ffmeg вызывается и дополнительную нагрузку делает. Это можно как-то отрегулировать?

И кстати, некоторые потоки, которые визуально идут нормально - показывает постоянно 100% ошибок на них. Что-то не так определяет наверно. Могу дать доступ на сервер, если интересно.

Share this post


Link to post
Share on other sites

CC ошибки из-за т

Это понятно. Убрал немного каналов - сейчас 80-90 нагрузка. Мне кажется часто еще ffmeg вызывается и дополнительную нагрузку делает. Это можно как-то отрегулировать?

Пока можно отключить только в коде. Кину сейчас в личку, как именно.

И кстати, некоторые потоки, которые визуально идут нормально - показывает постоянно 100% ошибок на них. Что-то не так определяет наверно. Могу дать доступ на сервер, если интересно.

Вероятно, это как раз из-за

Known issues: The program does not control the state of discontinuity indicator in the adaptation field

Доступ пока не нужен, достаточно записать секунд 30 потока и кинуть мне ссылку в почту или ЛС.

Share this post


Link to post
Share on other sites

http://farbow.ru/mpegtsmon/

Бесплатно.

А можно вопрос....

Поставил, вроде все стало нормально и запустилось. но при попытке зайти на http выводит просто текст страницы (не понимает, что это html)

Как такое полечить?

P.S. Debian

Share this post


Link to post
Share on other sites

Поставил, вроде все стало нормально и запустилось. но при попытке зайти на http выводит просто текст страницы (не понимает, что это html)

Как такое полечить?

 

Content-Type: text/html передается:

Request URL:http://localhost:8100/
Request Method:GET
Status Code:200 OK
Remote Address:127.0.0.1:8100

Response Headers
HTTP/1.1 200 OK
Date: Fri, 06 May 2016 17:32:39 GMT
Server: inets/6.1
Content-Type: text/html
Etag: lBdTYd6287
Content-Length: 6287
Last-Modified: Thu, 28 Jan 2016 15:24:28 GMT

 

Не переносили, случаем, server_root из каталога проекта? Выглядит так, как будто отсутствует или игнорируется файл mime.types, который должен быть в server_root/conf/

 

Еще страница может выглядеть странно, если не подключается angular с https://ajax.googleapis.com/ajax/libs/angularjs, или заблокирован JS в браузере.

Share this post


Link to post
Share on other sites

Поставил, вроде все стало нормально и запустилось. но при попытке зайти на http выводит просто текст страницы (не понимает, что это html)

Как такое полечить?

 

Content-Type: text/html передается:

Request URL:http://localhost:8100/
Request Method:GET
Status Code:200 OK
Remote Address:127.0.0.1:8100

Response Headers
HTTP/1.1 200 OK
Date: Fri, 06 May 2016 17:32:39 GMT
Server: inets/6.1
Content-Type: text/html
Etag: lBdTYd6287
Content-Length: 6287
Last-Modified: Thu, 28 Jan 2016 15:24:28 GMT

 

Не переносили, случаем, server_root из каталога проекта? Выглядит так, как будто отсутствует или игнорируется файл mime.types, который должен быть в server_root/conf/

Нет не переносил. Да собственно пробовал и переносить, и ставил несколько раз. Но увы. Я так и понял, что mime.types игнорирутеся.

 

Еще страница может выглядеть странно, если не подключается angular с https://ajax.googleapis.com/ajax/libs/angularjs, или заблокирован JS в браузере.

Пробовали на разных машинах.

Share this post


Link to post
Share on other sites

Проблема была в символе табуляции в последней строчке mime.types. Очень странно.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now