Skip to content

Commit

Permalink
expose metrics as rest resource
Browse files Browse the repository at this point in the history
  • Loading branch information
marianoguerra committed Oct 30, 2015
1 parent 8fb792b commit de3dde8
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 2 deletions.
3 changes: 2 additions & 1 deletion apps/tanodb/src/tanodb_app.erl
Expand Up @@ -29,7 +29,8 @@ stop(_State) ->

routes() ->
[
{"/ping", tanodb_http_ping, []}
{"/ping", tanodb_http_ping, []},
{"/metrics", tanodb_http_metrics, []}
].

init_http() ->
Expand Down
35 changes: 35 additions & 0 deletions apps/tanodb/src/tanodb_http_metrics.erl
@@ -0,0 +1,35 @@
-module(tanodb_http_metrics).

-export([init/3, terminate/3]).

-ignore_xref([init/3, terminate/3]).

-export([rest_init/2,
rest_terminate/2,
allowed_methods/2,
content_types_provided/2,
to_json/2]).

-ignore_xref([rest_init/2,
rest_terminate/2,
allowed_methods/2,
content_types_provided/2,
to_json/2]).

-record(state, {}).

init(_, _Req, _Opts) -> {upgrade, protocol, cowboy_rest}.
rest_init(Req, _Opts) -> {ok, Req, #state{}}.

allowed_methods(Req, State) -> {[<<"GET">>], Req, State}.

content_types_provided(Req, State) ->
{[{{<<"application">>, <<"json">>, '*'}, to_json}], Req, State}.

to_json(Req, State) ->
Metrics = tanodb_metrics:all(),
Response = tanodb_json:encode(Metrics),
{Response, Req, State}.

rest_terminate(_Req, _State) -> ok.
terminate(_Reason, _Req, _State) -> ok.
2 changes: 1 addition & 1 deletion apps/tanodb/src/tanodb_metrics.erl
Expand Up @@ -3,7 +3,7 @@

-export([core_ping/0]).

-define(ENDPOINTS, [<<"ping">>]).
-define(ENDPOINTS, [<<"ping">>, <<"metrics">>]).
-define(METRIC_CORE_PING, [tanodb, core, ping]).

all() ->
Expand Down

0 comments on commit de3dde8

Please sign in to comment.