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
log — EventNative 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.comport: 8081auth: '193b6281-f211-47a9-b384-102cf4cd2d55'public_url: https://instances.domain.comlog:path: /home/eventnative/logs/metrics.prometheus.enabled: truegeo.maxmind_path: /home/eventnative/app/res/log:path: /home/eventnative/logs/eventsrotation_min: 5destinations:redshift:bigquery:synchronization_service:type: etcdendpoint: http://your_etcd_hostnotifications:slack:url: https://slack_web_hook_urlmeta:storage:redis:host: redis_hostport: 6379password: secret_password
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. |
|
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 |
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. |
|
destinations_reload_sec | int | If an URL is set in destinations section, destinations will be reloaded every destinations_reload_sec seconds. see Destinations. |
|
admin_token | string | see Admin Endpoints page. | - |
metrics.prometheus.enabled | boolean | see Application Metrics page. |
|
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. |
|
disable_version_reminder | boolean | Flag for disabling log reminder banner about new EventNatvie versions availability. |
|
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. |
|
rotation_min | int | Log files rotation minutes. |
|
show_in_server | boolean | Flag for debugging. If true - all events JSON data is written in app logs. |
|