Оглавление |
---|
Описание
Сервис представляет собой интерфейс для взаимодействия компонентов платформы и внешними SMS-шлюзами, Call-центрами и серверами электронной почты. Служит для отправки уведомлений пользователям платформы, а также пользователям Wi-Fi.
Управление сервисом
Установка сервиса
Блок кода | ||||
---|---|---|---|---|
| ||||
apt-get install eltex-ngw |
Способы запуска/остановки
Действие | Команда | Ответ | ||||
---|---|---|---|---|---|---|
Проверка состояния | systemctl status eltex-ngw | Сервис запущен
Cервис не запущен
| ||||
Запуск сервиса | systemctl start eltex-ngw | Сервис успешно запущен
| ||||
Остановка сервиса | 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 |
Конфигурация
/etc/eltex-ngw/application.conf
Содержит основные настройки сервиса. Подробные инструкции по настройке различных методов авторизации находится в разделе "Инструкция по настройке и установке"→"Настройка авторизации".
Блок кода | ||||||
---|---|---|---|---|---|---|
| ||||||
// 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 = 01000 # лимит кол-ва удаляемых записей за одно выполнение из таблицы 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/
каталог содержит конфигурационные файлы для подключения к различным шлюзам.
Для подключения к различным шлюзам создан набор шаблонов конфигураций, которые находятся в каталоге /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 |
Если среди предложенных шаблонов настроек шлюзов Вы не нашли подходящий - обратитесь в техподдержку для интеграции с Вашим шлюзом.
/etc/default/eltex-ngw
Содержит параметры инициализации сервиса.
Блок кода | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
# 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 |
- Дополнительные опции запуска java:
Без форматирования |
---|
# Additional arguments to pass to java JAVA_OPTS="-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/eltex-ngw" |
/etc/eltex-ngw/log4j2.xml
Содержит параметры логирования.
Блок кода | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
<?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> |
- Блок настройки перенаправления логов в Graylog (уровень логирования, адрес, порт):
Без форматирования |
---|
<Property name="gelfLevel">OFF</Property> <Property name="gelfHost">udp:lab3-test.eltex.loc<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: "2.43" 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 # - 80408041:80408041/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} |
Подсказка |
---|
Вместо <tag> необходимо указать актуальную версию, которую можно посмотреть по ссылке. |
На данный момент нельзя конфигурировать настройки смс-шлюза шлюзов, находящихся в папке "/etc/eltex-ngw/gateway.d", через переменные окружения, то для . Для применения необходимых настроек нужно сделать маппинг конфигурационных файлов ранее установленной deb-версии.
Некоторые параметры можно сконфигурировать через переменные окружения представленные ниже. Для этого необходимо создать файл .env и разместить его рядом с docker-compose.yml, указав в последнем необходимые переменные. В блоке "environment" необходимо указывать названия переменных в соответствии с названием переменных в конфигурационных файлах. В случае, если переменные не будут заданы или названия переменных будут заданы некорректно, то применятся применяться значения по умолчанию.
Блок кода | ||||||
---|---|---|---|---|---|---|
| ||||||
NGW_PORT=8040 NGW_SMS_INCOMING_CONF=smsc.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=01000 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 |
Возможные переменные окружения
Запуск сервиса
- NGW_PORT - Grpc порт, который будет слушать сервис.
- JAVA_INIT_HEAP - Xms JVM опция.
- JAVA_MAX_HEAP - Xmx JVM опция.
- JAVA_OPTS - JVM опции (может переопределить все остальные параметры по умолчанию).
Настройки SMS
- NGW_SMS_INCOMING_CONF - конфигурационный файл для идентификации пользователя по входящему SMS (от пользователя).
- NGW_SMS_OUTGOING_CONF - конфигурационный файл для идентификации пользователя по исходящему SMS (пользователю).
- sms.pool.waitTimeout - таймаут получения соединения из пула.
- sms.pool.min - минимальное число idle соединений.
- sms.pool.max - размер пула соединений.
Настройки звонков
- NGW_CALL_INCOMING_CONF - конфигурационный файл для идентификации пользователя по входящему звонку (от пользователя).
- NGW_CALL_OUTGOING_CONF - конфигурационный файл для идентификации пользователя по исходящему звонку (пользователю).
- call.pool.waitTimeout - таймаут получения соединения из пула.
- call.pool.min - минимальное число idle соединений.
- call.pool.max - размер пула соединений.
Настройки email
- NGW_EMAIL_OUTGOING_CONF - конфигурационный файл для исходящей почты.
- email.pool.waitTimeout - таймаут получения соединения из пула.
- email.pool.min - минимальное число idle соединений.
- email.pool.max - размер пула соединений.
Настройки взаимодействия с БД
- NGW_DB_HOST - хост подключения к БД.
- NGW_DB_PORT - порт подключения к БД.
- NGW_DB_NAME - имя БД.
- NGW_DB_USER - имя пользователя БД.
- NGW_DB_PASSWORD - пароль пользователя БД.
- NGW_DB_POOL_CONNECTION_TIMEOUT - таймаут получения соединения из пула.
- NGW_DB_POOL_MIN_IDLE - минимальное число idle соединений.
- NGW_DB_POOL_SIZE - размер пула соединений с БД.
- NGW_DB_CLEANUP_EVENTS - время жизни событий в БД.
- NGW_DB_CLEANUP_MESSAGES - время жизни сообщений в БД.
- NGW_DB_CLEANUP_EMAILS - время жизни email в БД.
- NGW_DB_CLEANUP_FILES - время жизни файлов, отправленных по email, в БД.
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.
Настройки логирования
- NGW_LOG_LEVEL - уровень логов при отправке на сервер, указанный в настройке "GELF_HOST"
- NGW_CONSOLE_LEVEL - уровень логов в консоли docker
- GELF_LEVEL - выключить/включить отправку логов на сервер
- GELF_HOST - адрес сервера для отправки логов
- GELF_PORT - порт сервера для отправки логов
Дополнительные параметры конфигурации для авторизации по входящему звонку (от пользователя)
Указать в файле ".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-адрес сервиса>:8040/actuator/prometheus |
Блок кода | ||||||
---|---|---|---|---|---|---|
| ||||||
# HELP process_files_max_files The maximum file descriptor count # TYPE process_files_max_files gauge process_files_max_files{application="NGW",} 1048576.0 # 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 hikaricp_connections Total connections # TYPE hikaricp_connections gauge hikaricp_connections{application="NGW",pool="HikariPool-1",} 1.0 # HELP hikaricp_connections_max Max connections # TYPE hikaricp_connections_max gauge hikaricp_connections_max{application="NGW",pool="HikariPool-1",} 10.0 # 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",} 0.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",} 0.0 ngw_incoming_event_process_event_count_total{application="NGW",isRequested="true",type="SMS",} 0.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",} 0.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 process_uptime_seconds The uptime of the Java virtual machine # TYPE process_uptime_seconds gauge process_uptime_seconds{application="NGW",} 8174.18 # 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",} 4.5322938E9 # 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 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.193 # HELP jetty_threads_busy The number of busy threads in the pool # TYPE jetty_threads_busy gauge jetty_threads_busy{application="NGW",} 3.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 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",} 524288.0 jvm_memory_committed_bytes{application="NGW",area="nonheap",id="Compressed Class Space",} 1.277952E7 jvm_memory_committed_bytes{application="NGW",area="nonheap",id="Code Cache",} 2.4707072E7 jvm_memory_committed_bytes{application="NGW",area="nonheap",id="Metaspace",} 8.6441984E7 jvm_memory_committed_bytes{application="NGW",area="heap",id="PS Old Gen",} 3.407872E7 jvm_memory_committed_bytes{application="NGW",area="heap",id="PS Eden Space",} 1.6777216E7 # 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",} 2.0756888E7 # 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",} 0.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_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_min Min connections # TYPE hikaricp_connections_min gauge hikaricp_connections_min{application="NGW",pool="HikariPool-1",} 1.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",} 0.0 ngw_incoming_event_process_request_count_total{application="NGW",hasSubscription="true",type="SMS",} 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",} 5.0 hikaricp_connections_acquire_seconds_sum{application="NGW",pool="HikariPool-1",} 0.015965716 # 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 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",} 8.9653248E7 # HELP jvm_threads_daemon_threads The current number of live daemon threads # TYPE jvm_threads_daemon_threads gauge jvm_threads_daemon_threads{application="NGW",} 7.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 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 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",} 27.0 # HELP hikaricp_connections_idle Idle connections # TYPE hikaricp_connections_idle gauge hikaricp_connections_idle{application="NGW",pool="HikariPool-1",} 1.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 hikaricp_connections_active Active connections # TYPE hikaricp_connections_active gauge hikaricp_connections_active{application="NGW",pool="HikariPool-1",} 0.0 # HELP process_files_open_files The open file descriptor count # TYPE process_files_open_files gauge process_files_open_files{application="NGW",} 146.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="ERROR_FROM_SMS_SERVICE",} 1.0 ngw_api_session_error_count_total{application="NGW",status="FAILED",} 3.0 # HELP ngw_api_session_response_count_total # TYPE ngw_api_session_response_count_total counter ngw_api_session_response_count_total{application="NGW",} 3.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",} 524288.0 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",} 8.9653248E7 jvm_memory_max_bytes{application="NGW",area="heap",id="PS Eden Space",} 4.3515904E7 # 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 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",} 1.9670976E7 # 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",} 29.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_outgoing_sms_response_count_total # TYPE ngw_outgoing_sms_response_count_total counter ngw_outgoing_sms_response_count_total{application="NGW",status="ERROR_FROM_SMS_SERVICE",} 1.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.1572265625 # 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="Ergonomics",} 2.0 jvm_gc_pause_seconds_sum{action="end of major GC",application="NGW",cause="Ergonomics",} 0.172 jvm_gc_pause_seconds_count{action="end of minor GC",application="NGW",cause="Allocation Failure",} 239.0 jvm_gc_pause_seconds_sum{action="end of minor GC",application="NGW",cause="Allocation Failure",} 1.32 # 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="Ergonomics",} 0.0 jvm_gc_pause_seconds_max{action="end of minor GC",application="NGW",cause="Allocation Failure",} 0.009 # 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.07547169811320754 # 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 hikaricp_connections_usage_seconds Connection usage time # TYPE hikaricp_connections_usage_seconds summary hikaricp_connections_usage_seconds_count{application="NGW",pool="HikariPool-1",} 5.0 hikaricp_connections_usage_seconds_sum{application="NGW",pool="HikariPool-1",} 1.349 # 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 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",} 95232.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",} 65536.0 jvm_memory_used_bytes{application="NGW",area="nonheap",id="Compressed Class Space",} 1.2146144E7 jvm_memory_used_bytes{application="NGW",area="nonheap",id="Code Cache",} 2.4364096E7 jvm_memory_used_bytes{application="NGW",area="nonheap",id="Metaspace",} 8.333776E7 jvm_memory_used_bytes{application="NGW",area="heap",id="PS Old Gen",} 3.0796768E7 jvm_memory_used_bytes{application="NGW",area="heap",id="PS Eden Space",} 3915728.0 # 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",} 95232.0 # HELP hikaricp_connections_pending Pending threads # TYPE hikaricp_connections_pending gauge hikaricp_connections_pending{application="NGW",pool="HikariPool-1",} 0.0 # 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.655705687529E9 # 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_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",} 17347.0 # HELP system_cpu_usage The "recent cpu usage" for the whole system # TYPE system_cpu_usage gauge system_cpu_usage{application="NGW",} 0.11320754716981132 # HELP log4j2_events_total Number of fatal level log events # TYPE log4j2_events_total counter log4j2_events_total{application="NGW",level="error",} 4.0 log4j2_events_total{application="NGW",level="debug",} 213885.0 log4j2_events_total{application="NGW",level="info",} 43.0 log4j2_events_total{application="NGW",level="trace",} 0.0 log4j2_events_total{application="NGW",level="warn",} 1.0 log4j2_events_total{application="NGW",level="fatal",} 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",} 10.0 # 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_jobs Number of jobs queued waiting for a thread # TYPE jetty_threads_jobs gauge jetty_threads_jobs{application="NGW",} 0.0 # 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="/actuator/prometheus",} 1635.0 http_server_requests_seconds_sum{application="NGW",exception="None",method="GET",outcome="SUCCESS",status="200",uri="/actuator/prometheus",} 33.628297776 http_server_requests_seconds_count{application="NGW",exception="None",method="GET",outcome="INFORMATIONAL",status="101",uri="/notif_gw",} 3.0 http_server_requests_seconds_sum{application="NGW",exception="None",method="GET",outcome="INFORMATIONAL",status="101",uri="/notif_gw",} 0.040395076 # 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="/actuator/prometheus",} 0.030345774 http_server_requests_seconds_max{application="NGW",exception="None",method="GET",outcome="INFORMATIONAL",status="101",uri="/notif_gw",} 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",} 8.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",} 9.0 |
Пример настройки подключения Prometheus:
Без форматирования |
---|
scrape_configs: - job_name: 'NGW' metrics_path: '/actuator/prometheus' scrape_interval: 5s static_configs: - targets: ['100.123.0.7:8040'] |