View Source Existence.Plug (Existence v0.1.1)
Plug responding with a health-check state.
Plug sends a text/plain response depending on the Existence overall health-check state
returned by an Existence.get_state/1 function.
Configuration
Plug is configured with a keyword list.
Plug response http status code and body are configurable with the following keys:
ok_status- response status code for the healthy state. Default:200.ok_body- response body for the healthy state. Default:"OK".error_status- response status code for the unhealthy state. Default:503.error_body- response body for the unhealthy state. Default:"Service Unavailable".
Additionally Existence instance can be selected with a :name key.
If :name key is not set, Plug will use a default instance: name: Existence.
Setting instance name is described in the Existence module documentation.
Usage
Example module use with a Plug.Router.get/3 inside / route scope with a custom unhealthy
state response:
defmodule MyAppWeb.Router do
use MyAppWeb, :router
#...
scope "/", MyAppWeb do
pipe_through(:browser)
get(
"/healthcheck",
Existence.Plug,
[error_status: 500, error_body: "Internal Server Error"],
alias: false
)
end
end
Notice alias: false use to disable scoping on an external Existence.Plug in get/3 function.
Code example above will produce following http responses:
- healthy state:
$> curl -i http://127.0.0.1:4000/healthcheck HTTP/1.1 200 OK ... OK - unhealthy state:
$> curl -i http://127.0.0.1:4000/healthcheck HTTP/1.1 500 Internal Server Error ... Internal Server Error