event_hydrant – Message Tracking

March 26, 2020

The event_hydrant module is used for tracking messages from generation through engagement. It exports a jlog file that provides the full disposition status of every message that goes through Momentum, including message generation, message reception, message delivery, and engagement tracking. Note that this module combines the functionality of the ec_logger and bounce_logger with engagement tracking.

Ensure that you have a subscriber for the jlog file generated by this module. For an example of a jlog reader, see “Using JLog::Reader”.

Note

Event data, tracking the full disposition status of every message that goes through Momentum, is also available in the following:

Therefore, writing the event_hydrant jlog file is typically disabled by default. This option must be enabled if you wish to create the jlog file.

Configuration

The event_hydrant module is configured in the ecelerity.conf file. The following is the default configuration:

event_hydrant "event_collector" {
  concurrency = 1
  cust_prefix = "cust_"
  jlog_filename = "jlog:///var/log/ecelerity/event_hydrant.rt=>event_consumer"
  log_click = true
  log_conversion = true
  log_delivery = true
  log_genfail = true
  log_genrejection = true
  log_inband_bounce = true
  log_open = true
  log_outofband_bounce = true
  log_reception = true
  log_rejection = true
  log_tempfail = true
  # Set to "false" by default. Set to "true" to write jlogs
  write_jlog = false
}

The following are the configuration options defined by this module:

concurrency

Define the number of threads to use. Default value is 1.

cust_prefix

This option enables you to add your own data to the jlog by logging arbitrary context variables. Any context variable created using this prefix will be added to the jlog. Default value is cust_. When using Lua policy, use msg:context_set to set the context variable.

jlog_filename

Specify the location, name, and subscriber of the jlog file generated by this module. To use this option, write_jlog must be set to true. Default value is jlog:///var/log/ecelerity/event_hydrant.rt=>event_consumer.

Note

For a plain text log, drop the jlog:// prefix.

log_click

Whether to log click events. Default value is true.

log_conversion

Whether to log conversion events. Default value is true. Note: Conversion events have not yet been implemented.

log_delivery

Whether to log deliveries. Default value is true.

log_genfail

Whether to log message generation failure events. Default value is true.

An event is recorded for each individual failure. For example, if a transmission has 100 recipients and 20 of them have invalid email addresses, 20 generation failure events are logged.

log_genrejection

Whether to log a generated message that is rejected by policy. Default value is true.

log_inband_bounce

Whether to log in-band bounces. Default value is true.

log_open

Whether to log open events. Default value is true.

log_outofband_bounce

Whether to log out-of-band bounces. Default value is true.

log_reception

Whether to log receptions. Default value is true.

log_rejection

Whether to log rejections. Default value is true.

log_tempfail

Whether to log temporary failures. Default value is true.

write_jlog

Whether to write jlogs. Default value is false. This option must be enabled if you wish to create jlogs. The location of the jlog file is determined by the jlog_filename option.

If this option is enabled, logs will be written individually on each Platform node so custom applications can read event data. You are not required to implement aggregation in order to read jlogs.