View Source Trifle.Stats (Trifle.Stats v2.5.0)
Simple timeline analytics for tracking custom metrics.
Trifle.Stats allows you to track time-series data and status information with various storage backends.
Configuration
You can configure Trifle.Stats globally:
# In your config/config.exs or application start
driver = Trifle.Stats.Driver.Process.new()
Trifle.Stats.configure(
driver: driver,
time_zone: "Europe/London",
track_granularities: [:hour, :day, :week],
beginning_of_week: :monday
)
# Then use without passing config to each call
Trifle.Stats.track("page_views", DateTime.utc_now(), %{count: 1})Or pass configuration explicitly to each function call:
config = Trifle.Stats.Configuration.configure(driver)
Trifle.Stats.track("page_views", DateTime.utc_now(), %{count: 1}, config)
Summary
Functions
Assert function to run set stats.
Beam function to send status ping.
Configure Trifle.Stats globally. This is equivalent to calling
Trifle.Stats.Configuration.configure_global/1.
Scan function to retrieve latest status.
Series function to create a Series wrapper from values data.
Track function to run icremental stats.
Values function to retrieve stats.
Functions
Assert function to run set stats.
Examples
iex> Trifle.Stats.assert("test", DateTime.utc_now(), %{duration: 103, count: 1})
{:ok, []}
Beam function to send status ping.
Examples
iex> Trifle.Stats.beam("test", DateTime.utc_now(), %{count: 5})
{:ok, []}
Configure Trifle.Stats globally. This is equivalent to calling
Trifle.Stats.Configuration.configure_global/1.
Examples
driver = Trifle.Stats.Driver.Process.new()
Trifle.Stats.configure(
driver: driver,
time_zone: "UTC",
track_granularities: [:hour, :day, :month]
)
Scan function to retrieve latest status.
Examples
iex> Trifle.Stats.scan("test")
{:ok, %{}}
Series function to create a Series wrapper from values data.
Examples
iex> series_data = %{values: []}
iex> series = Trifle.Stats.series(series_data)
%Trifle.Stats.Series{series: %{values: []}}
Track function to run icremental stats.
Examples
iex> Trifle.Stats.track("test", DateTime.utc_now(), %{duration: 103, count: 1})
{:ok, []}
Values function to retrieve stats.
Examples
iex> Trifle.Stats.values("test", DateTime.utc_now(), DateTime.utc_now(), :day)
%{at: [...], values: [...]}
# Skip empty data points
iex> Trifle.Stats.values("test", from, to, :day, config, skip_blanks: true)
%{at: [...], values: [...]} # Only non-empty entries