UniSet 2.32.1
(DBServer_OpenTSDB) Реализация шлюза к БД поддерживающей интерфейс OpenTSDB

Общее описание шлюза к OpenTSDB

"OpenTSDB" - time series database. Специальная БД оптимизированная для хранения временных рядов (по простому: данных с временными метками). Класс реализует пересылку указанных (настроенных) датчиков в БД поддерживающую интерфейс совместимый с OpenTSDB. В текущей реализации используется посылка строк в формате Telnet

put <metric> <timestamp>.msec <value> <tagk1=tagv1[ tagk2=tagv2 ...tagkN=tagvN]>

См. http://opentsdb.net/docs/build/html/user_guide/writing/index.html

Настройка BackendOpenTSDB

Пример секции конфигурации:

<BackendOpenTSDB name="BackendOpenTSDB1" host="localhost" port="4242"
filter_field="tsdb" filter_value="1"
prefix="uniset"
tags="TAG1=VAL1 TAG2=VAL2 ..."/>

Где:

  • host - host для связи с TSDB
  • port - port для связи с TSDB. Default: 4242
  • filter_field - поле у датчика, определяющее, что его нужно сохранять в БД
  • filter_value - значение filter_field, определяющее, что датчик нужно сохранять в БД
  • prefix - необязательный префикс дописываемый ко всем параметрам (prefix.parameter)
  • tags - теги которые будут записаны для каждой записи, перечисляемые через пробел.

При этом в секции <sensors> у датчиков можно задать дополнительные теги. Помимо этого можно переопределить название метрики (tsdb_name="...").

<sensors>
...
<item id="54" iotype="AI" name="AI54_S" textname="AI sensor 54" tsdb="1" tsdb_tags=""/>
<item id="55" iotype="AI" name="AI55_S" textname="AI sensor 55" tsdb="1" tsdb_tags="" tsdb_name="MySpecName"/>
...
</sensors>

Имя значения сохраняемое в БД.

По умолчанию в качестве имени берётся name, но при необходимости можно указать определиться специальное имя. Для этого достаточно задать поле tsdb_name="...".

Буфер на запись в БД

В данной реализации встроен специальный буфер, который накапливает данные и скидывает их пачкой в БД. Так же он является защитным механизмом на случай если БД временно недоступна. Параметры буфера задаются аргументами командной строки или в конфигурационном файле. Доступны следующие параметры:

  • bufSize - размер буфера, при заполнении которого происходит посылка данных в БД
  • bufMaxSize - максимальный размер буфера, при котором начинают откидываться новые сообщения (потеря сообщений)
  • bufSyncTimeout - период сброса данных в БД
  • reconnectTime - время на повторную попытку подключения к БД
  • sizeOfMessageQueue - Размер очереди сообщений для обработки изменений по датчикам. При большом количестве отслеживаемых датчиков, размер должен быть достаточным, чтобы не терять изменения.