Skip to content

A health check utility for any OTP application

License

Notifications You must be signed in to change notification settings

vizlegal/ex_health

 
 

Repository files navigation

ExHealth ExHealth

Build Status codecov Module Version Hex Docs Total Download License Last Updated

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"
   }
}

Installation

Add :ex_health to your list of dependencies in mix.exs:

def deps do
  [
    {:ex_health, "~> 0.2.0"}
  ]
end

Ensure :ex_health is started alongside your application by adding this to your mix.exs

def application do
  [
    applications: [:ex_health]
  ]
end

Getting Started

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

Integrating with Phoenix

To integrate with Phoenix or any other web framework, you can take advantage of ExHealth.Plug which handles serving a JSON response for you.

See ExHealth.Plug for instructions.

Contributing

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

Copyright and License

Copyright (c) 2018 Herman Singh.

This software is licensed under the MIT license.

About

A health check utility for any OTP application

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Elixir 99.0%
  • Shell 1.0%