plug_checkup alternatives and similar packages
Based on the "Framework Components" category.
Alternatively, view plug_checkup alternatives based on common mentions on social networks and blogs.
-
commanded
Command handling middleware for Command Query Responsibility Segregation (CQRS) applications. -
torch
Torch is a rapid admin generator for Phoenix apps. It uses generators rather than DSLs to ensure that the code remains maintainable. -
cors_plug
An Elixir plug that adds CORS headers to requests and responds to preflight requests (OPTIONS). -
scrivener_html
Helpers built to work with Scrivener's page struct to easily build HTML output for various CSS frameworks. -
phoenix_live_reload
Provides live-reload functionality for Phoenix. -
phoenix_token_auth
Token authentication solution for Phoenix. Useful for APIs or single page apps. -
phoenix_pubsub_redis
The Redis PubSub adapter for the Phoenix framework. -
rummage_phoenix
A support framework for searching, sorting and paginating models in Phoenix, with support HTML support. -
sentinel
An authentication framework for Phoenix extending guardian with routing and other basic functionality. -
plug_rails_cookie_session_store
Rails compatible Plug session store. -
access pass
Authentication framework that can be used with or outside of phoenix. Similar to Addict but geared towards API usage.(Docs). -
phoenix_pubsub_rabbitmq
RabbitMQ adapter for Phoenix's PubSub layer. -
trailing_format_plug
An Elixir plug to support legacy APIs that use a rails-like trailing format. -
scrivener_headers
Helpers for paginating API responses with Scrivener and HTTP headers. -
phoenix_html_simplified_helpers
Some helpers for phoenix html (truncate, time_ago_in_words, number_with_delimiter). -
phoenix_pubsub_postgres
Postgresql PubSub adapter for Phoenix apps. -
phoenix_pubsub_vernemq
The VerneMQ MQTT pubsub adapter for the Phoenix framework.
Get performance insights in less than 4 minutes
Do you think we are missing an alternative of plug_checkup or a related project?
README
PlugCheckup
PlugCheckup provides a Plug for adding simple health checks to your app. The JSON output is similar to the one provided by the MiniCheck Ruby library. It was started to provide solarisBank an easy way of monitoring Plug based applications.
Usage
Add the package to "mix.exs"
defp deps do [ {:plug_checkup, "~> 0.3.0"} ] end
Create your checks
defmodule MyHealthChecks do def check_db do :ok end
def check_redis do :ok end end
- Forward your health path to PlugCheckup in your Plug Router
```elixir
checks = [
%PlugCheckup.Check{name: "DB", module: MyHealthChecks, function: :check_db},
%PlugCheckup.Check{name: "Redis", module: MyHealthChecks, function: :check_redis}
]
forward(
"/health",
to: PlugCheckup,
init_opts: PlugCheckup.Options.new(json_encoder: Jason, checks: checks)
)
If you're working with Phoenix, you need to change the syntax slightly to
accomodate Phoenix.Router.forward/4
:
checks = [
%PlugCheckup.Check{name: "DB", module: MyHealthChecks, function: :check_db},
%PlugCheckup.Check{name: "Redis", module: MyHealthChecks, function: :check_redis}
]
forward("/health", PlugCheckup, PlugCheckup.Options.new(json_encoder: Jason, checks: checks))
The Checks
A check is a function with arity zero, which should return either :ok or {:error, term}. In case the check raises an exception or times out, that will be mapped to an {:error, reason} result.
Response
PlugCheckup should return either 200 or 500 statuses, Content-Type header "application/json", and the body should respect [this](priv/schemas/health_check_response.json) JSON schema
If you configure the error_code
option when initializing the plug, the specified value will be used when an error occurs instead of the 500 status.
Demo
Check [.iex.exs](.iex.exs) for a demo of plug_checkup in a Plug.Router. The demo can be run as following.
git clone https://github.com/ggpasqualino/plug_checkup
cd plug_checkup
mix deps.get
iex -S mix
Open your browse either on http://localhost:4000/selfhealth or http://localhost:4000/dependencyhealth