• Stars
    star
    597
  • Rank 74,979 (Top 2 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created over 3 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Monika is a command line application to monitor every part of your web app using a simple YAML configuration file. Get alert not only when your site is down but also when it's slow.

Build Status codecov npm-version npm Docker

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:

Monika - Open source and free HTTP monitoring tool | Product Hunt

License

MIT License.

More Repositories

1

grule-rule-engine

Rule engine implementation in Golang
Go
2,189
star
2

beda

Beda is a golang library for detecting how similar a two string
Go
53
star
3

react-native-confetti

React Native component to show confetti
TypeScript
47
star
4

universal-update-checker

React component to check if there is a new version of a mobile app
JavaScript
31
star
5

retter

RETTER is a simple server that provides circuit breaking for Web Applications. By using a CircuitBreaker in your web solution, you make your solution tobe more fault-tolerant, reliable and resilient toward heavy load.
Go
25
star
6

symon

Synthetic Monitoring made Easy
TypeScript
15
star
7

jiffy

A very useful Golang library used for working with describing time.Duration.
Go
14
star
8

hansip

Another simplified AAA server
Go
13
star
9

js-urai

Reformat minified JavaScript code
JavaScript
13
star
10

acccore

Core accounting engine made in Golang. Using ACCCORE, you can create your application internal virtual money, points, etc.
Go
12
star
11

firebase-cronjob

Cronjob building block for Firebase
JavaScript
11
star
12

whatsapp-business-sender

Node.js library for sending message through Whatsapp Business API
TypeScript
10
star
13

hypertrace-ios-sdk

OpenTrace iOS SDK
Swift
6
star
14

xcs-translator

XCS-Translator is a web app to convert EXCEL file (.xls) to JSON and SQL so that you can quickly and easily import data in your sheets into your database.
TypeScript
6
star
15

httptarget

HttpTarget is a very simple, small and lightweight HTTP server that would be helpful for http client development tool. Simply start the server and it'll be ready to accept incoming http requests. It can easily simulate heavy server side load by implementing random delay range, or simulate any kind of http response code.
Go
6
star
16

monika-config-generator

A web app to generate configuration file for Monika
TypeScript
5
star
17

bookkeeping

Bookkeeping implements the acccore double entry bookkeeping library to be used as a wallet or loyalty applications where proper accouting is important.
HTML
4
star
18

whatsapp-chatbot-connector

TypeScript
4
star
19

favicon-fetcher

A utility to fetch a website's favicon
TypeScript
3
star
20

branch-preview

Preview your latest branch changes in a subdomain.
Shell
3
star
21

is-this-repo-legit

JavaScript
3
star
22

export-github-clones-views

A CLI to export the stats of clones and views of repositories
TypeScript
3
star
23

procheck

A project convention checker (GitHub Actions)
TypeScript
3
star
24

hypertrace-android-sdk

Kotlin implementation of OpenTrace by Hyperjump
Kotlin
2
star
25

hansip-web

TypeScript
2
star
26

pranoto.ai

video transcription PoC
TypeScript
2
star
27

hyper-mux

A very simplified Mux focused for ease of use.
Go
2
star
28

hyper-interactive

Small Golang Library to enable command line application interactive input
Go
2
star
29

ztorage

A type-safe wrapper for key-value storage in JavaScript
TypeScript
2
star
30

db-connection-checker

TypeScript
1
star
31

hypertrace

Hyperjump's implementation of BlueTrace.io specification.
Go
1
star
32

hypertrace-ios-sdk-sample

Swift
1
star
33

react-next-pathname

Instantly tracks the next pathname on link click
TypeScript
1
star