View Source Beeline.HealthChecker.Logger (Beeline v1.1.5)

A Task to attach a logger exporter for health-checker telemetry

Attaches a telemetry handler which writes out how far a producer is behind the head of the stream to the logger.

This task can be started in a supervision tree such as an app's application supervision tree:

def start(_type, _args) do
  children = [
    Beeline.HealthChecker.Logger,
    MyApp.MyBeelineTopology
  ]
  opts = [strategy: :one_for_one, name: MyApp.Supervisor]
  Supervisor.start_link(children, opts)
end

The log messages are 'debug' level in a format of the producer name concatenated with "is up-to-date." if the producer's current stream position matches the latest available stream position (within acceptable_behind_by).

When producer is falling behind and falling behind more then in a previous check, it is logged in warn level with "is behind: n events." and "is behind more: n events" with n being the number of events producer is behind head of stream.

Once producer is behind the stream less then in a previous check and when it catches up with it, it is logged in info level as is behind but catching up: n events and is caught up. respectively.

The log messages also include metadata fields :event_listener - the name of the producer - and delta: the number of events by which the producer is behind.

Link to this section Summary

Functions

Returns a specification to start this module under a supervisor.

Link to this section Functions

Returns a specification to start this module under a supervisor.

arg is passed as the argument to Task.start_link/1 in the :start field of the spec.

For more information, see the Supervisor module, the Supervisor.child_spec/2 function and the Supervisor.child_spec/0 type.