Monika is a command line application for synthetic monitoring. The name Monika stands for "Monitoring Berkala", which means "periodic monitoring" in the Indonesian language.
Install from the npm package manager (you need to install Node.js first)
npm i -g @hyperjumptech/monika
You can also use Monika
from source. Clone this repository then install the dependencies.
git clone git@github.com:hyperjumptech/monika.git
npm ci
To start monitoring URLs, you need to create a configuration file (JSON file). The configuration file contains the probes, alerts, and notification configurations. You can check the sample configuration file in config.example.json or from our docs.
When you have created the configuration file, you can run monika
as follows
monika -c <path_to_your_configuration.json>
Options and parameters can be seen by running monika -h
. Or if you cloned this repository, you need to run bin/run -h
.
Monika operates by reading everything from the config file. From the configurations it will build and send the http requests. After each requests it sends any alerts if needed using the configured notifications (smtp, mailgun, sendgrid, webhook).
For more information, please refer to the detailed documentations below.
Topic | Description |
---|---|
Probes | How requests are set up and dispatched |
Alerts | How alerts are triggered and how to setup an alert |
Notifcations | Receive notifications when alerts are triggered |
Obtain a copy of your configuration file config.json
into the current directory.
From the same directoy, you can run:
docker run --name monika -v ${PWD}/config.json:/config/config.json --detach hyperjump/monika:latest
Once your monika server is up, you can see its log using
docker logs monika
Or you can stop the container with
docker stop monika
If you need help, want to give feedback, or have a great idea to improve Monika, get involved! Let us know in the Github discussions.
Please abide by the Contributor's Code of Conduct
This project is a Node.js application written in TypeScript. The tools we use in this project are as follows.
- oclif to scaffold the CLI.
- Prettier to format the code.
- ESLint to statically analyze the code to quickly find problems.
- Mocha for testing.
- Istanbul for code coverage.
MIT License.