Yet another monitoring tool that collects results and then alert on failures except... this one was specifically designed to watch external service providers. It helps answer the question of "is our API down, or is AWS/Cloudfare/Heroku down?", when outages occurred.
Otto is good at:
- Watch status page
- Read and parse Atom or RSS feed
- AWS, Cloudflare, GitHub, Heroku and many more
- Test URL liveness
- Check response code from an API or a web page
- Periodic execution
- Execute shell script on schedule and evaluate exit code
Otto is equipped with Probe plugins:
Alert plugins:
And http://0.0.0.0:9999/metrics
endpoint for promethues.
Plugins are configurable, and can be reloaded by kill -SIGHUP $(pidof otto)
.
Copy simple.toml
from examples
folder, and rename it to otto.toml
.
cp examples/simple.toml otto.toml
Open otto.toml
with an editor. In alerts.slack
, replace the fake url with an actual webhook url copied from Slack.
If you have rust installed on your computer, run otto locally with make run
, it needs rustc
and cargo
, or run it
with make docker
, if your machine has docker installed.
Download from releases:
MacOS with Intel CPU
: useotto-x86_64-apple-darwin-{version}.zip
Linux with x86_64 CPU
: useotto-x86_64-unknown-linux-gnu-{version}.tar.gz
Raspberry Pi
: useotto-armv7-unknown-linux-gnueabihf-{version}.tar.gz
Extract the package with unzip
or tar
, navigate into the extracted directory, you should see otto
's binary file,
this README and an examples
subdirectory.
Run otto
from there, or copy it into your PATH
(eg. /usr/local/bin
). For config file, use examples/simple.toml
or examples/fancy.toml
as template. Read more about config here.