Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Future of BEAM observability

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on.

Future of BEAM observability

Avatar for Łukasz Niemier

Łukasz Niemier

June 18, 2019
Tweet

More Decks by Łukasz Niemier

Other Decks in Programming

Transcript

  1. Logs • What have happened? • Sent on each action

    (ex. request) • Detailed look into service • Always stored in full form • Structured data
  2. Metrics • Aggregated numeric values • Cheap on the wire

    • „Overall preview” of the platform performance • Sometimes sampled
  3. Traces • Cross-service data • Very heavy on the wire

    • Multiple sources • Often sampled
  4. Lager • For a long time THE Erlang logging solution

    • Heavily rely on Erlang’s parse transformators • Supports all 7 syslog levels • Very configureable • Built in support for log rotation
  5. Elixir’s Logger • Built in into Elixir • gen_event based

    • Textual logs only (with addition of metadata) • Metadata stored as keyword list • Heavily rely on macros • OOtB supports only logging to stdout
  6. logger • Built in into OTP’s kernel application • Tries

    to do as much work as possible within logging process (instead of handler) • Replaces old error_logger module • Supports textual and structured logging (+ metadata)
  7. Metrics • Telemetry • Various aggregators: • OpenCensus • Exometer/Elixometer

    • Folsom • Prometheus • Various implementations of statsd/Influx/graphite/etc. • Propertiary implementations (ex. NewRelic)
  8. Tracing • Black box tracing and debugging in BEAM is

    top of the class • White box tracing is still lacking
  9. BEAM projects • OpenCensus (to be moved to OpenTelemetry) •

    Otter (no updates in 2 years) • Spandex (team joined OpenCensus team) • Propertiary libraries: NewRelic and AppSignal
  10. Members • Tristan Sloughter (OpenCensus) • Vince Foley (New Relic)

    • Łukasz Niemier (OpenCensus) • Ilya Khaprov (prometheus.erl, prometheus.ex, OpenCensus) • Bryan Naegele • Greg Mefford (Spandex) • Arkadiusz Gil (Telemetry) • Zach Daniel (Spandex) • Mark Allen (Lager) • Andrew Thompson (Lager) • Jose Valim
  11. Goals • Improve white box monitoring (when you can see

    the code) • Improve black box monitoring (when you do not have access to code) • Provide common interfaces for publishing metrics and traces from OTP and libraries without vendor lock-in • Cooperation with OAM providers (NewRelic, DataDog, etc.) to provide better integrations with BEAM
  12. Current projects • Migrate OpenCensus to OpenTelemetry • Merge Spandex

    with OpenTelemetry • Release stable version of Telemetry and Telemetry.Metrics • Integrate Elixir’s Logger with Erlang’s logger