Metrics

Like the FactCast server, also Factus makes use of micrometer.io metrics.

Metric namespaces and their organization

At the time of writing, there are three namespaces exposed:

  • factus.timings
  • factus.counts
  • factus.gauges

Depending on your micrometer binding, you may see a slightly different spelling in your data (like ' factus_timings`, if your datasource has a special meaning for the ‘.’-character)

The metrics are automatically tagged with

  • the emitting class (class tag)
  • the name of the metric (name tag)

Existing Metrics

At the time of writing (Factcast version 0.3.13) the following metrics are supported:

Counted

  • transaction_attempts - how often was a transaction retried. See Optimistic Locking for more background
  • transaction_abort - how often was an attempted transaction aborted

Gauged

Timed

  • managed_projection_update_duration - duration in milliseconds a Managed Projection took to update
  • fetch_duration - duration in milliseconds it took to fetch a Snapshot projection
  • find_duration - duration in milliseconds it took to find a specific Aggregate
  • event_processing_latency - for those facts that arrive after catchup: time difference in milliseconds between a fact was published and recieved by a client. (In case of batch processing, this is only reported for the first/oldest fact of a batch)