simple healthchecker with several notification transports
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Norwin b6a48f93f1
http-status: close connections when done.
3 years ago
cmd add discord notifier 3 years ago
core http-status: close connections when done. 3 years ago
utils rebrand osem_notify -> statusmon 3 years ago
vendor go mod vendor && go mod tidy 3 years ago
.gitignore rebrand osem_notify -> statusmon 3 years ago
Makefile add make publish 3 years ago
README.md add discord notifier 3 years ago
go.mod go mod vendor && go mod tidy 3 years ago
go.sum go mod vendor && go mod tidy 3 years ago
main.go add makefile 3 years ago
stale-notif-concept.md work more on stale check notifications 3 years ago

README.md

statusmon

just another HTTP healthchecker with XMPP, email, slack notification transports. I wrote this as I simply did not find a tool for this that isn't completely over- or under-engineered. Deploy as a static selfcontained binary, configure via yaml.

build

Assuming you have golang installed, run

make build STATIC=true

or

CGO_ENABLED=0 GOOS=linux go build -a -ldflags '-extldflags "-static"' .

use

Run healthchecks and send notifications for your webservices

Usage:
  statusmon [flags]
  statusmon [command]

Available Commands:
  check       One-off run all or specific healthchecks
  debug       Run some debugging checks on statusmon itself
  help        Help about any command
  watch       Continously run all or specific healthchecks

Flags:
  -c, --config string      path to config file (default $HOME/.statusmon.yml)
  -d, --debug              enable verbose logging
  -h, --help               help for statusmon
  -l, --logformat string   log format, can be plain or json (default "plain")
      --no-cache           send all notifications, ignoring results from previous runs. also don't update the cache.
  -n, --notify string      If set, will send out notifications for the specified type of check result,
                           otherwise results are printed to stdout only.
                           Allowed values are "all", "error", "ok".
                           You might want to run 'statusmon debug notifications' first to verify everything works.

                           Notifications for failing checks are sent only once, and then cached until the issue got
                           resolved, unless --no-cache is set.
                           To clear the cache, run 'statusmon debug cache --clear'.

Additional help topics:
  statusmon config How to configure statusmon

Use "statusmon [command] --help" for more information about a command.

configure

The tool works out of the box for basic functionality, but must be configured to set up notifications. Configuration can be done via a YAML file located at ~/.statusmon.yml or through environment variables. Run statusmon help config for details and an example configuration.

available healthchecks

type description
http-status Alert when a http get request yields a statuscode higher than expected

available notification transports

transport options
email recipients: list of email addresses
slack recipients: list of webhook URLs
discord recipients: list of webhook URLs
xmpp recipients: list of JIDs

Want more? add it!

contribute

Contributions are welcome! Check out the following locations for plugging in new functionality:

Before committing and submitting a pull request, please run go fmt ./ cmd/ core/.

license

GPL-3.0 Norwin Roosen