Packages
prom_ex
1.11.0
1.12.0
1.11.0
1.10.0
1.9.0
1.8.0
1.7.1
1.7.0
retired
1.6.0
1.5.0
1.4.1
1.4.0
1.3.0
1.2.2
1.2.1
1.2.0
1.1.1
1.1.0
1.0.1
1.0.0
0.1.15-beta
0.1.14-beta
0.1.13-beta
0.1.12-beta
0.1.11-alpha
0.1.10-alpha
0.1.9-alpha
0.1.8-alpha
0.1.7-alpha
0.1.6-alpha
0.1.5-alpha
0.1.4-alpha
0.1.3-alpha
0.1.2-alpha
0.1.1-alpha
0.1.0-alpha
Prometheus metrics and Grafana dashboards for all of your favorite Elixir libraries
Current section
Files
Jump to
Current section
Files
lib/prom_ex/storage.ex
defmodule PromEx.Storage do
@moduledoc """
Storage definition behaviour.
"""
@doc """
Gather metrics for given collector with given `name`.
"""
@callback scrape(name :: atom()) :: iodata() | :prom_ex_down
@doc """
Define child specs for gatherer process.
"""
@callback child_spec(atom(), list(Telemetry.Metrics.t())) :: Supervisor.child_spec()
@doc """
Extract the metrics out of the configured store.
"""
@spec scrape(mod :: module(), name :: module()) :: iodata() | :prom_ex_down
def scrape(mod, name) do
mod.scrape(name)
end
@doc """
Generate the process child spec for the store.
"""
@spec child_spec(mod :: module(), name :: module(), metrics :: list(Telemetry.Metrics.t())) :: Supervisor.child_spec()
def child_spec(mod, name, metrics) do
mod.child_spec(name, metrics)
end
end