Instrumentation

Metrics

At the core of our monitoring solution is a metric backend abstraction. This metrics abstraction is an extensible Java library designed to provide common metrics implementations such as gauges, counters, timers and histograms. The centerpiece of the abstraction framework is the metrics registry. The metrics registry acts as a container where the identification of all metrics occur and their values stored.

Events

Our events backend is very similar to our metrics in that there is an events abstraction. We support the following events:

  • Unhandled messages
  • Dead letter messages
  • Mailbox size limit
  • Stash size limit
  • Mailbox time limit
  • Processing time limit
  • Actor failure
  • Log error and warning

Associated with the event, we capture relevant information such as the ActorRef for the actor in which the event occurred, the ActorRef of the sender and the message. In the case of a failure or warning, we capture the ActorRef for the actor in which the event occurred and the failure or warning.