Skip to content

CLI to execute commands and log results to healthchecks.io

License

Notifications You must be signed in to change notification settings

bikramtuladhar/task-mon

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Task Monitoring with Healthchecks.io

github crates.io build status issues license

task-mon is a small binary for notifying Healthchecks.io when a command runs.

This serves a similar purpose to the curl-based patterns described in the Healthchecks documentation but provides more flexibility and ergonomics. Especially for shell scripts and cron jobs, delegating health management to a separate binary allows you to focus on the task at hand.

It supports Healthchecks' advanced optional features such as reporting failures, attaching logs, and monitoring execution time.

Usage

To execute a task and ping Healthchecks.io when it completes simply invoke task-mon with the check's UUID and the command to run:

$ task-mon --uuid 1234-abcd -- some_command --to --monitor
$ task-mon --ping-key abcd1234 --slug foo -- some_command --to --monitor
$ crontab -e
# m h dom mon dow command
  8 6 * * * /usr/local/cargo/bin/task-mon --uuid 1234-abcd -- some_command --to --monitor

task-mon will run the command and ping Healthchecks.io when it completes, reporting the exit status and the last 10K of output from the process.

Customization

$ task-mon --help
task-mon 0.3.0
CLI to execute commands and log results to healthchecks.io

USAGE:
    task-mon [OPTIONS] <--uuid <UUID>|--slug <SLUG>> [--] <COMMAND>...

ARGS:
    <COMMAND>...    The command to run

OPTIONS:
    -k, --uuid <UUID>                Check's UUID to ping
    -s, --slug <SLUG>                Check's slug name to ping, requires also specifying --ping-key
        --ping-key <PING_KEY>        Check's project ping key, required when using --slug [env:
                                     HEALTHCHECKS_PING_KEY=]
    -t, --time                       Ping when the program starts as well as completes
        --head                       POST the first 10k bytes instead of the last
        --ping-only                  Don't POST any output from the command
        --log                        Log the invocation without signalling success or failure; does
                                     not update the check's status
        --detailed                   Include execution details in the information POST-ed (by
                                     default just sends stdout/err
        --env                        Also POSTs the process environment; requires --detailed
        --verbose                    Write debugging details to stderr
        --user-agent <USER_AGENT>    Customize the user-agent string sent to the Healthchecks.io
                                     server
        --base-url <BASE_URL>        Base URL of the Healthchecks.io server to ping [env:
                                     HEALTHCHECKS_BASE_URL=] [default: https://hc-ping.com]
    -h, --help                       Print help information
    -V, --version                    Print version information

Related projects

There are of course a number of similar projects out there, but I was bored and didn't want to use any of them...

About

CLI to execute commands and log results to healthchecks.io

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 100.0%