Anvil.Telemetry.Metrics (Anvil v0.1.1)

View Source

TelemetryMetrics definitions for Anvil.

Defines counters, distributions, and summaries for monitoring labeling operations. Compatible with TelemetryMetricsStatsd, Prometheus, and other exporters.

Metric Categories

  • Counters: Total counts (queues created, labels submitted, assignments)
  • Distributions: Latency histograms (assignment dispatch, agreement compute)
  • Summaries: Percentiles (agreement scores)
  • Last Values: Current state (export progress, queue depth)

Usage

In your application supervisor:

children = [
  # Other children...
  {TelemetryMetricsStatsd, metrics: Anvil.Telemetry.Metrics.metrics(), port: 8125}
]

Or with Prometheus:

children = [
  {TelemetryMetricsPrometheus, metrics: Anvil.Telemetry.Metrics.metrics()}
]

Summary

Functions

Returns core metrics for basic monitoring (subset of all metrics).

Extracts metadata tags from telemetry metadata map.

Returns all metric definitions for Anvil.

Functions

core_metrics()

@spec core_metrics() :: [Telemetry.Metrics.t()]

Returns core metrics for basic monitoring (subset of all metrics).

Use this for minimal overhead monitoring or when cardinality is a concern.

extract_tags(metadata)

@spec extract_tags(map()) :: map()

Extracts metadata tags from telemetry metadata map.

Filters to only include known tag keys to prevent cardinality explosion.

metrics()

@spec metrics() :: [Telemetry.Metrics.t()]

Returns all metric definitions for Anvil.