Устранение неполадок с лицензированием и findface-ntls
При устранении неполадок с лицензией и сервером findface-ntls
(см. Лицензирование) первым шагом является получение информации о лицензии и статусе сервера. Это можно сделать, отправив API-запрос в findface-ntls
. Действия по устранению неполадок предпринимаются с учетом содержания API-ответа.
Совет
По вопросам устранения неполадок обращайтесь к нашим специалистам по адресу support@ntechlab.com.
Примечание
Онлайн-лицензирование выполняется через Глобальный менеджер лицензий NtechLab license.ntechlab.com
. Для онлайн-лицензирования необходимы стабильное интернет-соединение и DNS.
Получить информацию о лицензии
Для получения информации о лицензии FindFace и статусе findface-ntls
, выполните в консоли сервера findface-ntls
следующую команду:
curl http://localhost:3185/v1/licenses.json -s | jq
Ответ будет возвращен в формате JSON. Одним из наиболее значимых параметров в ответе является .licenses[].last_updated
. Он показывает в секундах, как давно в последний раз проверялась локальная лицензия.
Интерпретируйте значение параметра .licenses[].last_updated
следующим образом:
[0, 5] — все работает отлично.
(5, 30] — возможно имеются какие-то проблемы со связью, либо с локальным накопителем, где хранятся файлы лицензий.
(30; 120] — почти наверняка случилось что-то нехорошее. Вам следует проверить логи
ntls
для получения дополнительной информации.(120; ∞) — не удается получить ответ от источника лицензирования в течение длительного времени. Необходимо вмешательство.
.licenses[].valid.valid == false
: связь с источником лицензирования так и не была установлена.
Еще одно важное поле – .products
. В нем описываются доступные функции («фичи») и ресурсы:
.products[].features
: доступные функции («фичи»).
.products[].resources
: доступные ограничения на ресурсы и использованное количество этих ресурсов.
.products[].extra
: дополнительная информация о лицензии.
Ответ также содержит следующие параметры:
.time
: текущее серверное время в формате временных меток Unix.
.licenses[].expire_date
: дата истечения срока действия лицензии. Учитывайте в этом поле значение.time
.
.licenses[].type
: тип лицензии.
.licenses[].license_id
: ID лицензии.
.licenses[].generated
: время генерации лицензии.
.licenses[].source
: путь к файлу лицензии.
.licenses[].products
: какие функции («фичи») и ресурсы предоставляет каждая лицензия. В основном структура аналогична структуре.products
, но здесь не передаются данные об использовании ресурсов.
.licenses[].valid.description
: если.licenses[].valid.valid == false
, то в этом поле указывается причина, по которой лицензия недействительна.
.services
: массив сервисов FindFace Multi, подключенных кntls
.
Пример ответа
{
"name": "NTLS",
"time": 1709825691,
"licenses": [
{
"expire_date": 1737208526,
"generated": 1705586179,
"last_updated": 2,
"license_id": "018f4c50e6044f0aa618436ad9450ac0",
"products": {
"multi": {
"extra": {},
"features": {
"sec-external-vms": {
"value": true
},
"sec-genetec": {
"value": true
}
},
"resources": {}
},
"server": {
"extra": {},
"features": {
"body_bags": {
"value": true
},
"body_emben": {
"value": true
},
...
},
"resources": {
"cameras": {
"value": 60
},
"extapi": {
"value": 256
},
"objects_tntapi": {
"value": 200000000
}
}
}
},
"source": "/ntech/license/Test_license_018f4c50e6044f0aa618436ad9450ac0.lic",
"type": "offline",
"valid": {
"description": "",
"valid": true
}
},
{
"expire_date": 0,
"generated": 1581946976,
"last_updated": 1,
"license_id": "017c40d9401742ce9eff8b48d93ded9a",
"products": {},
"source": "/ntech/license/ntech_license_017c40d9401742ce9eff8b48d93ded9a.lic",
"type": "online",
"valid": {
"description": "License is not valid",
"valid": false
}
}
],
"products": {
"multi": {
"features": {
"sec-external-vms": {
"value": true
},
"sec-genetec": {
"value": true
}
},
"resources": {},
"extra": {}
},
"server": {
"features": {
"body_bags": {
"value": true
},
"body_emben": {
"value": true
},
...
},
"resources": {
"cameras": {
"current": 11,
"value": 60
},
"extapi": {
"current": 1,
"value": 256
},
"objects_tntapi": {
"current": 12321,
"value": 200000000
}
},
"extra": {}
}
},
"services": [
{ "name": "video-worker-gpu", "ip": "10.255.233.12:48844" },
{ "name": "findface-extraction-api", "ip": "10.255.233.11:44182" },
{ "name": "FindFace-tarantool", "ip": "10.255.233.13:46444" }
]
}
Получить отчет
Чтобы получить отчет о счетчиках интервалов лицензий, выполните в консоли сервера findface-ntls
команду ниже. Он обновляется раз в час.
curl http://localhost:3185/v1/usage-report.json -s | jq
Пример ответа
{
"b2c4658412f44184a6e34a2a369ce58c": {
"active_limits": {
"counters": {
"server": {
"face_beard": {
"available": 10000,
"used": 3589
}
}
},
"since": "2024-07-17T17:00:00+00:00",
"till": null
},
"by_interval": [
{
"counters": {
"server": {
"body_bags": {
"used": 0
}
}
},
"since": "2024-06-30T17:00:00+00:00",
"till": "2024-07-08T17:00:00+00:00"
},
{
"counters": {
"server": {
"face_age": {
"used": 77
}
}
},
"since": "2024-07-08T17:00:00+00:00",
"till": "2024-07-17T17:00:00+00:00"
},
{
"counters": {
"server": {
"face_beard": {
"used": 3589
}
}
},
"since": "2024-07-17T17:00:00+00:00",
"till": null
}
]
},
"6b5392f68fa84861bb39ce86fa5e42f9": {
"active_limits": {
"counters": {
"server": {
"body_bags": {
"available": 10000,
"used": 1591
},
"face_age": {
"available": 1500,
"used": 28780
},
"face_beard": {
"available": 5,
"used": 30852
},
"face_emotions": {
"available": 100,
"used": 25082
},
"face_gender": {
"available": 10000,
"used": 1135
},
"face_hair": {
"available": 50,
"used": 0
},
"face_liveness": {
"available": 10000,
"used": 184
}
}
},
"since": "2024-09-18T17:00:00+00:00",
"till": "2025-07-16T17:00:00+00:00"
},
"by_interval": [
{
"counters": {
"server": {
"body_action_base": {
"used": 0
},
"car_categories": {
"used": 0
},
"face_beard": {
"used": 0
}
}
},
"since": "2024-04-24T17:00:00+00:00",
"till": "2024-04-25T17:00:00+00:00"
},
{
"counters": {
"server": {
"body_action_base": {
"used": 0
},
"body_bags": {
"used": 0
},
"car_categories": {
"used": 0
},
"face_age": {
"used": 0
}
}
},
"since": "2024-04-25T17:00:00+00:00",
"till": "2024-04-26T17:00:00+00:00"
},
{
"counters": {
"server": {
"car_description": {
"used": 477785
},
"face_emotions": {
"used": 1843574
},
"face_liveness": {
"used": 0
},
"garbage_types": {
"used": 0
}
}
},
"since": "2024-04-26T17:00:00+00:00",
"till": "2024-09-18T17:00:00+00:00"
},
{
"counters": {
"server": {
"body_bags": {
"used": 1591
},
"face_age": {
"used": 28780
},
"face_beard": {
"used": 30852
},
"face_emotions": {
"used": 25082
},
"face_gender": {
"used": 1135
},
"face_hair": {
"used": 0
},
"face_liveness": {
"used": 184
}
}
},
"since": "2024-09-18T17:00:00+00:00",
"till": "2025-07-16T17:00:00+00:00"
},
{
"counters": {
"server": {
"all_attrs": {
"used": 0
},
"body_action_car": {
"used": 0
},
"body_bags": {
"used": 0
},
"body_other_attrs": {
"used": 0
},
"car_description": {
"used": 0
},
"car_license_plate": {
"used": 0
},
"car_license_plate_visibility": {
"used": 0
},
"car_orientation": {
"used": 0
},
"car_other_attrs": {
"used": 0
},
"car_weight_types": {
"used": 0
},
"face_age": {
"used": 0
},
"face_beard": {
"used": 0
},
"face_emotions": {
"used": 0
},
"face_eyes_attrs": {
"used": 0
},
"face_eyes_openness": {
"used": 0
},
"face_gender": {
"used": 0
},
"face_glasses": {
"used": 0
},
"face_hair": {
"used": 0
},
"face_headpose": {
"used": 0
},
"face_highlight": {
"used": 0
},
"face_liveness": {
"used": 0
},
"face_mouth_attrs": {
"used": 0
},
"garbage_types": {
"used": 0
}
}
},
"since": "2025-07-16T17:00:00+00:00",
"till": null
}
]
}
}