...
connections_stats | Соединения с WCS-сервером |
---|---|
connections | Общее количество соединений |
connections_rtmfp | Количество RTMFP-соединений (Flash) |
connections_websocket | Количество WebSocket-соединений |
port_stats | Порты, слушаемые WCS-сервером |
ports_media_free | Количество свободных медиапортов |
ports_media_busy | Количество занятых медиапортов |
ports_media_quarantine | Количество медиапортов в карантине |
ports_wcs_agents_free | Количество свободных портов, используемых в CDN |
ports_wcs_agents_busy | Количество занятых портов, используемых в CDN |
ports_wcs_agents_quarantine | Количество портов, используемых в CDN, находящихся в карантине |
streams_stats | Сессии аудио и видеопотоков на WCS-сервере |
streams_rtsp_in | Количество активных RTSP-сессий, раздающих трафик |
streams_rtsp_out | Количество активных RTSP-сессий, забирающих трафик |
streams_websocket_out | Количество активных потоков, воспроизводимых через WebSocket |
streams_rtmp_out | Количество активных RTMP-потоков |
streams_webrtc_in | Количество активных потоков, публикуемых через WebRTC |
streams_webrtc_out | Количество активных потоков, воспроизводимых через WebRTC |
streams_rtmfp_in | Количество активных потоков, публикуемых через RTMFP |
streams_rtmfp_out | Количество активных потоков, воспроизводимых через RTMFP |
streams_viewers | Количество активных клиентов, воспроизводящих опубликованные потоки |
streams_synchronization | Синхронизация в опубликованных потоках |
native_resources | Информация о потребляемых ресурсах |
native_resources | Информация о кодировании/декодировании медиапотока |
core_stats | Параметры системы (полученные с использованием методов Java) и параметры WCS-сервера |
core_threads | Количество активных потоков server-процесса WCS |
core_java_threads | Текущее количество живых потоков |
core_java_threads_blocked | Текущее количество заблокированных потоков |
core_java_committedMemory | Количество гарантированно доступной виртуальной памяти, в байтах |
core_java_freePhysicalMemorySize | Количество свободной физической памяти, в байтах |
core_java_arch | Aрхитектура операционной системы |
core_java_availableProcessors | Количество процессоров доступных виртуальной машине Java |
core_java_freeSwapSpaceSize | Количество свободного swap-пространства, в байтах |
core_java_maxFileDescriptorCount | Максимальное количество файл-дескрипторов |
core_java_open_file_descriptors | Количество файл-дескрипторов, открытых в виртуальной машине Java |
core_java_cpu_usage | "Недавнее использование процессора" для процесса виртуальной машины Java |
core_java_totalPhysicalMemorySize | Количество физической памяти, в байтах |
core_java_totalSwapSpaceSize | Количество swap-пространства, в байтах |
core_java_uptime | Сколько времени прошло от запуска виртуальной машины Java, в миллисекундах |
core_heap_memory_used | Использование памяти в куче |
core_rss_memory | Использование памяти |
core_open_file_descriptors | Количество открытых файл-дескрипторов |
core_cpu_usage | Процент времени, затраченного на работу процессов |
core_gc | Информация о "сборке мусора" |
core_gc_manager | Информация о "сборке мусора" в административном модуле |
core_heap_memory_used | Используемая память в куче |
core_java_version | Версия Java |
core_java_nio_memory_buffer_count | Количество используемых TCP NIO буферов |
core_java_nio_memory_used | Объем памяти, используемой под TCP NIO буферы |
core_java_nio_memory_capacity | Объем памяти, выделенной под TCP NIO буферы |
call_stats | SIP-звонки на WCS-сервере |
sip_calls | Количество SIP-звонков |
sip_calls_established | Количество активных SIP-звонков |
sip_calls_in | Количество входящих SIP-звонков |
sip_calls_out | Количество исходящих SIP-звонков |
sip_calls_per_second (cps) | Количество SIP-звонков в секунду |
sip_stats | SIP-клиенты |
sip_registered | Количество клиентов в состоянии REGISTERED |
recording_stats | Запись аудио и видеофайлов |
recording_sessions | Количество активных сессий записи |
recording_threads | Количество процессорных потоков для записи |
recording_thread_min_writers | Минимальное количество записей на один процессорный поток |
recording_thread_max_writers | Максимальное количество записей на один процессорный поток |
recording_thread_average_writers | Среднее количество записей на один процессорный поток |
recording_writers_list | Список активных записей |
recording_writers_with_max_queue | Список записей с максимальным размером очереди данных |
recording_writers_with_min_queue | Список записей с минимальным размером очереди данных |
recording_min_writers_queue | Минимальный размер очереди данных на запись |
recording_average_writers_queue | Средний размер очереди данных на запись |
recording_max_writers_queue | Максимальный размер очереди данных на запись |
system_stats | Параметры системы |
system_java_cpu_usage | "Недавнее использование процессора" для всей системы (получено с использованием методов Java) |
system_java_load_average | Средняя нагрузка системы за последнюю минуту (получено с использованием методов Java) |
system_uptime | Сколько времени прошло от запуска Linux-сервера |
system_memory_total | Доступная к использованию RAM-память, в килобайтах |
system_memory_free | Количество физической RAM-памяти, не используемой системой, в килобайтах |
system_cpu_usage | Процент времени, затраченного на работу процессов ядра |
network_stats | Статистика сетевого трафика |
global_bandwidth_in | Пропускная способность канала для входящих соединений |
global_bandwidth_out | Пропускная способность канала для исходящих соединений |
version_stats | Информация о версии WCS |
wcs_version | Текущая версия WCS-сервера |
wcs_client_version | Текущая версия Web SDK |
gc_stats | Информация о последнем цикле сборки мусора |
gc_last_pause_ms | Пауза в работе JVM, в миллисекундах |
gc_last_duration_ms | Общая длительность цикла сборки мусора, в миллисекундах |
gc_last_heap_before_mb | Объем кучи в мегабайтах, до сборки мусора |
gc_last_heap_after_mb | Объем кучи в мегабайтах, после сборки мусора |
errors_info | Информация об ошибках (собирается на основании перехваченных исключений Java) |
java.io.IOException | Количество ошибок ввода-вывода |
java.lang.ArrayIndexOutOfBoundsException | Количество выходов за пределы массива |
java.lang.IllegalArgumentException | Количество ошибок в аргументах функций |
com.flashphoner.server.license.activation.A.C | Количество ошибок при активации лицензии |
java.lang.NullPointerException | Количество попыток перехода по нулевому указателю |
java.lang.OutOfMemoryError | Количество ошибок выделения памяти (требуется перезапуск сервера) |
degraded_streams_stats | Информация о деградации потоков |
degraded_streams | Количество деградировавших потоков |
degraded_streams_percent | Процент деградации от общего числа потоков на сервере |
transcoding_stats | Информация о транскодировании потоков |
transcoding_video_decoding_resolutions | Список декодируемых разрешений в виде "разрешение/количество потоков" |
transcoding_video_decoding_average_time | Среднее время декодирования по разрешениям в виде "разрешение/время в мс" |
transcoding_video_decoding_max_time | Максимальное время декодирования по разрешениям в виде "разрешение/время в мс" |
transcoding_video_decoding_average_queue_size | Средний размер очереди декодирования по разрешениям в виде "разрешение/размер очереди" |
transcoding_video_decoding_max_queue_size | Максимальный размер очереди декодирования по разрешениям в виде "разрешение/размер очереди" |
transcoding_video_encoding_resolutions | Список кодируемых разрешений в виде "разрешение/количество потоков" |
transcoding_video_encoding_average_time | Среднее время кодирования по разрешениям в виде "разрешение/время в мс" |
transcoding_video_encoding_max_time | Максимальное время кодирования по разрешениям в виде "разрешение/время в мс" |
transcoding_video_encoding_average_queue_size | Средний размер очереди кодирования по разрешениям в виде "разрешение/размер очереди" |
transcoding_video_encoding_max_queue_size | Максимальный размер очереди кодирования по разрешениям в виде "разрешение/размер очереди" |
transcoding_video_decoding_load | Интегральный показатель нагрузки декодирования |
transcoding_video_encoding_load | Интегральный показатель нагрузки кодирования |
buffer_output_stats | Информация о выравнивающем буфере (только в JSON формате) |
cdn_stats | Информация о CDN |
cdn_version | Версия CDN, поддерживаемая данным сервером |
cdn_role | Роль сервера в CDN |
cdn_group | Группа, в которую входит сервер |
log_stats | Статистика | , собираемая при помощи внешнего скрипта
Каждый параметр может быть запрошен отдельно, например
Code Block | ||
---|---|---|
| ||
http://test.flashphoner.com:8081/?action=stat¶ms=native_resources |
Статистику используемых ресурсов и информацию о нагрузке WCS-сервера, объединенную по группам, можно запросить по имени группы (доступны connections_stats, streams_stats, port_stats, call_stats, degraded_streams_stats, system_stats, core_stats)
Code Block | ||
---|---|---|
| ||
http://test.flashphoner.com:8081/?action=stat&groups=call_stats |
В запрос можно включить несколько наименований групп
Code Block | ||
---|---|---|
| ||
http://test.flashphoner.com:8081/?action=stat&groups=call_stats,connections_stats |
Параметры системы могут быть исключены из полной выборки при помощи настройки в файле flashphoner.properties
Code Block | ||
---|---|---|
| ||
parse_system_stats=false |
В этом случае параметры системы предоставляются только по запросу.
Форматы вывода статистики
По умолчанию, статистика выводится в plain text
...
theme | RDark |
---|---|
title | Plain text statistics example |
collapse | true |
...
записи в лог | |
log_msg_per_sec | Количество сообщений, записываемых в логи, за секунду |
log_mbit_per_sec | Объем записи в логи в мегабитах в секунду |
tcp_channel_stats | Статистика TCP каналов |
channels_not_writable | Количество событий, при которых не удалось отправить данные по TCP |
jitter_buffer_stats | Статистика jitter буфера для входящих медиа потоков |
decodable_drops_old | Количество сброшенных H264 фреймов, собранных из пакетов трафика, на поток |
incomplete_drops_old | Количество сброшенных H264 фреймов, не полностью собранных из пакетов трафика, на поток |
decodable_drops_reset | Количество сброшенных H264 фреймов до новой точки декодирования, собранных из пакетов трафика, на поток |
incomplete_drops_reset | Количество сброшенных H264 фреймов до новой точки декодирования, не полностью собранных из пакетов трафика, на поток |
decodable_drops_pli | Количество сбросов всех H264 фреймов, собранных из пакетов трафика, при приходе ключевого фрейма, на поток |
incomplete_drops_pli | Количество сбросов всех H264 фреймов, не полностью собранных из пакетов трафика, при приходе ключевого фрейма, на поток |
data_packets_with_empty_payload | Количество пакетов с пустым содержимым, высылаются браузером для оценки канала публикации при включенном TWCC |
h264_depacketizer_stats | Статистика H264 депакетайзера |
missed_h264_units | Количество потерянных H264 элементов, на поток |
rtp_audio_player_stats | Статистика разбора аудио пакетов |
dropped_audio_data_packets | Количество аудио пакетов, отброшенных на этапе передачи в движок сервера |
custom_stats | Статистика, собираемая при помощи внешнего скрипта |
Каждый параметр может быть запрошен отдельно, например
Code Block | ||
---|---|---|
| ||
http://test.flashphoner.com:8081/?action=stat¶ms=native_resources |
Статистику используемых ресурсов и информацию о нагрузке WCS-сервера, объединенную по группам, можно запросить по имени группы (доступны connections_stats, streams_stats, port_stats, call_stats, degraded_streams_stats, system_stats, core_stats)
Code Block | ||
---|---|---|
| ||
http://test.flashphoner.com:8081/?action=stat&groups=call_stats |
В запрос можно включить несколько наименований групп
Code Block | ||
---|---|---|
| ||
http://test.flashphoner.com:8081/?action=stat&groups=call_stats,connections_stats |
Параметры системы могут быть исключены из полной выборки при помощи настройки в файле flashphoner.properties
Code Block | ||
---|---|---|
| ||
parse_system_stats=false |
В этом случае параметры системы предоставляются только по запросу.
Форматы вывода статистики
По умолчанию, статистика выводится в plain text
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
-----Connection Stats----- connections=1 connections_rtmfp=0 connections_websocket=1 -----Port Stats----- ports_media_free=495 ports_media_busy=4 ports_media_quarantine=0 -----NativeStream ResourcesStats----- nativestreams_webrtc_resources=140537376620832,NENC:H264/FFMPEG,1859;140537236444800,FFDecoderNative:H264/FFMPEG,39404417 native_resources.audio_codecs=0 native_resources.audio_resamplers=0 native_resources.video_transcoders=0 native_resources.video_decoders=1 native_resources.video_encoders=1 native_resources.writers=0 -----Core Stats----- core_java_threads=71 core_java_committedMemory=3127017472 core_java_freePhysicalMemorySize=69820416 core_java_arch=amd64 core_java_availableProcessors=2 core_java_freeSwapSpaceSize=1044369408 core_java_maxFileDescriptorCount=20000 core_java_open_file_descriptors=206 core_java_cpu_usage=39.88 core_java_totalPhysicalMemorySize=1927303168 core_java_totalSwapSpaceSize=1073737728 core_java_uptime=102191 -----Callin=1 streams_webrtc_out=1 streams_websocket_out=0 streams_rtmfp_in=0 streams_rtmfp_out=0 streams_rtmp_in=0 streams_rtmp_out=0 streams_viewers=test/1 streams_rtsp_in=0 streams_rtsp_out=0 streams_rtmp_client_out=0 streams_play_rate=0 streams_stop_rate=0 -----Native Resources----- native_resources=140537376620832,NENC:H264/FFMPEG,1859;140537236444800,FFDecoderNative:H264/FFMPEG,39404417 native_resources.audio_codecs=0 native_resources.audio_resamplers=0 native_resources.video_transcoders=0 native_resources.video_decoders=1 native_resources.video_encoders=1 native_resources.writers=0 -----Core Stats----- sipcore_processedjava_callsthreads=071 sipcore_callsjava_state=established/0;trying/0;ringing/0;ring/0;ring_media/0;hold/0;busy/0;finish/0;session_progress/0;pending/0;failed/0 sip_calls=0 sip_calls_established=0 sip_calls_in=0 sip_calls_out=0 sip_calls_per_second=0.00 -----Sip Stats----- sip_registered=0 -----Recording Stats----- recording_sessions=0 -----System Stats----- system_java_cpu_usage=75.00 system_java_load_average=0.87committedMemory=3127017472 core_java_freePhysicalMemorySize=69820416 core_java_arch=amd64 core_java_availableProcessors=2 core_java_freeSwapSpaceSize=1044369408 core_java_maxFileDescriptorCount=20000 core_java_open_file_descriptors=206 core_java_cpu_usage=39.88 core_java_totalPhysicalMemorySize=1927303168 core_java_totalSwapSpaceSize=1073737728 core_java_uptime=102191 -----NetworkCall Stats (Mbit/s)----- globalsip_bandwidthprocessed_incalls=0.000 globalsip_bandwidthcalls_outstate=established/0.000;trying/0;ringing/0;ring/0;ring_media/0;hold/0;busy/0;finish/0;session_progress/0;pending/0;failed/0 sip_calls=0 sip_calls_established=0 sip_calls_in=0 sip_calls_out=0 sip_calls_per_second=0.00 -----VersionSip infoStats----- wcssip_version=5.2.416-32aab7dc90527bfe2ffb4711090fe75c6613a2bb wcs_client_version=0.5.28.2753-9ba78705727d3ee9d75c1c10f488d21cd00a601cregistered=0 -----Recording Stats----- recording_sessions=0 -----ErrorsSystem infoStats----- system_java_cpu_usage=75.00 system_java_load_average=0.87 -----Degraded streamsNetwork Stats (Mbit/s)----- degradedglobal_bandwidth_streamsin=0.000 degradedglobal_streamsbandwidth_percentout=0 |
...
.000 -----Version info----- wcs_version=5.2.416-32aab7dc90527bfe2ffb4711090fe75c6613a2bb wcs_client_version=0.5.28.2753-9ba78705727d3ee9d75c1c10f488d21cd00a601c -----Errors info----- -----Degraded streams----- degraded_streams= degraded_streams_percent=0 |
Начиная со сборки 5.2.416, поддерживаются также форматы JSON и Prometheus. Для вывода статистики в формате JSON необходимо указать формат в URI запроса
...
Code Block | ||||
---|---|---|---|---|
| ||||
{
"recording_stats": {
"recording_sessions": "10",
"recording_threads": "8",
"recording_thread_min_writers": "1",
"recording_thread_max_writers": "2",
"recording_thread_average_writers": "1",
"recording_writers_list": [
"95c8f5d3",
"3881dab6",
"545e59b8",
"54e7a01c",
"06de077d",
"b71fa871",
"193aa3bb",
"91219b12",
"c314201c",
"6f5241be"
],
...
"recording_full_info": [
{
"threadId": 109,
"writersCount": 2,
"usageCounter": 2,
"writersInfo": [
{
"queueSize": 0,
"streams": [
"95c8f5d3"
]
},
{
"queueSize": 0,
"streams": [
"3881dab6"
]
}
]
},
...
]
}
} |
Здесь:
...
]
}
} |
Здесь:
- queueSize - текущий размер очереди данных на запись
- streams - список записываемых потоков
- threadId - идентификатор процессорного потока, который занимается записью
- writersCount - количество записей на один процессорный поток
- usageCount - количество использований процессорного потока для записи
Статистика записи в логи
В сборке 5.2.1210 добавлена возможность получения статистики записи в логи, что может быть полезно на сервере под нагрузкой
Code Block | ||||
---|---|---|---|---|
| ||||
curl -s 'http://localhost:8081/?action=stat&groups=log_stats' |
Сбор статистики логирования дает дополнительную нагрузку на CPU при большом объеме медиапотоков на сервере. Поэтому, начиная со сборки 5.2.1252 по умолчанию, сбор статистики логирования по умолчанию отключен, но может быть включен при помощи настройки
Code Block | ||
---|---|---|
| ||
log_metrics_stats=true |
В статистику входят следующие параметры
Code Block | ||
---|---|---|
| ||
-----Logger info-----
log_msg_per_sec=0.30
log_mbit_per_sec=0.00 |
- log_msg_per_sec - количество сообщений, записанных во все логи за секунду
- log_mbit_per_sec - объем данных, записанных во все логи, в мегабитах в секунду
По умолчанию, статистика буферизуется на интервале 10 секунд. Если в лог в течение этого времени не было выведено ни одного сообщения, значения в статистике обнулятся. Интервал буферизации может быть изменен настройкой
Code Block | ||
---|---|---|
| ||
log_metrics_time_buffer=10000 |
Интервал не может быть задан меньше 1 секунды, в таких случаях будет использовано значение по умолчанию.
Статистика входящего потока
В сборке 5.2.1257 добавлена возможность получения статистики публикации конкретного потока
Code Block | ||||
---|---|---|---|---|
| ||||
curl -s "http://localhost:8081/?action=stat&format=json&groups=transcoding_stats" | jq '.[].transcoding_video_full_info' |
Статистика выводится только в формате JSON и содержит следующие параметры:
Code Block | ||||
---|---|---|---|---|
| ||||
{
"test": {
"codec": "H264",
"queueSize": 0,
"distributors": {
...
},
"minDeltaArrivalTime": 1,
"maxDeltaArrivalTime": 62,
...,
"streamDelay": 38
}
} |
- имя потока
- codec - кодек публикации
- queueSize - размер очереди декодирования
- distributors - информация о подписчиках
- minDeltaArrivalTime - минимальное время между получением двух последовательных пакетов, мс
- maxDeltaArrivalTime - минимальное время между получением двух последовательных пакетов, мс
- streamDelay - задержка потока, мс
Статистика по времени собирается на интервале, который задается настройкой в миллисекундах
Code Block | ||
---|---|---|
| ||
media_processor_incoming_stat_window=30000 |
Статистика TCP каналов
В сборке 5.2.1883 добавлен вывод статистики TCP канального уровня
Code Block | ||||
---|---|---|---|---|
| ||||
curl -s "http://localhost:8081/?action=stat&groups=tcp_channel_stats" |
Статистика содержит следующие параметры
Code Block | ||
---|---|---|
| ||
-----Tcp channel info-----
channels_not_writable= |
- channels_not_writable - количество событий, в результате которых не удалось записать данные на отправку в TCP сокет, на медиасессию
Статистика отображается только для текущих публикаций.
Статистика jitter буфера входящих медиа потоков
В сборке 5.2.1883 добавлен вывод статистики jitter буфера входящих медиа потоков
Code Block | ||||
---|---|---|---|---|
| ||||
curl -s "http://localhost:8081/?action=stat&groups=jitter_buffer_stats" |
Статистика содержит следующие параметры
Code Block | ||
---|---|---|
| ||
-----JitterBuffer info-----
decodable_drops_old=
incomplete_drops_old=f49f8cb0-dc52-11ee-81df-51ad589334c0/7;
decodable_drops_reset=
incomplete_drops_reset=
decodable_drops_pli=
incomplete_drops_pli=f49f8cb0-dc52-11ee-81df-51ad589334c0/10;
data_packets_with_empty_payload= |
- decodable_drops_old - количество сброшенных H264 фреймов, собранных из пакетов трафика, на медиасессию
- incomplete_drops_old - количество сброшенных H264 фреймов, не полностью собранных из пакетов трафика, на медиасессию
- decodable_drops_reset - количество сброшенных H264 фреймов до новой точки декодирования, собранных из пакетов трафика, на медиасессию
- incomplete_drops_reset - количество сброшенных H264 фреймов до новой точки декодирования, не полностью собранных из пакетов трафика, на медиасессию
- decodable_drops_pli - количество сбросов всех H264 фреймов, собранных из пакетов трафика, при приходе ключевого фрейма, на медиасессию
- incomplete_drops_pli - количество сбросов всех H264 фреймов, не полностьюсобранных из пакетов трафика, при приходе ключевого фрейма, на медиасессию
- data_packets_with_empty_payload - количество пакетов с пустым содержимым, высылаются браузером для оценки канала публикации при включенном TWCC, на медиасессию
Статистика отображается только для текущих публикаций
Статистика H264 депакетайзера
В сборке 5.2.1883 добавлен вывод статистики H264 депакетайзера
Code Block | ||||
---|---|---|---|---|
| ||||
curl -s "http://localhost:8081/?action=stat&groups=h264_depacketizer_stats" |
Статистика содержит следующие параметры
Code Block | ||
---|---|---|
| ||
-----H264 RTPDepacketizer info-----
missed_h264_units=f49f8cb0-dc52-11ee-81df-51ad589334c0/443; |
- missed_h264_units - количество потерянных H264 элементов, на медиасессию
Статистика отображается только для текущих публикаций
Статистика разбора аудио пакетов
В сборке 5.2.1923 добавлен вывод статистики разбора аудио пакетов
Code Block | ||||
---|---|---|---|---|
| ||||
curl -s "http://localhost:8081/?action=stat&groups=rtp_audio_player_stats" |
Статистика содержит следующие параметры
Code Block | ||
---|---|---|
| ||
-----RtpAudioPlayer info-----
dropped_audio_data_packets= |
- dropped_audio_data_packets - количество аудио пакетов, отброшенных на этапе передачи в движок сервера, на медиасессию
Статистика отображается только для текущих публикаций