A health check utility for any OTP application
ExHealth runs a supervised GenServer that performs routine health checks which are configurable to your application. Check out ExHealth.Plug for integrating the result into a web endpoint which yields a JSON response like:
{
last_check:"2018-09-18T06:43:53.773719Z",
result:{
check_results:[
[
"Database",
"ok"
],
[
"PhoenixExampleWeb_Endpoint",
"ok"
]
],
msg:"healthy"
}
}
Add ex_health
to your list of dependencies in mix.exs
:
def deps do
[
{:ex_health, "~> 0.1.1"}
]
end
Ensure ex_health is started alongside your application by adding this to your mix.exs
def application do
[applications: [:ex_health]]
end
Configuration for ExHealth must be present the Application environment. This
can be done by updating the :ex_health
values in your config/config.exs
:
config :ex_health,
module: MyApplication.HealthChecks,
interval_ms: 1000 # Interval between checks in milliseconds
Then you must define a module MyApplication.HealthChecks
with some checks:
defmodule MyApplication.HealthChecks do
process_check(MyApplication.CacheServer)
test "Redis" do
MyRedis.ping() # This should return :ok | {:error, "Message"}
end
end
Please see the documentation for ExHealth at https://hexdocs.pm/ex_health
You can generate documentation by running the following:
$ mix docs
You can find examples in examples/
Pull requests are welcome. The best way to get started is to check out CONTRIBUTING.
Once you have the repo cloned, just run
$ mix deps.get
and then you can start ExHealth with CLI:
$ iex -S mix
See LICENSE for more information.
by Herman Singh