Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных

Описание


Сервис представляет собой интерфейс для взаимодействия компонентов платформы и внешними SMS-шлюзами, Call-центрами и серверами электронной почты. Служит для отправки уведомлений пользователям платформы, а также пользователям Wi-Fi.



Управление сервисом


Установка сервиса

apt-get install eltex-ngw

Способы запуска/остановки

ДействиеКомандаОтвет
Проверка состоянияsystemctl status eltex-ngw

Сервис запущен

Active: active (running)

Cервис не запущен

Active: failed

Запуск сервисаsystemctl start eltex-ngw

Сервис успешно запущен

Active: active (running)

ngw_skk_received_statuses_total

Остановка сервисаsystemctl stop eltex-ngw

Сервис успешно остановлен

Active: failed

Перезапуск сервисаsystemctl restart eltex-ngw

Сервис успешно перезапущен

Active: active (running)

Создание пользователя базы данныхeltex-ngw create-db-user
Удаление базы данныхeltex-ngw remove-db

Если при установке пакета с помощью скрипта-инсталлятора переменная ANSWER_SOFTWLC_LOCAL имеет значение "1", то пользователь базы данных будет создан автоматически. При  установке пакета вручную необходимо создать пользователя командой:

eltex-ngw create-db-user

  

Конфигурация


/etc/eltex-ngw/application.conf

Содержит основные настройки сервиса. Подробные инструкции по настройке различных методов авторизации находится в разделе "Инструкция по настройке и установке"→"Настройка авторизации".

/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 = 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/

каталог содержит конфигурационные файлы для подключения к  различным шлюзам.

Для подключения к различным  шлюзам создан набор шаблонов конфигураций, которые находятся в каталоге /etc/eltex-ngw/gateway.d/. Зеленым цветом отмечены наиболее широко используемые конфигурации.

ФайлОписаниеНазначениеПримечание
email.confПочтовый серверДля отправки сообщений электронной почты по протоколу SMTP
gazprom.conf
SMSИндивидуальная интеграция
kaspib.confKaspi BankSMSИндивидуальная интеграция
netping.confGSM-шлюз NetPing SMSSMS
nskbl.conf
SMSИндивидуальная интеграция
psbank.conf
SMSИндивидуальная интеграция
rtk.confРостелекомSMSИндивидуальная интеграция
sbc.confИсходящий звонокДля авторизации по звонку от пользователя
script.conf
Отправка SMS с помощью скрипта
serial_port.confGSM-шлюз  Fargo maestro 100SMS
sevensky.confSeven SkySMS
skk.conf
skk_template.json
Шлюз СККSMSИндивидуальная интеграция
smg.confВходящий звонокДля авторизации по звонку к пользователю
smpp.confшлюз с поддержкой SMPPSMS
smsc.confSMS-центрSMS
zagruzka.confСвязной загрузкаSMS
mts.confSMS шлюз МТСSMS

Если среди предложенных шаблонов настроек шлюзов Вы не нашли подходящий - обратитесь в техподдержку для интеграции с Вашим шлюзом.

/etc/default/eltex-ngw

Содержит параметры инициализации сервиса.

/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

Содержит параметры логирования.

/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:localhost</Property>
<Property name="gelfPort">12201</Property>
  • Уровень логирования:
<Root level="ERROR">

Замечания по настройке взаимодействия с почтовым сервером

NGW обеспечивает взаимодействие с почтовым сервером по протоколу SMTP и используется для отправки уведомлений и отчетов на email. Для корректной работы требуется включить и настроить взаимодействие с почтовым сервером.

В файле /etc/eltex-ngw/application.conf, в разделе email указывается файл настроек взаимодействия с почтовым сервером:

 /etc/eltex-ngw/application.conf
email {
    // Outgoing (service to user) email config
    outgoing.config = "email.conf"                          # выбор конфигурации для электронной почты

}

Для настройки взаимодействия с почтовым сервером используется файл /etc/eltex-ngw/gateway.d/email.conf:

 /etc/eltex-ngw/gateway.d/email.conf
connection {
  login = "example@example.com"      # Логин
  password = ""                      # Пароль
  senderPrefix = ""                  # Префикс адреса отправителя
  host = example.com                 # Адрес почтового сервера
  port = 587                         # Порт почтового сервера (по умолчанию для нешифрованного соединения 25, для шифрованного 587)
  sendpartial = true
  starttls = false                   # Использовать шифрование: false - "Нет", true - "Да"
  tlsVersion = "TLSv1.2"             # Протокол шифрования
  timeout = 5s
  pool {
    min = 1
    max = 20
    waitTimeout = 10s
  }
}

Важно!

Возможность указать версию протокола шифрования "tlsVersion" реализована с версии 1.21 SoftWLC.

Для возможности использования "TLSv1.0" или "TLSv1.1" требуется установить Java 8 версии 291 или ранее.

Докеризация сервиса


Сервис может быть запущен в docker-контейнере. Для этого необходимо подготовить файл docker-compose.yml

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" необходимо указывать названия переменных в соответствии с названием переменных в конфигурационных файлах. В случае, если переменные не будут заданы или названия переменных будут заданы некорректно, то применяться значения по умолчанию.

.env
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_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 - порт сервера для отправки логов

Настройка часового пояса

  • TZ - часовой пояс в формате Asia/Novosibirsk (список существующих можно посмотреть командой timedatectl list-timezones)

Дополнительные параметры конфигурации для авторизации по входящему звонку (от пользователя)

Указать в файле ".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):

 Справочник по метрикам

Тип метрики

Имя

Label

Комментарий

1

counter

http_server_requests_seconds_count

['application', 'exception', 'method', 'outcome', 'status', 'uri']

Количество обращений к встроенному http-серверу

2

gauge

http_server_requests_seconds_max

['application', 'exception', 'method', 'outcome', 'status', 'uri']

Время выполнения самых длительных запрос к встроенному http-серверу (с)

3

summary

http_server_requests_seconds_sum

['application', 'exception', 'method', 'outcome', 'status', 'uri']

Суммарное время выполнения запросов к встроенному http-серверу (с)

4

counter

log4j2_events_total

['application', 'level']

Количество событий логирования

5

counter

ngw_api_session_error_count_total

['application', 'status']

Количество ответов на запрос от клиента NGW, завершившихся некоторой ошибкой при выполнении запроса. status – обозначает статус ошибки, с которой завершился запрос.

6

counter

ngw_api_session_response_count_total

['application']

ККоличество успешных ответов на запрос от клиента NGW по WebSocket сессии. 

7

counter

ngw_api_session_websocket_failure_count_total

['application', 'cause']

Количество ошибок при передаче ответа клиентам NGW через веб-сокет. cause – причина по которой произошла ошибка связи.

8

counter

ngw_incoming_event_process_event_count_total

['application', 'isRequested', 'type']

Количество событий, пришедших от шлюзов входящих SMS или звонков.

type – тип события пришедшего от шлюза.

Поддержаны следующие типы:

  1. SMS – пришла SMS от пользователя.
  2. CALL – пришёл звонок от пользователя.
  3. CALL_COMPLETION – завершение исходящего звонка пользователю.

isRequested – был ли запрос от систем, использующих NGW, на этот тип события.

  1. true – запрос на данное событие был до его появления в NGW.
  2. false – запроса на данное событие в NGW не было.

9

counter

ngw_incoming_event_process_request_count_total

['application', 'hasSubscription', 'type']

Количество запросов на входящее SMS или звонок от клиентов NGW.

Клиентами NGW являются Eltex-Portal, Eltex-WiFi-Cab и Jobs.

type – тип события пришедшего от шлюза.

Поддержаны следующие типы:

  1. SMS – пришла SMS от пользователя.
  2. CALL – пришёл звонок от пользователя.
  3. CALL_COMPLETION – завершение исходящего звонка пользователю.

hasSubscription – было ли событие создано до поступления запроса в NGW.

  1. true – событие создано в NGW до поступления запроса от клиента. Значит пользователь позвонил/отправил SMS раньше, чем пришёл запрос.
  2. false – событие создано в момент обращения клиента в NGW. Событие ожидает своего выполнения по команде от шлюза.
10counter

ngw_outgoing_call_execute_count_total

['application', 'status']

Количество запусков операции выполнения звонка в сторону пользователя.

Работает со всеми типами шлюзов.

status – в случае успеха SUCCESS, в случае ошибки FAILED, либо любой другой статус установленный шлюзом.

11

counter

ngw_outgoing_mail_send_count_total

['application', 'status']

Количество отправленных E-Mail без приложений к письму.

status – статус отправки E-Mail без приложений к письму.

Имеет два состояния.

  1. sucesss – успешно отправлено на E-Mail шлюз.
  2. failure – ошибка при отправке на E-Mail шлюз.

12

counter

ngw_outgoing_mail_send_with_attachment_count_total

['application', 'status']

Количество отправленных E-Mail с приложениями к письму.

status – статус отправки E-Mail с приложениями к письму.

Имеет два состояния.

  1. sucess – успешно отправлено на E-Mail шлюз.
  2. failure – ошибка при отправке на E-Mail шлюз.

13

counter

ngw_outgoing_sms_request_count_total

['application', 'type']

Количество запросов поступивших в NGW на отправку SMS во внешний шлюз. Работает со всеми типами шлюзов, в том числе и с шаблонизированными шлюзами. 

Клиентами NGW являются Eltex-Portal, Eltex-WiFi-Cab и Jobs.

type - тип события, отправляемого во внешнюю систему.

Возможны варианты:

  • portal_code - отправка SMS с паролем из портала;
  • WiFi-Cab. Create user - создание пользователя в ЛК
  • WiFi-Cab. Edit user - изменение пользователя в ЛК
  • WiFi-Cab. User password change - смена пароля пользователя
  • WiFi-Cab. Delete user - удаление пользователя из ЛК
  • WiFi-Cab. SSID PSK Change - изменении параметра SSID
  • WiFi-Cab. Auth user password change - изменение пароля пользователя для авторизации

14

counter

ngw_outgoing_sms_response_count_total

['application', 'status']

Количество ответов, которые NGW отправил в ответ на запрос отправки SMS во внешний шлюз. Работает со всеми типами шлюзов, в том числе и с шаблонизированными шлюзами.

type - тип события, отправляемого во внешнюю систему.

Возможны варианты:

  • portal_code - отправка SMS с паролем из портала;
  • WiFi-Cab. Create user - создание пользователя в ЛК
  • WiFi-Cab. Edit user - изменение пользователя в ЛК
  • WiFi-Cab. User password change - смена пароля пользователя
  • WiFi-Cab. Delete user - удаление пользователя из ЛК
  • WiFi-Cab. SSID PSK Change - изменении параметра SSID
  • WiFi-Cab. Auth user password change - изменение пароля пользователя для авторизации

15

counter

ngw_sbc_radius_processed_count_total

['application', 'status']

Количество успешно обработанных RADIUS-пакетов полученных от шлюза SBC (авторизация по звонку от клиента).

status – статус обработки пакета, полученного от шлюза SBC.

Имеет два состояния.

  1. sucesss – успешно обработанный пакет.
  2. failure – при обработке пакета произошла ошибка.

16

counter

ngw_skk_received_statuses_total

['application', 'status']

Для Шлюза СКК

Обновление этих метрик говорит о том, что от Шлюза приходит POST receiveStatus с соответствующими статусами (* означает промежуточный статус; иначе - финальный):

  • Deferred *

  • Delivered

  • Expired

  • Failed

  • NotDelivered

  • Rejected

  • Transmitted *

При нормальной работе число Transmitted, Delivered должно стремиться к ngw_skk_sms_sent_total.

Пояснение по статусам смотри ниже в Описание статусов отправленных сообщений Шлюза СКК.

17

counter

ngw_skk_sms_sent_total

['application']

Для Шлюза СКК

Общее число запросов на отправку SMS через этот шлюз.

18

counter

ngw_skk_status_changes_total

['application']

Для Шлюза СКК

Обновляется:

  • при обработке POST receiveStatus;

  • при обработке GET getStatus видим изменение индекса.

19

counter

ngw_skk_status_requests_total

['application']

Для Шлюза СКК

Обновляется при обработке GET getStatus - ручной запрос статуса SMS к Шлюзу СКК.

20

counter

ngw_smg_radius_receive_count_total

['application', 'result']

Количество пакетов, содержащих результат звонка пользователю от SMG. Имеют тип Accounting-Request Stop.

result – имеющий следующие значения:

  1. Datagram receive failure – ошибка получения UDP пакета, содержащего Radius-пакет.
  2. Malformed packet – пакет не удалось распарсить в Radius формате.
  3. Incorrect authenticator – некорректный аутентификатор Radius-пакета.
  4. Unexpected packet – неожиданный тип пакета, не Accounting-Request.
  5. Not accounting stop – пакет типа Accounting-Request, но не подтипа Stop.
  6. Missing phone number – отсутствует номер вызываемого абонента.
  7. Success – успешно совершенный звонок. Номер содержится в пакете. Тип пакета Accounting-Request Stop.

21

counter

ngw_smg_radius_send_count_total

['application', 'result']

Количество отправленных пакетов на шлюз SMG. Каждая отправка имеет свой статус в качестве тега. Успешная отправка означает лишь успешную команду на исполнение звонка в SMG, сам статус звонка приходит отдельным пакетом в Accounting-Request Stop.

result – имеющий следующие значения:

  1. ACK – команда на выполнение звонка успешно принята.
  2. ANAK – команда на выполнение звонка не может быть исполнена. Подробнее в документации к SMG.
  3. Unexpected packet – пакет, отличный от ACK или ANAK.
  4. Unknown – неизвестная ошибка передачи.
 Описание статусов отправленных сообщений Шлюза СКК

Статус

Вид статуса

Описание

Передано (Transmitted)

Промежуточный

Сообщение принято оператором. Осуществляется попытка доставки сообщения абоненту.

Доставлено (Delivered)

Финальный

Сообщение успешно доставлено на устройство абонента

Не доставлено (NotDelivered)

Финальный

- абонент заблокирован или более 24 часов не доступен (не включал телефон)

- номер не зарегистрирован в сети

- номер принадлежит не сотовому оператору

- абонент установил запрет на получение SMS с коротких номеров или из интернета

- абонент находится в черном списке на стороне оператора

- абонент ранее жаловался СПАМ или получение нежелательных SMS

Просрочено (Expired)

Финальный

Истек срок жизни сообщения

Ошибка (Failed)

Финальный

При отправке или генерации сообщения возникла ошибка. Наиболее вероятная причина - неуспешная попытка отправить сообщение из СКК к оператору (технические проблемы).

В данном случае рекомендуется повторить отправку. При этом необходимо исключить ошибку в номере получателя (неправильный префикс или количество цифр в номере).

Отклонено (Rejected)

Финальный

Возвращается при ошибках заполнения параметров шаблона, например: пустой текст сообщения, неразрешенное имя отправителя, а также в случае попадания адресата в «черный список» или попытке отправить дубль сообщения (в СКК возможна блокировка отправки дублей).

Отложено ​(Deferred)

Промежуточный

Доставка сообщения запланирована на будущую дату

Встроенная документация

В составе сервиса NGW есть встроенная документация.

Найти ее можно на том же порту 8040, на котором работает весь сервис: http://ubuntu:8040/doc/index.html

Предназначена она в первую очередь для разработчиков.

Например, на главной странице можно узнать, какую версию ngw-client нужно использовать при интеграции с этим сервисом.

  • Нет меток