To perform visualization, the Event Engine needs influxDB and grafana (tested on influxDB 1.1.1 and grafana 4.0.2 versions) or Power BI. Metrics are passed to influxDB by EVE_Core application, and then they are visualized by grafana. All requests processed by EVE_Core in specified time are passed to Metric Processor, that counts statistics and saves them in influxDB database. EVE_Core passes a JSON request, JSON response, clientId and request type to the Metric Processor. In grafana, influx is defined as DataSource, from which metrics are downloaded. EVE_Core do not connect with grafana.
Influx parameters are defined in EVE_Core config file, as well as other parameters for metrics.
List of parameters:
- metrics_destination - INFLUX_DB if statistics will be sent to influx, POWER_BI if statistics will be sent to Power BI, NONE if statistics will not be counted
- influx_db_url - url address of influx, for example: http://127.0.0.1:8086
- influx_db_user - user name
- influx_db_password - user password
- influx_db_database - database name
- influx_db_retention_policy - how long the inputs will be stored (see influxDB documentation)
- custom_request_fields - fields from an incoming event used as grouping in metrics' values aggregation
- metric_processed_times - defines how often the number of events occured will be counted
- metric_time_window - defines how often metrics will be sent to influx, defined in seconds
- aggregate_time_window - used by MeanScoreMetric, counts average value of score in given time window, defined in seconds (can't be less then metric_time_window)
- max_metric_calculation_threads - maximum number of threads used to count metrics. The number of threads is set by the number of calculated metrics, but can't be bigger then maximum number of threads.
- event_request_metrics - metrics names for events of EVENT type, available metrics:
- MeanScoreMetric
- ProcessedRequestsMetric
- WinPrcMetric
- BidPrcMetric
- profile_request_metrics - metrics names for events of PROFILE type
This metric presents the number of processed requests in specified time window (defined as metric_time_window parameter), including the number of incorrect requests and scored request. Statistics are aggregated per clientId and fields defined in custom_request_fields.
Fields in JSON send to grafana (influx name: processed_requests, all fields are numeric):
- processed
- processed_time_[number from config]
- scored
- errors
- min_time
- max_time
- mean_time
- sum_time
This metric presents mean score for every clientId and modelId and fields defined in custom_request_fields.Time window is defined in aggregate_time_window, with shift defined in metric_time_window parameter.
In programmatic, a suggested bidding price is returned instead of score.
Fields in JSON send to grafana (influx name: score, all fields except of modelId are numeric):
- min_score
- max_score
- mean_score
- sum_score
- scores_count
- modelId (text)
WinPrcMetric - price paid for a won view
Fields in JSON send to grafana (influx name: win_prc, all fields are numeric):
- min_win_prc
- max_win_prc
- mean_win_prc
- sum_win_prc
- count_win_prc
BidPrcMetric - bidded price (from bid response)
Fields in JSON send to grafana (influx name: bid_prc, all fields are numeric):
- min_bid_prc
- max_bid_prc
- mean_bid_prc
- sum_bid_prc
- count_bid_prc
*(Metrics only used in programmatic)

