# Luna Streams v.0.6.2 documentation

## Configuration

The service allowed two variant of configuration:

> 1. use the Configurator service

> 2. use the configuration file

The service reads settings from the configuration file by default.

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 configurations. You can enable this feature by specifying a config-reload option in the command line. The service periodically checks 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 (database credentials, work plugins list, and others).

## Configuration file for administrator

    # LUNA Streams 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_STREAMS_DB]

    #: [string] type of database: "postgres" or "oracle"; "postgres" type is used by default
    DB_TYPE = postgres
    #: [string] database username
    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, 1521 - default for "oracle" type
    DB_PORT = 5432
    #: [string] database name for "postgres" type, SID name for "oracle" type
    DB_NAME = luna_streams

    [LUNA_STREAMS_DB.DB_SETTINGS]

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

    [LUNA_LICENSES_ADDRESS]

    #: LUNA Streams protocol, IP address, and port
    ORIGIN = http://127.0.0.1:5120
    #: API version of the LUNA Streams
    API_VERSION = 1

    [LUNA_STREAMS_LOGGER]

    #: [string] folder, where logs are saved (relative path begins in directory with application)
    FOLDER_WITH_LOGS = ./
    #: [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
    #: [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
    #: log format
    FORMAT=default

    [INFLUX_MONITORING]

    #: [integer] send data for monitoring to InfluxDB
    SEND_DATA_FOR_MONITORING = 1
    #: [string] InfluxDB 2.x workspace
    ORGANIZATION =
    #: [string] InfluxDB 2.x authentication token
    TOKEN =
    #: [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_STREAMS_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

    [OTHER]

    #: [string] time format used in database records: "LOCAL" or "UTC"
    STORAGE_TIME = LOCAL
    #: list of active plugins
    LUNA_STREAMS_ACTIVE_PLUGINS = []
    #: float, stream status obsolescence period in seconds in range (0, 86400]
    STREAM_STATUS_OBSOLETING_PERIOD = 20
    #: float, stream worker timeout for locking row in table (increase for unstable network) in seconds in range (0, 1]
    STREAM_WORKER_ASYNC_LOCK_TIMEOUT = 0.1

## Extended administrator configuration

Module contains constants.

configs.config.DB_CONNECT_TIMEOUT = 5

  Connection timeout for database in seconds

configs.config.GEO_POSITION_COLUMN_TYPE = 'geography'

  location geo position column type (one of “geometry”, “geography”),

configs.config.MASTER_HEARTBEAT_INTERVAL = 1

  master luna-streams instance heartbeat interval

configs.config.MAX_ARRAY_LEN_FILTERS = 1000

  Max length for array filters in incomint jsons

configs.config.STREAM_AUTORESTARTER_INTERVAL = 1

  stream autorestarter execution interval

configs.config.STREAM_DOWNGRADE_INTERVAL = 1

  stream autorestarter execution interval