Default Telemetry.Metrics recipe for SRE teams.
This module is conditionally compiled — it is only available when the
optional :telemetry_metrics dependency is present.
Host apps wire this into their own metrics supervisor:
defmodule MyApp.Telemetry do
use Supervisor
import Telemetry.Metrics
def init(_arg) do
children = [
{TelemetryMetricsPrometheus, [metrics: metrics()]}
]
Supervisor.init(children, strategy: :one_for_one)
end
defp metrics do
[
counter("my_app.request.count")
# ... host metrics ...
] ++ Accrue.Telemetry.Metrics.defaults()
end
endDistributions and percentile summaries beyond the defaults below are host-choice — Accrue does not prescribe binning strategies.
Cardinality discipline
Tags on the default counters are restricted to low-cardinality fields
(:status, :source, :type, :stripe_status). Customer ID,
subscription ID, and other unbounded identifiers are NEVER promoted to
metric tags — those belong on spans, not metrics.
Summary
Functions
Returns the default Accrue metric definitions.
Functions
@spec defaults() :: [struct()]
Returns the default Accrue metric definitions.
Append to your host metric list. See module doc for full host wiring example.