Metrics

Enrich events with pre-calculated metrics to facilitate further advanced processing

Objective

Advanced use cases may need pre-computed metrics as inputs for calculations, event triggers, or additional context.

The enricher processor uses the Metrics Engine query interface to query and bind metrics to an event using additional DSL attributes

The Metrics Engine is enabled by default using the following configuration in joule.properties: joule.internaldb.enable=true

Uses

There are various uses for this filter such as:

  1. In retail Utilise real-time sales data and competitor pricing metrics to adjust product prices dynamically, maximising profit margins and ensuring competitiveness.

  2. In manufacturing Use sensor data from machinery to predict failures before they occur, enabling proactive maintenance scheduling and reducing unplanned downtime.

  3. In e-commerce Combine user behaviour data with product performance metrics to generate personalised product recommendations, enhancing the customer shopping experience.

Example

This example contains three types of enrichments strategies.

enricher:
  fields:
    bid_ask_avg:
      by metric family: AskBidMovingAverage
      by key: symbol
      with values: [avg_ask, avg_bid]
      using: MetricsDB

    market_depth_metrics:
      by metric family: marketDepth
      by key: symbol
      all attributes: true
      using: MetricsDB
    
    trading_triggers:
      by metric family: tradingTriggers
      by key: symbol
      as object: true
      using: MetricsDB

Attributes schema

To direct the enricher to use the computed in-memory metrics database two attributes must be set.

AttributeDescriptionData Type

by metric family

Metrics family to query against. This must be defined in the use case

String

using: MetricsDB

Directs the processor to bind to the metrics engine

String

Last updated