PushHeartbeatMonitor
A process to periodically send heartbeat to monitoring service
Installation
If available in Hex, the package can be installed
by adding push_heartbeat_monitor to your list of dependencies in mix.exs:
def deps do
[
{:push_heartbeat_monitor, "~> 0.1.0"}
]
endExample Usage
# assuming u have docker and elixir phoenix installed
# start a uptime monitor service or you can choose any compatible public offer
cat <<EOF> /tmp/gatus-config.yml
endpoints:
- name: httpbin
enabled: false
url: https://httpbin.org/get
conditions:
- '[STATUS] == 200'
external-endpoints:
- name: myapp
group: core
token: potato
heartbeat:
interval: 32s
EOF
docker run -p 8880:8080 -v /tmp/gatus-config.yml:/config/config.yaml twinproduction/gatus# add the dependency in your elixir project and
# setup config as such in `config/config.exs`
config :your_app_name, :push_heartbeat, %{
push_url: "http://localhost:8880/api/v1/endpoints/core_myapp/external",
push_method: :post,
push_success_arg: "success=true",
push_failure_arg: "success=false",
push_token: "potato",
push_token_placement: :bearer
}
# and start it sth like this if using a supervisor
children = [{PushHeartbeatMonitor, Application.get_env(:your_app_name, :push_heartbeat)}]
opts = [strategy: :one_for_one, name: MyApp.Supervisor]
Supervisor.start_link(children, opts)Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/push_heartbeat_monitor.