Beeline.HealthChecker (Beeline v0.1.0) View Source

A GenServer which periodically polls a producer's stream positions and process

This GenServer emits :telemetry measurements which serve as an interface for exporting this health-check information to an external monitoring service.

Telemetry

  • [:beeline, :health_check, :stop] - dispatched by each HealthChecker process after polling the producer's position and process information
    • Measurement: %{duration: native_time} - the time taken to perform the position and process checks
    • Metadata, a map with the following keys:
      • :producer (module) - the producer module being measured
      • :alive? (boolean) - whether the producer process is alive
      • :stream_name (string) - the EventStoreDB stream name from which the producer reads
      • :hostname (string) - the hostname of the machine on which the health checker process is being run
      • :interval (integer) - the milliseconds the health checker process has waited (minus drift) since the last poll
      • :drift (integer) - the milliseconds used for drifting the interval for the last poll
      • :measurement_time (UTC datetime) - the time when the poll started
      • :prior_position (integer) - the :current_position from the last poll
      • :current_position (integer) - the current stream position of the producer
      • :head_position (integer) - the stream position of the head (the latest event) of the EventStoreDB stream