Сервис представляет собой интерфейс для взаимодействия компонентов платформы и внешними SMS-шлюзами, Call-центрами и серверами электронной почты. Служит для отправки уведомлений пользователям платформы, а также пользователям Wi-Fi.
apt-get install eltex-ngw |
| Действие | Команда | Ответ | ||
|---|---|---|---|---|
| Проверка состояния | systemctl status eltex-ngw | Сервис запущен
Cервис не запущен
| ||
| Запуск сервиса | systemctl start eltex-ngw | Сервис успешно запущен
ngw_skk_received_statuses_total | ||
| Остановка сервиса | systemctl stop eltex-ngw | Сервис успешно остановлен
| ||
| Перезапуск сервиса | systemctl restart eltex-ngw | Сервис успешно перезапущен
| ||
| Создание пользователя базы данных | eltex-ngw create-db-user | |||
| Удаление базы данных | eltex-ngw remove-db |
Если при установке пакета с помощью скрипта-инсталлятора переменная ANSWER_SOFTWLC_LOCAL имеет значение "1", то пользователь базы данных будет создан автоматически. При установке пакета вручную необходимо создать пользователя командой:
eltex-ngw create-db-user |
Содержит основные настройки сервиса. Подробные инструкции по настройке различных методов авторизации находится в разделе "Инструкция по настройке и установке"→"Настройка авторизации".
// Server configuration
server {
port = 8040 # порт, который слушает сервис eltex-ngw
// number of threads in executor that executes handlers and different gateways
threads = 50
}
http {
// Timeout of http connection to the end gateway
connectionTimeout = 30s
// Number of maximum simultaneous http connections
maxConnections = 50
// Time that connection will be kept alive
keepAliveTimeout = 5s
// Whether to check SSL certificate
checkCert = true
// HTTP User Agent
userAgent = eltex-ngw
}
sms {
// Incoming (user to service) sms config
incoming.config = "smsc.conf" # выбор конфигурации шлюза для входящих сообщений (SMS от пользователя к шлюзу)
// Outgoing (service to user) sms config
outgoing.config = "smsc.conf" # выбор конфигурации для исходящих сообщений (SMS от шлюза к пользователю)
}
call {
// Incoming (user to service) call config
incoming.config = "sbc.conf" # выбор конфигурации шлюза для входящих звонков (звонок от пользователя)
// Outgoing (service to user) call config
outgoing.config = "smg.conf" # выбор конфигурации для исходящих звонков (звонок пользователю)
}
email {
// Outgoing (service to user) email config
outgoing.config = "email.conf" # выбор конфигурации для взаимодействия с сервером электронной почты (SMTP)
}
database {
host = localhost # адрес базы данных
port = 3306 # порт
name = eltex_ngw # название базы данных
user = javauser # логин для доступа к бд
password = javapassword # пароль для доступа к бд
pool {
// Time to wait for a connection
connectionTimeout = 10s
// Time to wait for connection validation
validationTimeout = 3s
min = 1
max = 10
}
migrate = true
jdbc {
driverClass = com.mysql.cj.jdbc.Driver
url = "jdbc:mysql://${database.host}:${database.port}/${database.name}"
properties {
max_allowed_packet = 32362048
useUnicode = true
characterEncoding = utf8
}
}
# настройки планировщика заданий по очистке старых сообщений в базе данных
// Configure the lifetime of different tables' content
cleanup {
// incoming events
events = 365d # время хранения событий
// sms
messages = 365d # время хранения sms
// email
emails = 365d # время хранения электронных писем
// files
files = 7d # время хранения файлов
// limit deletions by this number (0 if no limit)
limit_events = 1000 # лимит кол-ва удаляемых записей за одно выполнение из таблицы eltex_ngw.incoming_events
limit_messages = 1000 # лимит кол-ва удаляемых записей за одно выполнение из таблицы eltex_ngw.messages
limit_emails = 1000 # лимит кол-ва удаляемых записей за одно выполнение из таблицы eltex_ngw.emails
limit_files = 1000 # лимит кол-ва удаляемых записей за одно выполнение из таблицы eltex_ngw.files
// cleanup schedule cron, e.g. "0 0 3 * * *"
// set to "-" to disable
cron = "0 0 3 * * *" # настройка планировщика для запуска очистки устаревших записей, значение по умолчанию "0 0 3 * * *" (каждый день в 3:00), для отключения указать "-"
// cron for optimize tables, cron-like expression, e.g. "0 0 4 5 * *"
// set to "-" to disable
cron_optimize = "0 0 4 5 * *" # настройка планировщика для запуска очистки таблиц БД от удаленных записей, значение по умолчанию "0 0 4 5 * *" (каждый 5-й день месяца в 4:00), для отключения указать "-"
}
}
|
Удаление файлов из таблицы "eltex_ngw.file_chunks" происходит автоматически после удаления из таблицы eltex_ngw.files |
каталог содержит конфигурационные файлы для подключения к различным шлюзам.
Для подключения к различным шлюзам создан набор шаблонов конфигураций, которые находятся в каталоге /etc/eltex-ngw/gateway.d/. Зеленым цветом отмечены наиболее широко используемые конфигурации.
| Файл | Описание | Назначение | Примечание |
|---|---|---|---|
| email.conf | Почтовый сервер | Для отправки сообщений электронной почты по протоколу SMTP | |
| gazprom.conf | SMS | Индивидуальная интеграция | |
| kaspib.conf | Kaspi Bank | SMS | Индивидуальная интеграция |
| netping.conf | GSM-шлюз NetPing SMS | SMS | |
| nskbl.conf | SMS | Индивидуальная интеграция | |
| psbank.conf | SMS | Индивидуальная интеграция | |
| rtk.conf | Ростелеком | SMS | Индивидуальная интеграция |
| sbc.conf | Исходящий звонок | Для авторизации по звонку от пользователя | |
| script.conf | Отправка SMS с помощью скрипта | ||
| serial_port.conf | GSM-шлюз Fargo maestro 100 | SMS | |
| sevensky.conf | Seven Sky | SMS | |
| skk.conf skk_template.json | Шлюз СКК | SMS | Индивидуальная интеграция |
| smg.conf | Входящий звонок | Для авторизации по звонку к пользователю | |
| smpp.conf | шлюз с поддержкой SMPP | SMS | |
| smsc.conf | SMS-центр | SMS | |
| zagruzka.conf | Связной загрузка | SMS | |
| mts.conf | SMS шлюз МТС | SMS |
Если среди предложенных шаблонов настроек шлюзов Вы не нашли подходящий - обратитесь в техподдержку для интеграции с Вашим шлюзом.
Содержит параметры инициализации сервиса.
# Eltex Notification Gateway daemon parameters # Initial size of Java heap JAVA_INIT_HEAP=16m # Maximum size of Java heap JAVA_MAX_HEAP=128m # Additional arguments to pass to java JAVA_OPTS="-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/eltex-ngw" |
# Initial size of Java heap JAVA_INIT_HEAP=16m |
# Maximum size of Java heap JAVA_MAX_HEAP=128m |
# Additional arguments to pass to java JAVA_OPTS="-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/eltex-ngw" |
Содержит параметры логирования.
<?xml version="1.0" encoding="UTF-8"?>
<Configuration monitorInterval="600">
<Properties>
<Property name="baseDir">/var/log/eltex-ngw</Property>
<Property name="maxFileSize">20 MB</Property>
<Property name="accumulatedFileSize">100 GB</Property>
<Property name="lastModified">4d</Property>
<Property name="maxCount">10</Property>
<Property name="logPattern">%d{ISO8601} [%t] %-5p %logger{12} %C{1}.%M(line:%L). %m%n</Property>
<Property name="gelfLevel">OFF</Property>
<Property name="gelfHost">udp:lab3-test.eltex.loc</Property>
<Property name="gelfPort">12201</Property>
</Properties>
<Appenders>
<RollingFile name="RollingFile" filename="${baseDir}/notification-gateway.log"
filepattern="${baseDir}/notification-gateway-%i.log.gz">
<PatternLayout pattern="${logPattern}"/>
<Policies>
<SizeBasedTriggeringPolicy size="${maxFileSize}"/>
<OnStartupTriggeringPolicy/>
</Policies>
<!-- Ограничение на кол-во файлов. для боевой реализации - не более 20 штук. -->
<DefaultRolloverStrategy max="3">
<Delete basePath="${baseDir}" maxDepth="1">
<IfFileName glob="notification-gateway-*.log.gz">
<IfLastModified age="${lastModified}"/>
<IfAny>
<IfAccumulatedFileSize exceeds="${accumulatedFileSize}"/>
<IfAccumulatedFileCount exceeds="${maxCount}"/>
</IfAny>
</IfFileName>
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
<Gelf name="Gelf" host="${gelfHost}" port="${gelfPort}" version="1.1" facility="notification-gateway"
extractStackTrace="true" originHost="%host{fqdn}" maximumMessageSize="8192">
<Field name="thread" pattern="%t"/>
<Field name="level" pattern="%level"/>
<Field name="severity" pattern="%-5level"/>
<Field name="logger" pattern="%logger{12}"/>
<Field name="location" pattern="%C{1}.%M(line:%L)"/>
</Gelf>
</Appenders>
<Loggers>
<Root level="ERROR">
<AppenderRef ref="RollingFile"/>
<AppenderRef ref="Gelf" level="${gelfLevel}"/>
</Root>
<Logger name="org.eclipse.jetty" level="WARN"/>
<Logger name="org.mongodb" level="ERROR"/>
<Logger name="org.jsmpp" level="ERROR"/>
<Logger name="org.springframework" level="ERROR"/>
<logger name="jndi" level="OFF"/>
<!--log4j configuration logger-->
<Logger name="EventLogger" additivity="false" level="ERROR">
<AppenderRef ref="console"/>
</Logger>
</Loggers>
</Configuration>
|
<Configuration monitorInterval="600"> |
<Property name="baseDir">/var/log/eltex-ngw</Property> |
<Property name="maxFileSize">20 MB</Property> |
<Property name="accumulatedFileSize">100 GB</Property> |
<Property name="lastModified">4d</Property> |
<Property name="maxCount">10</Property> |
<Property name="gelfLevel">OFF</Property> <Property name="gelfHost">udp:localhost</Property> <Property name="gelfPort">12201</Property> |
<Root level="ERROR"> |
NGW обеспечивает взаимодействие с почтовым сервером по протоколу SMTP и используется для отправки уведомлений и отчетов на email. Для корректной работы требуется включить и настроить взаимодействие с почтовым сервером.
В файле /etc/eltex-ngw/application.conf, в разделе email указывается файл настроек взаимодействия с почтовым сервером:
|
Для настройки взаимодействия с почтовым сервером используется файл /etc/eltex-ngw/gateway.d/email.conf:
|
Возможность указать версию протокола шифрования "tlsVersion" реализована с версии 1.21 SoftWLC. Для возможности использования "TLSv1.0" или "TLSv1.1" требуется установить Java 8 версии 291 или ранее. |
Сервис может быть запущен в docker-контейнере. Для этого необходимо подготовить файл docker-compose.yml
version: "3"
volumes:
softwlc_logs:
driver: local
services:
ngw:
container_name: ngw
image: hub.eltex-co.ru/softwlc/eltex-ngw:1.23-<tag>
ports:
- 8040:${NGW_PORT}
# - 1814:1814/udp # For smg.conf if needed
# - 8041:8041/udp # For sbc.conf if needed
volumes:
- "/etc/eltex-ngw/gateway.d:/etc/eltex-ngw/gateway.d"
- "/etc/timezone:/etc/timezone:ro"
environment:
- server.port=${NGW_PORT}
- JAVA_INIT_HEAP=${JAVA_INIT_HEAP}
- JAVA_MAX_HEAP=${JAVA_MAX_HEAP}
- sms.incoming.config=${NGW_SMS_INCOMING_CONF}
- sms.outgoing.config=${NGW_SMS_OUTGOING_CONF}
- call.incoming.config=${NGW_CALL_INCOMING_CONF}
- call.outgoing.config=${NGW_CALL_OUTGOING_CONF}
- email.outgoing.config=${NGW_EMAIL_OUTGOING_CONF}
- database.host=${NGW_DB_HOST}
- database.port=${NGW_DB_PORT}
- database.name=${NGW_DB_NAME}
- database.user=${NGW_DB_USER}
- database.password=${NGW_DB_PASSWORD}
- database.pool.connectionTimeout=${NGW_DB_POOL_CONNECTION_TIMEOUT}
- database.pool.min=${NGW_DB_POOL_MIN_IDLE}
- database.pool.max=${NGW_DB_POOL_SIZE}
- database.cleanup.events=${NGW_DB_CLEANUP_EVENTS}
- database.cleanup.messages=${NGW_DB_CLEANUP_MESSAGES}
- database.cleanup.emails=${NGW_DB_CLEANUP_EMAILS}
- database.cleanup.files=${NGW_DB_CLEANUP_FILES}
- database.cleanup.limit_events=${NGW_DB_CLEANUP_LIMIT_EVENTS}
- database.cleanup.limit_messages=${NGW_DB_CLEANUP_LIMIT_MESSAGES}
- database.cleanup.limit_emails=${NGW_DB_CLEANUP_LIMIT_EMAILS}
- database.cleanup.limit_files=${NGW_DB_CLEANUP_LIMIT_FILES}
- database.cleanup.cron=${NGW_DB_CLEANUP_CRON}
- database.cleanup.cron_optimize=${NGW_DB_CLEANUP_CRON_OPTIMIZE}
- NGW_LOG_LEVEL=${NGW_LOG_LEVEL}
- NGW_CONSOLE_LEVEL=${NGW_CONSOLE_LEVEL}
- GELF_LEVEL=${GELF_LEVEL}
- GELF_HOST=${GELF_HOST}
- GELF_PORT=${GELF_PORT}
- TZ=${TZ} |
| Вместо <tag> необходимо указать актуальную версию, которую можно посмотреть по ссылке. |
На данный момент нельзя конфигурировать настройки шлюзов, находящихся в папке "/etc/eltex-ngw/gateway.d", через переменные окружения. Для применения необходимых настроек нужно сделать маппинг конфигурационных файлов ранее установленной deb-версии.
Некоторые параметры можно сконфигурировать через переменные окружения представленные ниже. Для этого необходимо создать файл .env и разместить его рядом с docker-compose.yml, указав в последнем необходимые переменные. В блоке "environment" необходимо указывать названия переменных в соответствии с названием переменных в конфигурационных файлах. В случае, если переменные не будут заданы или названия переменных будут заданы некорректно, то применяться значения по умолчанию.
NGW_PORT=8040 NGW_SMS_INCOMING_CONF= NGW_SMS_OUTGOING_CONF=smsc.conf NGW_CALL_INCOMING_CONF= NGW_CALL_OUTGOING_CONF= NGW_EMAIL_OUTGOING_CONF= NGW_DB_HOST=<IP-address> NGW_DB_PORT=3306 NGW_DB_NAME=eltex_ngw NGW_DB_USER=javauser NGW_DB_PASSWORD=javapassword NGW_DB_POOL_CONNECTION_TIMEOUT=10s NGW_DB_POOL_MIN_IDLE=1 NGW_DB_POOL_SIZE=10 NGW_DB_CLEANUP_EVENTS=365d NGW_DB_CLEANUP_MESSAGES=365d NGW_DB_CLEANUP_EMAILS=365d NGW_DB_CLEANUP_FILES=7d NGW_DB_CLEANUP_LIMIT_EVENTS=1000 NGW_DB_CLEANUP_LIMIT_MESSAGES=1000 NGW_DB_CLEANUP_LIMIT_EMAILS=1000 NGW_DB_CLEANUP_LIMIT_FILES=1000 # Don't clean up #NGW_DB_CLEANUP_CRON=- # 3 am each day NGW_DB_CLEANUP_CRON="0 0 3 * * *" # Don't optimize tables #NGW_DB_CLEANUP_CRON_OPTIMIZE=- # 4 am 5th day each month NGW_DB_CLEANUP_CRON_OPTIMIZE="0 0 4 5 * *" NGW_LOG_LEVEL=INFO NGW_CONSOLE_LEVEL=INFO GELF_LEVEL=OFF GELF_HOST=udp:localhost GELF_PORT=12201 #Настройка часового пояса TZ=Asia/Novosibirsk |
NGW_DB_CLEANUP_LIMIT_EVENTS - лимит удалений из таблицы событий за раз.
NGW_DB_CLEANUP_LIMIT_MESSAGES - лимит удалений из таблицы сообщений за раз.
NGW_DB_CLEANUP_LIMIT_EMAILS - лимит удалений из таблицы emails за раз.
NGW_DB_CLEANUP_LIMIT_FILES - лимит удалений из таблицы файлов за раз.
NGW_DB_CLEANUP_CRON - расписание очистки cron.
NGW_DB_CLEANUP_CRON_OPTIMIZE - расписание оптимизации таблиц cron.
Настройка часового пояса
Указать в файле ".env" используемый файл конфигурации:
NGW_CALL_INCOMING_CONF=sbc.conf
Указать маппинг порта, который указан в параметре файла sbc.conf:
connection {
port = 8041 |
в файле docker-compose.yml:
ports:
- 8040:${NGW_PORT}
- 8041:8041/udp # For sbc.conf if needed |
Указать в файле ".env" используемый файл конфигурации:
NGW_CALL_OUTGOING_CONF=smg.conf
Указать маппинг порта, который указан в параметре раздела smg.conf:
listen {
port = 1814 |
в файле docker-compose.yml:
ports:
- 8040:${NGW_PORT}
- 1814:1814/udp # For smg.conf if needed |
Метрики сервиса доступны по адресу:
http://<IP-адрес eltex-ngw>:8040/actuator/prometheus |
# HELP ngw_outgoing_mail_send_with_attachment_count_total
# TYPE ngw_outgoing_mail_send_with_attachment_count_total counter
ngw_outgoing_mail_send_with_attachment_count_total{application="NGW",status="failure",} 0.0
ngw_outgoing_mail_send_with_attachment_count_total{application="NGW",status="success",} 0.0
# HELP jvm_memory_max_bytes The maximum amount of memory in bytes that can be used for memory management
# TYPE jvm_memory_max_bytes gauge
jvm_memory_max_bytes{application="NGW",area="heap",id="PS Survivor Space",} 1.048576E7
jvm_memory_max_bytes{application="NGW",area="nonheap",id="Compressed Class Space",} 1.073741824E9
jvm_memory_max_bytes{application="NGW",area="nonheap",id="Code Cache",} 2.5165824E8
jvm_memory_max_bytes{application="NGW",area="nonheap",id="Metaspace",} -1.0
jvm_memory_max_bytes{application="NGW",area="heap",id="PS Old Gen",} 1.79306496E8
jvm_memory_max_bytes{application="NGW",area="heap",id="PS Eden Space",} 6.7108864E7
# HELP ngw_skk_sms_sent_total
# TYPE ngw_skk_sms_sent_total counter
ngw_skk_sms_sent_total{application="NGW",} 0.0
# HELP jetty_threads_current The total number of threads in the pool
# TYPE jetty_threads_current gauge
jetty_threads_current{application="NGW",} 8.0
# HELP ngw_api_session_error_count_total
# TYPE ngw_api_session_error_count_total counter
ngw_api_session_error_count_total{application="NGW",status="FAILED",} 1.0
# HELP ngw_smg_radius_send_count_total
# TYPE ngw_smg_radius_send_count_total counter
ngw_smg_radius_send_count_total{application="NGW",result="Unexpected packet",} 0.0
ngw_smg_radius_send_count_total{application="NGW",result="ACK",} 1.0
ngw_smg_radius_send_count_total{application="NGW",result="ANAK",} 0.0
ngw_smg_radius_send_count_total{application="NGW",result="Unknown",} 0.0
# HELP hikaricp_connections_min Min connections
# TYPE hikaricp_connections_min gauge
hikaricp_connections_min{application="NGW",pool="HikariPool-1",} 1.0
# HELP jvm_gc_memory_promoted_bytes_total Count of positive increases in the size of the old generation memory pool before GC to after GC
# TYPE jvm_gc_memory_promoted_bytes_total counter
jvm_gc_memory_promoted_bytes_total{application="NGW",} 1.7299008E7
# HELP process_start_time_seconds Start time of the process since unix epoch.
# TYPE process_start_time_seconds gauge
process_start_time_seconds{application="NGW",} 1.665039420842E9
# HELP jvm_gc_max_data_size_bytes Max size of old generation memory pool
# TYPE jvm_gc_max_data_size_bytes gauge
jvm_gc_max_data_size_bytes{application="NGW",} 1.79306496E8
# HELP jvm_buffer_memory_used_bytes An estimate of the memory that the Java virtual machine is using for this buffer pool
# TYPE jvm_buffer_memory_used_bytes gauge
jvm_buffer_memory_used_bytes{application="NGW",id="mapped",} 0.0
jvm_buffer_memory_used_bytes{application="NGW",id="direct",} 102778.0
# HELP jetty_threads_config_min The minimum number of threads in the pool
# TYPE jetty_threads_config_min gauge
jetty_threads_config_min{application="NGW",} 8.0
# HELP jvm_gc_pause_seconds Time spent in GC pause
# TYPE jvm_gc_pause_seconds summary
jvm_gc_pause_seconds_count{action="end of major GC",application="NGW",cause="Metadata GC Threshold",} 1.0
jvm_gc_pause_seconds_sum{action="end of major GC",application="NGW",cause="Metadata GC Threshold",} 0.125
jvm_gc_pause_seconds_count{action="end of major GC",application="NGW",cause="Ergonomics",} 1.0
jvm_gc_pause_seconds_sum{action="end of major GC",application="NGW",cause="Ergonomics",} 0.125
jvm_gc_pause_seconds_count{action="end of minor GC",application="NGW",cause="Allocation Failure",} 14.0
jvm_gc_pause_seconds_sum{action="end of minor GC",application="NGW",cause="Allocation Failure",} 0.133
jvm_gc_pause_seconds_count{action="end of minor GC",application="NGW",cause="Metadata GC Threshold",} 1.0
jvm_gc_pause_seconds_sum{action="end of minor GC",application="NGW",cause="Metadata GC Threshold",} 0.01
# HELP jvm_gc_pause_seconds_max Time spent in GC pause
# TYPE jvm_gc_pause_seconds_max gauge
jvm_gc_pause_seconds_max{action="end of major GC",application="NGW",cause="Metadata GC Threshold",} 0.0
jvm_gc_pause_seconds_max{action="end of major GC",application="NGW",cause="Ergonomics",} 0.0
jvm_gc_pause_seconds_max{action="end of minor GC",application="NGW",cause="Allocation Failure",} 0.0
jvm_gc_pause_seconds_max{action="end of minor GC",application="NGW",cause="Metadata GC Threshold",} 0.0
# HELP jvm_memory_committed_bytes The amount of memory in bytes that is committed for the Java virtual machine to use
# TYPE jvm_memory_committed_bytes gauge
jvm_memory_committed_bytes{application="NGW",area="heap",id="PS Survivor Space",} 1.048576E7
jvm_memory_committed_bytes{application="NGW",area="nonheap",id="Compressed Class Space",} 1.343488E7
jvm_memory_committed_bytes{application="NGW",area="nonheap",id="Code Cache",} 1.8743296E7
jvm_memory_committed_bytes{application="NGW",area="nonheap",id="Metaspace",} 8.6573056E7
jvm_memory_committed_bytes{application="NGW",area="heap",id="PS Old Gen",} 3.8797312E7
jvm_memory_committed_bytes{application="NGW",area="heap",id="PS Eden Space",} 3.0932992E7
# HELP ngw_incoming_event_process_event_count_total
# TYPE ngw_incoming_event_process_event_count_total counter
ngw_incoming_event_process_event_count_total{application="NGW",isRequested="false",type="SMS",} 0.0
ngw_incoming_event_process_event_count_total{application="NGW",isRequested="true",type="CALL_COMPLETION",} 3.0
ngw_incoming_event_process_event_count_total{application="NGW",isRequested="true",type="CALL",} 0.0
ngw_incoming_event_process_event_count_total{application="NGW",isRequested="false",type="CALL",} 0.0
ngw_incoming_event_process_event_count_total{application="NGW",isRequested="false",type="CALL_COMPLETION",} 3.0
ngw_incoming_event_process_event_count_total{application="NGW",isRequested="true",type="SMS",} 0.0
# HELP hikaricp_connections_max Max connections
# TYPE hikaricp_connections_max gauge
hikaricp_connections_max{application="NGW",pool="HikariPool-1",} 10.0
# HELP ngw_outgoing_sms_request_count_total
# TYPE ngw_outgoing_sms_request_count_total counter
ngw_outgoing_sms_request_count_total{application="NGW",type="portal_code",} 1.0
# HELP ngw_outgoing_mail_send_count_total
# TYPE ngw_outgoing_mail_send_count_total counter
ngw_outgoing_mail_send_count_total{application="NGW",status="failure",} 0.0
ngw_outgoing_mail_send_count_total{application="NGW",status="success",} 0.0
# HELP ngw_incoming_event_process_request_count_total
# TYPE ngw_incoming_event_process_request_count_total counter
ngw_incoming_event_process_request_count_total{application="NGW",hasSubscription="false",type="SMS",} 0.0
ngw_incoming_event_process_request_count_total{application="NGW",hasSubscription="true",type="CALL_COMPLETION",} 0.0
ngw_incoming_event_process_request_count_total{application="NGW",hasSubscription="true",type="CALL",} 0.0
ngw_incoming_event_process_request_count_total{application="NGW",hasSubscription="false",type="CALL",} 0.0
ngw_incoming_event_process_request_count_total{application="NGW",hasSubscription="false",type="CALL_COMPLETION",} 1.0
ngw_incoming_event_process_request_count_total{application="NGW",hasSubscription="true",type="SMS",} 0.0
# HELP process_files_open_files The open file descriptor count
# TYPE process_files_open_files gauge
process_files_open_files{application="NGW",} 156.0
# HELP jvm_memory_used_bytes The amount of used memory
# TYPE jvm_memory_used_bytes gauge
jvm_memory_used_bytes{application="NGW",area="heap",id="PS Survivor Space",} 642208.0
jvm_memory_used_bytes{application="NGW",area="nonheap",id="Compressed Class Space",} 1.2846432E7
jvm_memory_used_bytes{application="NGW",area="nonheap",id="Code Cache",} 1.858592E7
jvm_memory_used_bytes{application="NGW",area="nonheap",id="Metaspace",} 8.3538544E7
jvm_memory_used_bytes{application="NGW",area="heap",id="PS Old Gen",} 2.6466296E7
jvm_memory_used_bytes{application="NGW",area="heap",id="PS Eden Space",} 1035360.0
# HELP hikaricp_connections_active Active connections
# TYPE hikaricp_connections_active gauge
hikaricp_connections_active{application="NGW",pool="HikariPool-1",} 0.0
# HELP jvm_gc_live_data_size_bytes Size of old generation memory pool after a full GC
# TYPE jvm_gc_live_data_size_bytes gauge
jvm_gc_live_data_size_bytes{application="NGW",} 2.508964E7
# HELP jvm_buffer_total_capacity_bytes An estimate of the total capacity of the buffers in this pool
# TYPE jvm_buffer_total_capacity_bytes gauge
jvm_buffer_total_capacity_bytes{application="NGW",id="mapped",} 0.0
jvm_buffer_total_capacity_bytes{application="NGW",id="direct",} 102778.0
# HELP system_load_average_1m The sum of the number of runnable entities queued to available processors and the number of runnable entities running on the available processors averaged over a period of time
# TYPE system_load_average_1m gauge
system_load_average_1m{application="NGW",} 0.9
# HELP http_server_requests_seconds
# TYPE http_server_requests_seconds summary
http_server_requests_seconds_count{application="NGW",exception="None",method="GET",outcome="SUCCESS",status="200",uri="/favicon.ico",} 6.0
http_server_requests_seconds_sum{application="NGW",exception="None",method="GET",outcome="SUCCESS",status="200",uri="/favicon.ico",} 0.069144085
http_server_requests_seconds_count{application="NGW",exception="None",method="GET",outcome="INFORMATIONAL",status="101",uri="/notif_gw",} 4.0
http_server_requests_seconds_sum{application="NGW",exception="None",method="GET",outcome="INFORMATIONAL",status="101",uri="/notif_gw",} 0.165725262
http_server_requests_seconds_count{application="NGW",exception="None",method="GET",outcome="SUCCESS",status="200",uri="/actuator/prometheus",} 47.0
http_server_requests_seconds_sum{application="NGW",exception="None",method="GET",outcome="SUCCESS",status="200",uri="/actuator/prometheus",} 1.732340776
http_server_requests_seconds_count{application="NGW",exception="None",method="GET",outcome="SUCCESS",status="200",uri="/doc/**",} 3.0
http_server_requests_seconds_sum{application="NGW",exception="None",method="GET",outcome="SUCCESS",status="200",uri="/doc/**",} 0.075942671
http_server_requests_seconds_count{application="NGW",exception="None",method="GET",outcome="REDIRECTION",status="304",uri="/doc/**",} 14.0
http_server_requests_seconds_sum{application="NGW",exception="None",method="GET",outcome="REDIRECTION",status="304",uri="/doc/**",} 0.062702791
http_server_requests_seconds_count{application="NGW",exception="None",method="GET",outcome="REDIRECTION",status="302",uri="/doc",} 2.0
http_server_requests_seconds_sum{application="NGW",exception="None",method="GET",outcome="REDIRECTION",status="302",uri="/doc",} 0.084166979
# HELP http_server_requests_seconds_max
# TYPE http_server_requests_seconds_max gauge
http_server_requests_seconds_max{application="NGW",exception="None",method="GET",outcome="SUCCESS",status="200",uri="/favicon.ico",} 0.0
http_server_requests_seconds_max{application="NGW",exception="None",method="GET",outcome="INFORMATIONAL",status="101",uri="/notif_gw",} 0.0
http_server_requests_seconds_max{application="NGW",exception="None",method="GET",outcome="SUCCESS",status="200",uri="/actuator/prometheus",} 0.0
http_server_requests_seconds_max{application="NGW",exception="None",method="GET",outcome="SUCCESS",status="200",uri="/doc/**",} 0.0
http_server_requests_seconds_max{application="NGW",exception="None",method="GET",outcome="REDIRECTION",status="304",uri="/doc/**",} 0.0
http_server_requests_seconds_max{application="NGW",exception="None",method="GET",outcome="REDIRECTION",status="302",uri="/doc",} 0.0
# HELP jvm_threads_states_threads The current number of threads having NEW state
# TYPE jvm_threads_states_threads gauge
jvm_threads_states_threads{application="NGW",state="blocked",} 0.0
jvm_threads_states_threads{application="NGW",state="runnable",} 11.0
jvm_threads_states_threads{application="NGW",state="new",} 0.0
jvm_threads_states_threads{application="NGW",state="terminated",} 0.0
jvm_threads_states_threads{application="NGW",state="timed-waiting",} 10.0
jvm_threads_states_threads{application="NGW",state="waiting",} 10.0
# HELP ngw_smg_radius_receive_count_total
# TYPE ngw_smg_radius_receive_count_total counter
ngw_smg_radius_receive_count_total{application="NGW",result="Malformed packet",} 0.0
ngw_smg_radius_receive_count_total{application="NGW",result="Incorrect authenticator",} 0.0
ngw_smg_radius_receive_count_total{application="NGW",result="Missing phone number",} 0.0
ngw_smg_radius_receive_count_total{application="NGW",result="Success",} 6.0
ngw_smg_radius_receive_count_total{application="NGW",result="Unexpected packet",} 0.0
ngw_smg_radius_receive_count_total{application="NGW",result="Not accounting stop",} 0.0
ngw_smg_radius_receive_count_total{application="NGW",result="Datagram receive failure",} 0.0
# HELP jvm_gc_memory_allocated_bytes_total Incremented for an increase in the size of the young generation memory pool after one GC to before the next
# TYPE jvm_gc_memory_allocated_bytes_total counter
jvm_gc_memory_allocated_bytes_total{application="NGW",} 3.84885672E8
# HELP jvm_threads_daemon_threads The current number of live daemon threads
# TYPE jvm_threads_daemon_threads gauge
jvm_threads_daemon_threads{application="NGW",} 10.0
# HELP ngw_api_session_response_count_total
# TYPE ngw_api_session_response_count_total counter
ngw_api_session_response_count_total{application="NGW",} 5.0
# HELP process_cpu_usage The "recent cpu usage" for the Java Virtual Machine process
# TYPE process_cpu_usage gauge
process_cpu_usage{application="NGW",} 0.001206832528778314
# HELP system_cpu_count The number of processors available to the Java virtual machine
# TYPE system_cpu_count gauge
system_cpu_count{application="NGW",} 2.0
# HELP ngw_sbc_radius_processed_count_total
# TYPE ngw_sbc_radius_processed_count_total counter
ngw_sbc_radius_processed_count_total{application="NGW",status="failure",} 0.0
ngw_sbc_radius_processed_count_total{application="NGW",status="success",} 0.0
# HELP jetty_threads_jobs Number of jobs queued waiting for a thread
# TYPE jetty_threads_jobs gauge
jetty_threads_jobs{application="NGW",} 0.0
# HELP jvm_classes_unloaded_classes_total The total number of classes unloaded since the Java virtual machine has started execution
# TYPE jvm_classes_unloaded_classes_total counter
jvm_classes_unloaded_classes_total{application="NGW",} 0.0
# HELP hikaricp_connections_acquire_seconds Connection acquire time
# TYPE hikaricp_connections_acquire_seconds summary
hikaricp_connections_acquire_seconds_count{application="NGW",pool="HikariPool-1",} 2.0
hikaricp_connections_acquire_seconds_sum{application="NGW",pool="HikariPool-1",} 9.68936E-4
# HELP hikaricp_connections_acquire_seconds_max Connection acquire time
# TYPE hikaricp_connections_acquire_seconds_max gauge
hikaricp_connections_acquire_seconds_max{application="NGW",pool="HikariPool-1",} 0.0
# HELP hikaricp_connections Total connections
# TYPE hikaricp_connections gauge
hikaricp_connections{application="NGW",pool="HikariPool-1",} 1.0
# HELP hikaricp_connections_timeout_total Connection timeout total count
# TYPE hikaricp_connections_timeout_total counter
hikaricp_connections_timeout_total{application="NGW",pool="HikariPool-1",} 0.0
# HELP jvm_buffer_count_buffers An estimate of the number of buffers in the pool
# TYPE jvm_buffer_count_buffers gauge
jvm_buffer_count_buffers{application="NGW",id="mapped",} 0.0
jvm_buffer_count_buffers{application="NGW",id="direct",} 14.0
# HELP process_uptime_seconds The uptime of the Java virtual machine
# TYPE process_uptime_seconds gauge
process_uptime_seconds{application="NGW",} 9814.791
# HELP ngw_outgoing_call_execute_count_total
# TYPE ngw_outgoing_call_execute_count_total counter
ngw_outgoing_call_execute_count_total{application="NGW",status="SUCCESS",} 1.0
# HELP log4j2_events_total Number of fatal level log events
# TYPE log4j2_events_total counter
log4j2_events_total{application="NGW",level="error",} 2.0
log4j2_events_total{application="NGW",level="debug",} 1903.0
log4j2_events_total{application="NGW",level="info",} 37.0
log4j2_events_total{application="NGW",level="trace",} 0.0
log4j2_events_total{application="NGW",level="warn",} 7.0
log4j2_events_total{application="NGW",level="fatal",} 0.0
# HELP jvm_threads_live_threads The current number of live threads including both daemon and non-daemon threads
# TYPE jvm_threads_live_threads gauge
jvm_threads_live_threads{application="NGW",} 31.0
# HELP jetty_threads_config_max The maximum number of threads in the pool
# TYPE jetty_threads_config_max gauge
jetty_threads_config_max{application="NGW",} 200.0
# HELP jvm_threads_peak_threads The peak live thread count since the Java virtual machine started or peak was reset
# TYPE jvm_threads_peak_threads gauge
jvm_threads_peak_threads{application="NGW",} 32.0
# HELP jvm_classes_loaded_classes The number of classes that are currently loaded in the Java virtual machine
# TYPE jvm_classes_loaded_classes gauge
jvm_classes_loaded_classes{application="NGW",} 18000.0
# HELP jetty_threads_idle The number of idle threads in the pool
# TYPE jetty_threads_idle gauge
jetty_threads_idle{application="NGW",} 4.0
# HELP ngw_outgoing_sms_response_count_total
# TYPE ngw_outgoing_sms_response_count_total counter
ngw_outgoing_sms_response_count_total{application="NGW",status="FAILED",} 1.0
# HELP hikaricp_connections_usage_seconds Connection usage time
# TYPE hikaricp_connections_usage_seconds summary
hikaricp_connections_usage_seconds_count{application="NGW",pool="HikariPool-1",} 2.0
hikaricp_connections_usage_seconds_sum{application="NGW",pool="HikariPool-1",} 1.02
# HELP hikaricp_connections_usage_seconds_max Connection usage time
# TYPE hikaricp_connections_usage_seconds_max gauge
hikaricp_connections_usage_seconds_max{application="NGW",pool="HikariPool-1",} 0.0
# HELP hikaricp_connections_pending Pending threads
# TYPE hikaricp_connections_pending gauge
hikaricp_connections_pending{application="NGW",pool="HikariPool-1",} 0.0
# HELP hikaricp_connections_creation_seconds_max Connection creation time
# TYPE hikaricp_connections_creation_seconds_max gauge
hikaricp_connections_creation_seconds_max{application="NGW",pool="HikariPool-1",} 0.0
# HELP hikaricp_connections_creation_seconds Connection creation time
# TYPE hikaricp_connections_creation_seconds summary
hikaricp_connections_creation_seconds_count{application="NGW",pool="HikariPool-1",} 5.0
hikaricp_connections_creation_seconds_sum{application="NGW",pool="HikariPool-1",} 0.135
# HELP system_cpu_usage The "recent cpu usage" for the whole system
# TYPE system_cpu_usage gauge
system_cpu_usage{application="NGW",} 0.040475306349795764
# HELP process_files_max_files The maximum file descriptor count
# TYPE process_files_max_files gauge
process_files_max_files{application="NGW",} 4096.0
# HELP hikaricp_connections_idle Idle connections
# TYPE hikaricp_connections_idle gauge
hikaricp_connections_idle{application="NGW",pool="HikariPool-1",} 1.0
# HELP jetty_threads_busy The number of busy threads in the pool
# TYPE jetty_threads_busy gauge
jetty_threads_busy{application="NGW",} 3.0
|
Пример настройки подключения Prometheus:
- job_name: 'NGW'
metrics_path: '/actuator/prometheus'
scrape_interval: 60s
static_configs:
- targets: ['<IP-адрес eltex-ngw>:8040'] |
Label application - 'NGW'.
Метрики приведены в алфавитном порядке (нет справки для общих метрик начинающихся с jetty, jvm, hikaricp, process, system):
|
|
Встроенная документация
В составе сервиса NGW есть встроенная документация.
Найти ее можно на том же порту 8040, на котором работает весь сервис: http://ubuntu:8040/doc/index.html
Предназначена она в первую очередь для разработчиков.
Например, на главной странице можно узнать, какую версию ngw-client нужно использовать при интеграции с этим сервисом.