Declarative DSL for defining metric storage tiers, retention, and rollup schedules.
Example
defmodule MyApp.MetricSchema do
use TimelessMetrics.Schema
raw_retention {7, :days}
tier :hourly,
resolution: :hour,
aggregates: [:avg, :min, :max, :count, :sum, :last],
retention: {30, :days}
tier :daily,
resolution: :day,
aggregates: [:avg, :min, :max, :count, :sum, :last],
retention: {365, :days}
tier :monthly,
resolution: {30, :days},
aggregates: [:avg, :min, :max, :count, :sum],
retention: :forever
endThen pass it to TimelessMetrics:
{TimelessMetrics, name: :metrics, data_dir: "/data", schema: MyApp.MetricSchema}
Summary
Functions
Compute chunk_seconds from an explicit :chunk option or default based on resolution.
Build a default schema when none is provided.
Functions
Compute chunk_seconds from an explicit :chunk option or default based on resolution.
Defaults: hourly (≤3600s) → 24h, daily (≤86400s) → 30d, coarser → 365d.
Build a default schema when none is provided.