Skip to content

Latest commit

 

History

History
246 lines (172 loc) · 19.5 KB

File metadata and controls

246 lines (172 loc) · 19.5 KB

Параметры подсистем TotalApi

Данные параметры должны быть указаны в файле TotalApi.Server.Host.json.

Параметры командной строки

/i  - установить в виде службы и запустить
/a  - установить в автозагрузку и запустить
/u  - деинсталлировать (остановить и убрать из служб и автозагрузки)
/s  - молчаливая работа (не видно окна приложения и сообщений)

ВАЖНО! при изменении протокола или порта сервисов необходима повторная установка (с ключами /i или /a). Перед изменением конфига - выполните деинсталляцию

Общие параметры подсистем

serviceHost                               - адрес и (опционально) порт и протокол подключения к сервису;
    [protokol:]//[host][:порт]              если протокол не указан используется `http`;
                                            если порт не указан - используется порт по умолчанию в зависимости от протокола.
									  
appId                                    - идентификатор хоста подсистемы;
    TotalApi.Server.Host (по умолчанию)    в случае если хост запущен как служба - название службы.

appTitle                                 - наименование хоста подсистемы;
                                           в случае если хост запущен как служба - описание службы. 

modulesFolders                           - перечень каталогов, разделённых точкой с запятой, откуда следует
    Modules (по умолчанию)                 загружать сборки программных модулей. Позволяет использовать
                                           относительную адресацию, относительно исполнимого файла приложения.
                                           Поддерживается рекурсивная загрузка из подкаталогов указанных каталогов. 
                                           Модули из каталога приложения будут загружены в любом случае.
                                           Загружены будут только модули с именем вида TotalApi.*.dll.

ConnectionStrings						 - строки подключения к базам данных

totalapi.log                             - параметры протоколирования

AppMonitorServer                         - параметры сервера мониторинга работы подсистемы

Bindings                                 - конфигурация по умолчанию для настройки стандартных биндингов

Для возможности подключения к сервисам подсистемы по https, необходимо зарегистрировать и замапить на указанный порт сертификат. (подробнее как это сделать - читай в документации.

Параметры телематической подсистемы

Telematics                               - параметры телематического модуля

CassandraClusterSettings                 - параметры подключения к БД Cassandra

NetworkSettings                          - параметры приёма данных устойств слежения

Параметры подсистемы статистики

// общие параметры
Staticstics								 
{
    "IsDisabled": true,

    // Размер очереди статистики по умолчанию.
    // Положительное значение говорит о том, что при превышении размера очереди новые данные будут проигнорированы.
    // Отрицательное значение - очередь будет ожидать обработку предыдущих данных перед добавлением новых (не рекомендуется).
	// 0  - не использовать очередь (не рекомендуется).
    "WriteQueueSize": 1000
}

// параметры подключения к БД ведения статистики InfluxDb
InfluxDb 
{
    "IsDisabled": false,
    "Url": "http://[host]:8086:4444", // первый порт - http, второй - udp
    "DbName": "stat_db",              // наименование БД
    "RetentionPolicy": "seven_days",  // период хранения
    "User": "[user]",                 // пользователь
    "Password": "[password]",         // пароль
    "WriteQueueSize": 1000,           // размер очереди записи (переполнение игнорирует новые записи)
	"Transport": "default",           // default/http/udp
	"TimeWindowWidth": 5000 		  // ширина окна (ms) накопления данных статистики           
}                                                                     

Параметры подсистемы обмена сообщениями

EventManager
{
    // Частота накапливания одинаковых событий перед их отправкой клиенту
    "ThrottleTimeMs": 500,

	// Промежуток между повторным подключением к подсистеме биллинга при обрыве соединения
    "ReconnectBillingPeriodSec": 20,

	// Промежуток между повторным подключением к остальным подсистемам при обрыве соединения
    "ReconnectSubSystemsPeriodSec": 60,

    // Время в миллисекундах в течении которого живёт подписка если к клиент не обращается за результатами этой подписки. 
	// По окончании этого времени - подписка отменяется.
    "RequestSubscriptionPeriodMs": 30000,

    // Время в миллисекундах в принудительной переподписки клиента к серверу.
    // Если сервер по каким-то причинам отписал клиента, но тот на самом деле жив - это поможет продолжить получать события.
	"ResubscribePeriodMs": 30000
}

Параметры телематического модуля

writeCoordinatesThreads
    8 (по умолчанию)                - количество потоков, обрабатывающих очередь принятых координат. 
                                      Если очередь переполняется - при приёме координат будет выполнятся ожидание до освобождения очереди.

writeSensorDataThreads                                          
    8 (по умолчанию)                - количество потоков, обрабатывающих очередь принятых данных сенсоров.
                                      Если очередь переполняется - при приёме координат будет выполнятся ожидание до освобождения очереди.
                                              
disableCheckingRestrictions
    false  (по умолчанию)           - Только для тестов. Запрещает все виды проверок ограничений при записи данных.
disableDataFilterManager
    false  (по умолчанию)           - Только для тестов. Запрещает использование конвейров префильтров при записи данных.


NetworkSettings.HttpPort            - порт сервиса для быстрой записи координат через нативный интерфейс TotalApi по HTTP-протоколу. Работает быстрее чем соответствующий WCF-сервис TotalApi.
    0 (по умолчанию)                  Если равен нулю - не используется. Если не равен - то доступен по адресу http://{host}:{port}/totalapi/fastwriter

NetworkSettings.TcpPort             - порт сервиса для быстрой записи координат через нативный интерфейс TotalApi по TCP-протоколу. Работает быстрее чем соответствующий WCF-сервис TotalApi.
    0 (по умолчанию)                  Если равен нулю - не используется. Если не равен - то доступен по адресу tcp://{host}:{port}

NetworkSettings.UdpPort             - порт сервиса для быстрой записи координат через нативный интерфейс TotalApi по UDP-протоколу. Работает быстрее чем соответствующий WCF-сервис TotalApi.
    0 (по умолчанию)                  Если равен нулю - не используется. Если не равен - то доступен по адресу tcp://{host}:{port}

NetworkSettings.ConcurrencyLevel    - количество потоков, обрабатывающих поступающие запросы по TCP и UDP-протоколам. Для каждого из протоколов создаётся отдельная очередь.
    1 (по умолчанию)                  Если равен нулю - очередь обработки не используется и обработка происходит синхронно с приёмом данных. 

defaultCoordinateTimeToLive
    1 (по умолчанию)                - время жизни координат устройства слежения по умолчанию (в днях). 
                                      Используется, если свойство Device.TimeToLive меньше или равно TimeSpan.Zero.

forcedCoordinateTimeToLive
    не задано (по умолчанию)        - принудительное время жизни координат устройства слежения (в днях). 
                                      Если задано - используется вместо свойства Device.TimeToLive.

defaultSensorsTimeToLive
    1 (по умолчанию)                - время жизни данных датчиков устройства слежения по умолчанию (в днях). 
                                      Используется, если свойство Sensor.TimeToLive меньше или равно TimeSpan.Zero.

forcedSensorsTimeToLive
    не задано (по умолчанию)        - принудительное время жизни данных датчиков устройства слежения (в днях). 
                                      Если задано - используется вместо свойства Sensor.TimeToLive.

Параметры для управления протоколированием приложения

Данные настройки влияют на вывод информации передаваемой через интерфейс ILogger.

Настройки протоколирования указываются в разделе totalapi.log конфигурационного файла TotalApi.Server.Host.json.

disabled
	false (по умолчанию)            - глобальное включение/выключение протоколирования

async
    true (по умолчанию)             - все сообщения логгера попадают в очередь, которая обрабатывается одним отдельным потоком.
    false                           - без очереди

queueSize
	1000 (по умолчанию)             - размер очереди по умолчанию

separator
    "\t" (по умолчанию)             - разделитель отдельных элементов строки протокола

files                               - массив объектов-описателей файлов протокола  

Протоколирование может вестись в несколько файлов протокола, для разделения выводимой информации по категориям и уровню протоколирования. Формат объекта-описателя описан ниже:

disabled
	false (по умолчанию)            - включение/выключение протоколирования данного файла

file
  <строковое значение>              - имя файла протокола. Если полный путь не задан - он расширяется относительно каталога запуска программы.
                                      Если указано имя CON - вывод будет вестись не в файл, а в консоль.
                                      Поддерживаются макроподстановки, используемые в методе FileSystemExtension.ExpandPath.

level
  7 (по умолчанию)                  - битовая маска, задающая уровень протоколирования:
                                        1  - информационные сообщения
                                        2  - предупреждения
                                        4  - ошибки
                                        8  - отладка
                                        16 - статистика

console
  false (по умолчанию)              - дублировать вывод в файл с выводом в консоль. В DEBUG сборке значение этого параметра по умолчанию равно true.

append
  false (по умолчанию)              - создавать файл протокола заново при старте программы 
  true                              - дописывать в существующий

persistent
  false (по умолчанию)              - нужно ли сохранять файл протокола при старте программы. 
                                      Старый файл переименовывается в <имя файла>.yy-MM-dd.<расширение>. 
                                      Игнорируется если totalapi.log.append равно true.

splitDays              
  1 (по умолчанию)                  - создавать новый файл протокола каждые <splitDays> дня. 
                                      Старый файл переименовывается в <имя файла>.yy-MM-dd.<расширение>. 
                                      Если значение меньше или равно нулю - разбиения файла не происходит.
                                      Если значение не задано, то оно равно 1 если totalapi.log.append или totalapi.log.persistent равно true.

splitSizeMb            
  100 (по умолчанию)                - создавать новый файл протокола когда его размер превышает <splitSizeMb> мегабайт. 
                                      Старый файл переименовывается в <имя файла>.yy-MM-dd.<расширение>. 
                                      Если значение меньше или равно нулю - разбиения файла не происходит.
                                      Если значение не задано, то оно равно 100 если totalapi.log.append или totalapi.log.persistent равно true.

separator              
  "\t" (по умолчанию)               - разделитель отдельных элементов строки протокола 

categories							- строковый массив названий категорий, которые нужно протоколировать.
                                      Поддерживается простой wildcard-формат (`*` - заменяет любое кол-во символов, `?` - заменяет ровно один символ), 
                                      так и Regexp (для этого шаблон категории должен начинаться и заканчиваться символом `/`).
                                      Если в начале стоит символ `-` - эта категория будет исключена из протокола.   

Дополнительные параметры

Billing.WatcherPeriodMin
    1440 (по умолчанию)           - период проверки статусов оплаты. По умолчанию - сутки.

reconnectBillingPeriodSec
    10 (по умолчанию)             - период в секундах между проверками доступности подсистемы биллинга если она стала недоступной.

reconnectSubSystemsPeriodSec
    60 (по умолчанию)             - период в секундах между проверками доступности подсистемы если она стала недоступной.

reconnectSubSystemsMaxAttempts
    3 (по умолчанию)              - максимальное количество попыток подключиться к недоступной подсистеме.