Page tree
Skip to end of metadata
Go to start of metadata

Influx - БД временных рядов с открытым исходным кодом.

Установка БД Influx

Для того, чтобы установить Influx на CentOS 7, необходимо сделать следующее:

1. Создать файл /etc/yum.repos.d/influxdb.repo:

[influxdb]
name = InfluxDB Repository - RHEL $releasever
baseurl = https://repos.influxdata.com/rhel/$releasever/$basearch/stable
enabled = 1
gpgcheck = 1
gpgkey = https://repos.influxdata.com/influxdb.key

2. Выполнить команду

yum install influxdb -y

3. Настроить в файле /etc/influxdb/influxdb.conf возможность подключения по UDP:

[[udp]]
  enabled = true
  bind-address = ":8089"
  database = "wcs_oam"
  retention-policy = "default"

4. Запустить БД Influx

systemctl start influxdb

Процедура установки Influx на Debian/Ubuntu отличается только способом добавления необходимого репозитория.

БД Influx может быть установлена на одном сервере с WCS. Для подключения к БД используется TCP порт 8086 или UDP порт 8089.

Настройка БД

Для настройки БД Influx для хранения метрик необходимо:

1. Указать в файле настроек wcsoam.properties параметр

metric_store=influx

2. Указать в файле настроек init_tsdb.properties длительность хранения метрик

influx_retention_interval=48h0m0s

По умолчанию, длительность хранения метрик установлена в 2 суток (48 часов).

3. Запустить скрипт настройки БД

./init_tsdb.sh

Структура БД

База данных для хранения значений метрик потоков в виде временных рядов содержит поля со следующими ключами:

VIDEO_HEIGHT
VIDEO_WIDTH
VIDEO_RATE
VIDEO_SYNC
VIDEO_FPS
VIDEO_NACK
VIDEO_PLI
VIDEO_CODEC
AUDIO_SYNC
AUDIO_RATE
AUDIO_LOST
AUDIO_CODEC

Примеры выборки данных из БД Influx

Для потока, зная идентификатор узла, на котором он опубликован, и идентификатор медиасессии, можно выбрать данные из БД Influx:

1. Войдите в интерфейс командной строки Influx

influx

2. Подключитесь к БД wcs-oam

use wcs_oam

3. Выведите список временных рядов

show measurements

Отобразится список временных рядов, каждый соответствует потоку, опубликованному на заданном узле в определенной медиасессии

name: measurements                                                                         
name                                                                                       
----                                                                                       
3-7ecbd270-123e-11e9-bb40-b96debd59887
3-93412000-123b-11e9-8357-3d4423e30d73

4. Выберите значения битрейта видео для потока на узле 3 в медиасессии 7ecbd270-123e-11e9-bb40-b96debd59887

select VIDEO_RATE from "3-7ecbd270-123e-11e9-bb40-b96debd59887"

Отобразятся значения битрейта видео с метками времени

name: 3-7ecbd270-123e-11e9-bb40-b96debd59887
time                VIDEO_RATE              
----                ----------              
1546839525823000000 28424000                
1546839525960000000 1002914                 
1546839526169000000 727679                  
1546839526358000000 662007                  
1546839526575000000 645467                  
1546839526770000000 633490                  
1546839526967000000 583736                  
1546839527162000000 622472                  
1546839527365000000 593104                  
1546839527563000000 666688                  
1546839527796000000 638784                  
1546839527999000000 637000                  
1546839528192000000 647208                  
1546839528772000000 421640                  
1546839528775000000 587632                  
1546839528805000000 740064                  
1546839529031000000 753504                  
1546839529232000000 767672                  
1546839529431000000 931088                  
1546839529643000000 1090696                 
1546839529840000000 772440                  
1546839530028000000 755744                  
1546839530242000000 812624                  
1546839530429000000 867240                  
1546839530630000000 878008                  
1546839530833000000 873528                  
1546839531031000000 850352                                                                                         
...
  • No labels