JSONRPC2.Telemetry (jsonrpc2_spec v0.2.0)

Copy Markdown

Telemetry integration.

Every function takes the event NAMESPACE as its first argument — the atom an emitted event name begins with, as in [namespace, event, :start].

It is an argument rather than a constant because a :telemetry handler subscribes to an event NAME and to nothing else. Two services emitting the same name cannot be told apart by a handler, whatever it inspects, because both events are delivered to every handler attached to that name. A host running more than one service therefore has to be able to give each service its own namespace, or it cannot report on them separately — only on all of them at once, with a guess about which is which.

A caller that needs no separation passes :jsonrpc2 and gets the names this library has always emitted.

Summary

Functions

exception(namespace, event, start_time, kind, reason, stack, meta \\ %{}, extra_measurements \\ %{})

span(namespace, event, start_metadata, fun)

start(namespace, event, meta \\ %{}, extra_measurements \\ %{})

stop(namespace, event, start_time, meta \\ %{}, extra_measurements \\ %{})