aboutsummaryrefslogtreecommitdiff
path: root/apps/dreki_web/src/dreki_web_app.erl
diff options
context:
space:
mode:
Diffstat (limited to 'apps/dreki_web/src/dreki_web_app.erl')
-rw-r--r--apps/dreki_web/src/dreki_web_app.erl12
1 files changed, 9 insertions, 3 deletions
diff --git a/apps/dreki_web/src/dreki_web_app.erl b/apps/dreki_web/src/dreki_web_app.erl
index 5b6454e..5b3c1a0 100644
--- a/apps/dreki_web/src/dreki_web_app.erl
+++ b/apps/dreki_web/src/dreki_web_app.erl
@@ -13,8 +13,12 @@ start(_StartType, _StartArgs) ->
Config = application:get_all_env(dreki_web),
Transport = proplists:get_value(transport, Config),
CowboyEnv = #{
- middlewares => [dreki_web_auth, cowboy_router, cowboy_handler],
- stream_handlers => [cowboy_telemetry_h, cowboy_stream_h],
+ middlewares => [dreki_web_auth, cowboy_router, dreki_web_handler],
+ stream_handlers => [cowboy_telemetry_h,
+ cowboy_access_log_h,
+ cowboy_metrics_h,
+ cowboy_stream_h],
+ metrics_callback => fun prometheus_cowboy2_instrumenter:observe/1,
env => #{
dispatch => routes()
}
@@ -35,7 +39,8 @@ routes() ->
Trails = [
{"/", dreki_web_index, undefined},
{"/static/[...]", cowboy_static,
- {priv_dir, dreki_web, "static", [{mimetypes, dreki_web, detect_web_mimetype}]}},
+ {priv_dir, dreki_web, "static", [{mimetypes, dreki_web, detect_web_mimetype}]}},
+ {"/metrics/[:registry]", prometheus_cowboy2_handler, []},
%% API
{"/api/tasks/:id", dreki_web_task, undefined},
@@ -59,6 +64,7 @@ routes() ->
{"/admin/:location/:namespace/:directory", dreki_web_ui_stores, undefined},
{"/admin/:location/:namespace/:directory/_/:action", dreki_web_ui_stores, action},
{"/admin/:location/:namespace/:directory/:id", dreki_web_ui_stores, undefined},
+ {"/admin/:location/:namespace/:directory/:id/_/:action", dreki_web_ui_stores, action},
{"/admin/[...]", dreki_web_ui_error, #{code => 404, status => <<"Not found">>}},