View Source Beeline.HealthChecker.Logger (Beeline v1.1.6)
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.
Summary
Functions
Returns a specification to start this module under a supervisor.
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.