Configuration

It’s possible to use two variants of running the service:

  1. obtain a configuration from the configuration service (Configurator)

  2. obtain a configuration from the local file

By default, the service uses the configuration file.

You can specify the –luna-config option for pulling settings from the Configurator service, see configurator.

Auto reload configuration

The service supports an auto-reload of configuration. You can enable this feature by specifying a config-reload option in the command line. The service periodically checks for new settings. If current settings and new pulled settings are the same the service will not perform any actions. You can specify the check period in the pulling-time command line argument (10 seconds by default).

If a configuration fetching has failed, the service will work without applying any changes to the existing configurations.

If check connections with the new configuration have failed, the service will retry pulling new configuration after pulling-time seconds. The service will shut down after 10 failed attempts.

Warning

Service can work incorrectly while the new settings are being applied. It is strongly recommended not to send requests to the service when you change important settings (db setting, work plugins list and others).

During configuration reload any existing HTTP connections to the service will be closed.

Configuration file for administrator

#: LUNA Events configuration file

[LUNA_CONFIGURATOR]
#: [integer] load configs from LUNA Configurator
USE_CONFIGURATOR = 0
#: [string] LUNA Configurator protocol, IP address, and port
LUNA_CONFIGURATOR_ORIGIN = http://127.0.0.1:5070
#: [integer] API version of the LUNA Configurator
LUNA_CONFIGURATOR_API  = 1

[LUNA_EVENTS_LOGGER]

#: [string] level of debug print, by priority: "ERROR", "WARNING", "INFO", "DEBUG"
LOG_LEVEL = INFO
#: [string] time format used in log records: "LOCAL" or "UTC"
LOG_TIME = LOCAL
#: [string] folder, where logs are saved (relative path begins in directory with application)
FOLDER_WITH_LOGS = ./
#: [integer] maximum log file size in megabytes before performing rotation (0 - without rotation)
MAX_LOG_FILE_SIZE = 1024
#: send log to stdout
LOG_TO_STDOUT = 1
#: send log to file
LOG_TO_FILE = 0
#: allow multiline stack trace in logs
MULTILINE_STACK_TRACE = 1


[LUNA_EVENTS_DB]

#: [string] type of database: "postgres"
DB_TYPE = postgres
#: [string] login to database
DB_USER = luna
#: [string] database password
DB_PASSWORD = luna
#: [string] database IP address
DB_HOST = 127.0.0.1
#: [integer] database listener port, 5432 - default for "postgres" type
DB_PORT = 5432
#: [string] database name
DB_NAME = luna_events


[LUNA_EVENTS_DB.DB_SETTINGS]

#: [integer] database connection pool size
CONNECTION_POOL_SIZE = 10


[LUNA_MONITORING]

#: [string] storage type
STORAGE_TYPE = influx
#: [integer] send data for monitoring to InfluxDB
SEND_DATA_FOR_MONITORING = 1
#: [string] InfluxDB 2.x workspace
ORGANIZATION = luna
#: [string] InfluxDB 2.x authentication token
TOKEN = kofqt4Pfqjn6o0RBtMDQqVoJLgHoxxDUmmhiAZ7JS6VmEnrqZXQhxDhad8AX9tmiJH6CjM7Y1U8p5eSEocGzIA==
#: [string] InfluxDB 2.x bucket name
BUCKET = luna_monitoring
#: [string] InfluxDB IP address
HOST = 127.0.0.1
#: [integer] InfluxDB port
PORT = 8086
#: [integer] use HTTPS to connect to InfluxDB
USE_SSL = 0
#: [integer] frequency of sending monitoring data to InfluxDB (in seconds)
FLUSHING_PERIOD = 1

[LUNA_EVENTS_HTTP_SETTINGS]
#: web server http settings

#: [integer] service request timeout (in seconds)
REQUEST_TIMEOUT = 60
#: [integer] service response timeout (in seconds)
RESPONSE_TIMEOUT = 600
#: [integer] max request size (in bytes), default 1gb
REQUEST_MAX_SIZE = 1073741824
#: [integer] service http keep-alive timeout (in seconds)
KEEP_ALIVE_TIMEOUT = 15


[LUNA_SERVICE_METRICS]

#: [int] whether to enable /metrics path and statistics collection
ENABLED = 0
# [string] statistics data format (prometheus is the only option yet)
METRICS_FORMAT = prometheus

[DESCRIPTOR_ENCRYPTION]

#: [int] whether to enable descriptors encryption
ENABLED = 0
#: [string] encryption algorithm
ALGORITHM = aes256-gcm

[DESCRIPTOR_ENCRYPTION.PARAMS]

#: [string] encryption key source type
SOURCE = raw
#: [string] encryption key
KEY = 3gDyT4o+YlKLV4NZRjP/wznuhgxMI0mNNJWqc782Z9M=


[LUNA_SERVICE_METRICS.EXTRA_LABELS]


[OTHER]

#: [string] time format used in database records: "LOCAL" or "UTC"
STORAGE_TIME = LOCAL
#: [integer] default face descriptor version
DEFAULT_FACE_DESCRIPTOR_VERSION = 62
#: [integer] default human body descriptor version
DEFAULT_HUMAN_DESCRIPTOR_VERSION = 116
#: [float] save events timeout. 0 or negative means no timeout
SAVE_EVENTS_TIMEOUT = -1
#: [list(string)] list of active plugins
LUNA_EVENTS_ACTIVE_PLUGINS = []

Extended administrator configuration

Module contains constants.

configs.config.COPY_BATCH_SIZE = 1000

Batch size for copywriter

configs.config.COPY_MAX_QUEUE_SIZE = 10000

Max queue size

configs.config.COPY_WAIT_FOR_TASK = 5

Time to wait before forcing copywriter to shutdown

configs.config.DB_CONNECT_TIMEOUT = 5

Connection timeout for database in seconds

configs.config.DB_HEALTHCHECK_PERIOD = 1

db health check period

configs.config.DEFAULT_GEO_POSITION_DELTA = 0.01

default filter longitude/latitude delta in degrees

configs.config.EVENT_DELETE_BATCH_SIZE = 10000

events count to delete by one request