General Configuration

EventNative is configured through a single YAML file. We follow convention over configuration so the majority of parameters are optional. To get a base file, clone it from GitHub.

Our config file consists of the following sections:

  • server — General configuration parameters such as port, authorization, public_url, app logs path, etc.

  • geo — Geo resolution data (extracting city/state information from the IP address). We currently only support MaxMind as a data provider. see Geo Data resolution

  • logEventNative logs all events locally and sends them to their destination in batches. This is where you configure your local temporary path and push frequency.

  • destinations — A set of targets where the final version of events will be stored.

  • synchronization_service — coordination service configuration. It is used in cluster EventNative deployments. see Scaling EventNative

  • notifications — notifier configuration. Server starts, system errors, and panics information will be sent to it. Currently, only Slack notifications are supported.

  • meta.storage - meta storage configuration. At present EventNative supports only Redis. It is used for last events caching (see Events Cache) and stores information about sources synchronization (see Sources Configuration).

Example:

server:
name: instance1.domain.com
port: 8081
auth: '193b6281-f211-47a9-b384-102cf4cd2d55'
public_url: https://instances.domain.com
log:
path: /home/eventnative/logs/
metrics.prometheus.enabled: true
geo.maxmind_path: /home/eventnative/app/res/
log:
path: /home/eventnative/logs/events
rotation_min: 5
destinations:
redshift:
bigquery:
synchronization_service:
type: etcd
endpoint: http://your_etcd_host
notifications:
slack:
url: https://slack_web_hook_url
meta:
storage:
redis:
host: redis_host
port: 6379
password: secret_password

Server

All fields from the server section are optional:

Field

Type

Description

Default value

name

string

Unique instance name. It is used in cluster deployments.

unnamed-server

port

int

TCP port for the server to listen on.

8001

auth

objects array/string

see Authorization page.

generated UUID

public_url

string

Service public URL. It is used on the welcome HTML page. Required in Heroku deployment.

Will be got from Host request header

log.path

string

Path to application logs. If not set, app logs will be in stdout.

-

log.rotation_min

int

Log files rotation minutes. If log.path is configured.

-

auth_reload_sec

int

If an URL is set in auth section, authorization will be reloaded every auth_reload_sec seconds. see Authorization page.

30

destinations_reload_sec

int

If an URL is set in destinations section, destinations will be reloaded every destinations_reload_sec seconds. see Destinations.

40

admin_token

string

see Admin Endpoints page.

-

metrics.prometheus.enabled

boolean

see Application Metrics page.

false

telemetry.disabled.usage

boolean

Flag for disabling telemetry. EventNative collects usage metrics about how you use it and how it is working. We don't collect any customer data.

false

disable_version_reminder

boolean

Flag for disabling log reminder banner about new EventNatvie versions availability.

false

Log

EventNative supports destinations in streaming and batch modes. In the case of batch mode, all events are stored in JSON log files locally to path directory, and every rotation_min minutes they are processed and pushed to destinations. All fields from log section are optional:

Field

Type

Description

Default value

path

string

Events log files path.

/home/eventnative/logs/events

rotation_min

int

Log files rotation minutes.

5

show_in_server

boolean

Flag for debugging. If true - all events JSON data is written in app logs.

false