Velocity
A simple Agent-based Elixir library for registering events and reporting event occurrence count for the given time period.
Installation
Add Velocity to mix.exs:
defp deps do
[{:velocity, ">= 0.1.0"}]
end
Run mix deps.get to fetch the package.
Usage
Start Velocity:
Velocity.start_link(ttl: 5 * 60, default_period: :minute)Parameters can be omitted. Default values are:
[
ttl: 300,
default_period: 60
]
Note that all parameters are in seconds. For default_period values and in calls to Velocity.of(), the :second, :minute, :half_hour and :hour shorthands can also be used
Register some events:
Velocity.register(:foo)
Velocity.register(:bar)
Velocity.register(:foo)
Velocity.register({:some, "event", [%{metadata: 42}]})Get event count for the default period in the past:
Velocity.of(:foo)
#=> {:ok, 2}Get event count for the last 60 seconds:
Velocity.of(:bar, 60)
#=> {:ok, 1}The same using a shorthand:
Velocity.of(:bar, :minute)
#=> {:ok, 1}License
MIT License