Packages
prometheus
3.4.1
6.1.3
6.1.2
6.1.1
6.1.0
6.0.3
6.0.2
6.0.1
6.0.0
5.1.1
5.1.0
5.0.0
4.13.0
retired
4.12.0
4.11.0
4.10.0
4.9.1
4.9.0
4.8.2
4.8.1
4.8.0
4.6.0
4.5.0
4.4.1
4.4.0
4.3.0
4.2.2
4.2.0
4.1.0
4.0.1
4.0.0
3.5.1
3.5.0
3.4.6
3.4.5
3.4.4
3.4.3
3.4.2
3.4.1
3.4.0
3.3.2
3.3.1
3.3.0
3.2.3
3.2.2
3.2.1
3.1.1
3.1.0
3.0.1
3.0.0
3.0.0-rc1
3.0.0-alpha9
3.0.0-alpha8
3.0.0-alpha7
3.0.0-alpha6
3.0.0-alpha5
3.0.0-alpha4
3.0.0-alpha3
3.0.0-alpha2
3.0.0-alpha10
3.0.0-alpha1
2.2.0
2.1.0
2.0.0
1.7.0
1.6.0
1.5.0
1.0.2
1.0.1
1.0.0
0.2.0
0.1.3
0.1.2
0.1.1
0.1.0
Prometheus.io client in Erlang
Current section
Files
Jump to
Current section
Files
src/prometheus_instrumenter.erl
%% @hidden
-module(prometheus_instrumenter).
-export([enabled_instrumenters/0,
setup/1]).
-export_type([instrumenter/0]).
%%====================================================================
%% Types
%%====================================================================
-type instrumenter() :: atom().
%%====================================================================
%% Callbacks
%%====================================================================
-callback setup_instrumenter() -> ok.
%%====================================================================
%% Public API
%%====================================================================
-spec enabled_instrumenters() -> [instrumenter()].
enabled_instrumenters() ->
case application:get_env(prometheus, instrumenters) of
undefined -> all_known_instrumenters();
{ok, Instrumenters} -> Instrumenters
end.
-spec setup(Instrumenter) -> Result when
Instrumenter :: instrumenter(),
Result :: ok.
setup(Instrumenter) ->
ok = Instrumenter:setup_instrumenter().
%%====================================================================
%% Private Parts
%%====================================================================
all_known_instrumenters() ->
prometheus_misc:behaviour_modules(prometheus_instrumenter).