About
Monika is a command line application for synthetic monitoring. The name Monika stands for "Monitoring Berkala", which means "periodic monitoring" in the Indonesian language.
How to Use
You can find many ways to install Monika and how to start monitoring from the Quick Start page.
Contributing
Monika is a Node.js application written in TypeScript using the oclif framework.
It was developed on node v16 (LTS), and npm v8.
To start developing, clone this repository, then install the dependencies:
git clone [email protected]:hyperjumptech/monika.git
npm run build -w packages/notification
npm ci
Then, to run Monika from the source,
- on Linux/Unix/Mac
npm start
- on Windows
.\bin\run.cmd
To keep the formatting consistent, run the following command to format the source code:
npm run format
Finally you can also run npm run test
to prevent regression.
Once you have made the changes, open a Pull Request and explain the issue your change will fix or the feature your change will add.
For contribution details on how to add custom notifications see the New Notifications guide here.
How to Test Probe Locally
If you need to test a probe locally, there are predefined services in /dev/docker-compose.yaml. You are encouraged to add other services that can be probed by Monika. Run cd dev && docker compose up
to run those services.
Available Services
Use the following Monika config to probe the service.
MariaDB
probes:
- id: mariadb
mariadb:
- host: localhost
port: 3306
username: mariadb_user
password: mariadb_password
database:
MySQL
probes:
- id: mysql
mysql:
- host: localhost
port: 3307
username: mysql_user
password: mysql_password
database:
MongoDB
probes:
- id: mongo
mongo:
- uri: mongodb://mongo_user:mongo_password@localhost:27017
PostgreSQL
Use the following Monika config to probe the service.
probes:
- id: postgres
postgres:
- uri: postgres://postgres_user:postgres_password@localhost:5432/postgres_db
Redis
probes:
- id: redis
redis:
- uri: redis://:redis_password@localhost:6379
Development References
The tools and frameworks we used in this project are listed below:
- 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.
Discussions
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
Further information
For detailed information, you can click on any of the specific docs below:
License
MIT License.