Telemetry.Sampler

Allows to periodically collect measurements and dispatch them as Telemetry events.

Sampler provides a convenient API for specifying functions called periodically to dispatch measurements as Telemetry events. It also includes helpers for measuring Erlang virtual machine metrics:

# define custom function dispatching event with value you're interested in
defmodule ExampleApp.Measurements do
  def dispatch_session_count() do
    Telemetry.execute([:example_app, :session_count], ExampleApp.session_count())
  end
end

Telemetry.Sampler.start_link(
  measurements: [
    # include custom measurement
    {ExampleApp.Measurements, :dispatch_session_count, []}
    # include default VM measurements
    | Telemetry.Sampler.vm_measurements()
  ],
  period: 10_000 # configure sampling period
)

See documentation for more concrete examples and usage instructions.

Copyright and License

Copyright (c) 2018, Chris McCord and Erlang Solutions.

Telemetry source code is licensed under the Apache License, Version 2.0.