The service is an interface for interaction between platform components and external SMS-gateways, Call-centers and e-mail servers. It is used to send notifications to the platform users as well as to Wi-Fi users.
apt-get install eltex-ngw |
| Action | Command | Responce | ||
|---|---|---|---|---|
| Status check | systemctl status eltex-ngw | Service is active
Cервис не запущен Service is not active
| ||
| Service launch | systemctl start eltex-ngw | Service is active
ngw_skk_received_statuses_total | ||
| Service stop | systemctl stop eltex-ngw | Service is stopped
| ||
| Service restart | systemctl restart eltex-ngw | Service is restarted
| ||
| Creating a database user | eltex-ngw create-db-user | |||
| Deleting a database | eltex-ngw remove-db |
If the ANSWER_SOFTWLC_LOCAL variable is set to "1" when installing the package using the installer script, the database user will be created automatically. When installing the package manually, the user must be created with the command:
eltex-ngw create-db-user |
Configuration
// Server configuration
server {
port = 8040 # port that listens to eltex-ngw service
// 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" # select gateway configuration for incoming messages (SMS from user to gateway)
// Outgoing (service to user) sms config
outgoing.config = "smsc.conf" # select configuration for outgoing messages (SMS from gateway to user)
call {
// Incoming (user to service) call config
incoming.config = "sbc.conf" # select the gateway configuration for incoming calls (call from user)
// Outgoing (service to user) call config
outgoing.config = "smg.conf" # select the configuration for outgoing calls (call to user)
email {
// Outgoing (service to user) email config
outgoing.config = "email.conf" # select the configuration for communicating with the e-mail server (SMTP)
database {
host = localhost # database address
port = 3306 # port
name = eltex_ngw # datadase name
user = javauser # database login
password = javapassword # database password
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
}
}
# settings of the scheduler for clearing old messages in the database
// Configure the lifetime of different tables' content
cleanup {
// incoming events
events = 365d # event storage time
// sms
messages = 365d # sms storage time
// email
emails = 365d # emails storage time
// files
files = 7d # вfiles storage time
// limit deletions by this number (0 if no limit)
limit_events = 1000 # limit the number of records deleted per execution from the table eltex_ngw.incoming_events
limit_messages = 1000 # limit the number of records deleted per execution from the table eltex_ngw.messages
limit_emails = 1000 # limit the number of records deleted per execution from the table eltex_ngw.emails
limit_files = 1000 # limit the number of records deleted per execution from the table eltex_ngw.files
// cleanup schedule cron, e.g. "0 0 3 * * *"
// set to "-" to disable
cron = "0 0 3 * * *" # setting the scheduler to start clearing old records, the default value is "0 0 3 * * *" (every day at 3:00), to disable it specify "-"
// cron for optimize tables, cron-like expression, e.g. "0 0 4 5 * *"
// set to "-" to disable
cron_optimize = "0 0 4 5 * *" # scheduler setting to start clearing the database tables of deleted records, default value is "0 0 0 4 5 * * *" (every 5th day of the month at 4:00), to disable it specify "-".
}
}
|
Files are deleted from the "eltex_ngw.file_chunks" table automatically after deletion from the eltex_ngw.files table |
catalog contains configuration files for connecting to different gateways.
To connect to different gateways, a set of configuration templates has been created, which are located in the /etc/eltex-ngw/gateway.d/ directory. The most commonly used configurations are marked in green.
| File | Description | Purpose | Notes |
|---|---|---|---|
| email.conf | Mail server | To send e-mail messages using the SMTP protocol | |
| gazprom.conf | SMS | Individual integration | |
| kaspib.conf | Kaspi Bank | SMS | Individual integration |
| netping.conf | GSM gateway NetPing SMS | SMS | |
| nskbl.conf | SMS | Individual integration | |
| psbank.conf | SMS | Individual integration | |
| rtk.conf | Rostelecom | SMS | Individual integration |
| sbc.conf | Outgoing call | To authorize by user call | |
| script.conf | To send SMS using a script | ||
| serial_port.conf | GSM gateway Fargo maestro 100 | SMS | |
| sevensky.conf | Seven Sky | SMS | |
| skk.conf skk_template.json | SKK gateway | SMS | Individual integration |
| smg.conf | Incoming call | To authorize by calling the user | |
| smpp.conf | Gateway with SMPP support | SMS | |
| smsc.conf | SMS centre | SMS | |
| zagruzka.conf | Linked download | SMS | |
| mts.conf | MTS SMS gateway | SMS |
If you have not found a suitable gateway configuration template among the offered templates, please contact technical support for integration with your gateway.
Contains service initialization parameters.
# 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" |
Contains logging parameters.
<?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 provides interaction with the mail server via SMTP protocol and is used for sending notifications and reports to email. For correct operation it is required to enable and configure interaction with the mail server.
In the /etc/eltex-ngw/application.conf file, in the email section, the file of settings for interaction with the mail server is specified:
|
The /etc/eltex-ngw/gateway.d/email.conf file is used to configure communication with the mail server:
|
The ability to specify the encryption protocol version "tlsVersion" has been implemented since SoftWLC version 1.21. To be able to use "TLSv1.0" or "TLSv1.1" it is required to install Java 8 version 291 or earlier. |
The service can be launched in a docker container. For this purpose it is necessary to prepare the file 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} |
| Instead of <tag>, you need to specify the current version, which can be viewed at the link. |
At the moment it is not possible to configure gateway settings located in the "/etc/eltex-ngw/gateway.d" folder via environment variables. To apply the necessary settings, you must mapping the configuration files of a previously installed deb version.
Some settings can be configured via the environment variables below. To do this, create an .env file and place it next to docker-compose.yml, specifying the necessary variables in the latter. In the "environment" block it is necessary to specify the names of the variables in accordance with the names of the variables in the configuration files. In case variables are not specified or variable names are specified incorrectly, default values will be applied.
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 |
Possible environment variables
Service startSMS settings
NGW_DB_CLEANUP_LIMIT_EVENTS - limit of deletions from the event table at a time.
NGW_DB_CLEANUP_LIMIT_MESSAGES - limit of deletions from the table of messages at a time.
NGW_DB_CLEANUP_LIMIT_EMAILS - limit of deletions from the emails table at a time.
NGW_DB_CLEANUP_LIMIT_FILES - limit of deletions from the files table at a time.
NGW_DB_CLEANUP_CRON - cron cleanup schedule.
NGW_DB_CLEANUP_CRON_OPTIMIZE - cron table optimization schedule.
Time zone setting
Specify in the ".env" file the configuration file to be used:
NGW_CALL_INCOMING_CONF=sbc.conf
Specify the port mapping that is specified in the parameter of the sbc.conf file:
connection {
port = 8041 |
in docker-compose.yml file:
ports:
- 8040:${NGW_PORT}
- 8041:8041/udp # For sbc.conf if needed |
Specify in the ".env" file the configuration file to be used:
NGW_CALL_OUTGOING_CONF=smg.conf
Specify the port mapping that is specified in the smg.conf section parameter:
listen {
port = 1814 |
in docker-compose.yml file:
ports:
- 8040:${NGW_PORT}
- 1814:1814/udp # For smg.conf if needed |
Service metrics are available at:
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
|
Example of setting up Prometheus connection:
- job_name: 'NGW'
metrics_path: '/actuator/prometheus'
scrape_interval: 60s
static_configs:
- targets: ['<IP-адрес eltex-ngw>:8040'] |
Label application - 'NGW'.
Metrics are listed in alphabetical order (no help for common metrics starting with jetty, jvm, hikaricp, process, system):
|
|
Built-in documentation
The NGW service includes built-in documentation.
It can be found on the same port 8040 on which the whole service operates: http://ubuntu:8040/doc/index.html
It is intended primarily for developers.
For example, on the main page you can find out what version of ngw-client should be used when integrating with this service.