configuration.md
February 27, 2017 ยท View on GitHub
EEL Configuration
Most global configuration settings can be found in ../config-eel/config.json.
{
"Name": "Default",
"EventPort": 8080,
"EventProxyPath": "/proxy",
"EventProcPath": "/proc",
"Endpoint": "http://localhost:9090",
"MaxMessageSize": 51200,
"MaxAttempts": 1,
"InitialDelay": 125,
"HttpTransactionHeader": "X-B3-TraceId",
"HttpTimeout": 1000,
"ResponseHeaderTimeout" : 5000,
"MaxIdleConnsPerHost":100,
"WorkerPoolSize": 1,
"MessageQueueTimeout": 1000,
"MessageQueueDepth": 100,
"LogStats": "false"
"DuplicateTimeout": 20000,
"CustomProperties": {
"key" : "value"
},
}
Most of the settings are self-explanatory. In general, if a setting is blank or missing the feature it configures will be disabled.
Name- EEL deployment name. Primarily used for logging.EventPort,EventProxyPath,EventProcPath- Endpoint where EEL is listening for incoming events. Default ishttp://localhost:8080/proxyfor event forwarding andhttp://localhost:8080/procfor synchronous event processing.Endpoint- Default endpoint for downstream service. Can be a flat string or an array of multiple endpoints. Can be overwritten byEndpointin handler configuration.MaxMessageSize- Maximum message size EEL will accept from upstream service.MaxAttempts- If forwarding a message fails, this is the number of attempts EEL will retry with exponential backoff.InitialDelay- Initial delay for exponential backoff algorithm.HttpTransactionHeader- Zipkin compliant HTTP transaction ID header. The value for this header has to be configured in each handler separately.WorkerPoolSize,MessageQueueTimeout,MessageQueueDepth- Worker pool settings for EEL event handling.MaxIdleConnsPerHost,HttpTimeout,ResponseHeaderTimeout- Http settings for outgoing events.LogStats- Boolean to turn stats logging (typically once a minute) on or off.DuplicateTimeout- If > 0 will de-duplicated events with a TTL ofDuplicateTimeoutms.CustomProperties- Custom properties, can be accessed using the{{prop('key')}}function.
Plugins for consuming events from different event sources are configured in ../config-eel/plugins.json. By default EEL comes with a web hook plugin and a stdin plugin but it is easy to provide your own plugin for any other source of JSON events.
[
{
"Type" : "WEBHOOK",
"Name" : "WEBHOOK",
"Active" : true,
"RestartOk": false,
"Parameters" : {
"EventPort": 8080,
"EventProxyPath": "/v1/proxy",
"EventProcPath": "/v1/proc"
}
},
{
"Type" : "STDIN",
"Name" : "STDIN",
"Active" : false,
"RestartOk": false,
"Parameters" : {}
}
]