GitXplorerGitXplorer
d

task-mon

public
26 stars
4 forks
4 issues

Commits

List of commits on branch master.
Unverified
27eecf5ed93639c5cbdf7e978a5b1f919f5f5042

cargo update

ddimo414 committed a year ago
Unverified
2fce73744f9d8852b17c80addd8dc004a22be568

Compile a binary for 64-bit Raspberry Pi's

ddimo414 committed 2 years ago
Unverified
f052b4f97f8fce40150e8d9a6af669f287616e03

Update shield URL

ddimo414 committed 2 years ago
Unverified
1e6ec901db9e3c84da212585d632c114b1cbf21c

Update parameterized_test

ddimo414 committed 2 years ago
Unverified
501879564e16cd63dd29876829fd362ac71b8fc9

Cut v3.0

ddimo414 committed 2 years ago
Unverified
45e9729875e90af7d55f0024fb3e24736eea8bf4

Refactor notify_ functions into methods

ddimo414 committed 2 years ago

README

The README file for this repository.

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...