@infinitylist/uptime
v0.1.7-alpha.7
Published
Simple method for monitoring your website status
Downloads
5
Readme
@infinitylist/uptime
Simple module that allows you to easily monitor websites, and create a status page.
Getting started
Installation
With npm:
npm install @infinitylist/uptime
With yarn:
yarn install @infinitylist/uptime
Usage
Import the module:
CommonJS Syntax:
const { UptimeClient } = require('@infinitylist/uptime');
Module ES Syntax:
import { UptimeClient } from '@infinitylist/uptime';
Create a new client
This requires whatever url you want to monitor
const Monitor = new UptimeClient('https://google.com', options)
Options
Object
| PARAMETER | TYPE | OPTIONAL | DEFAULT | DESCRIPTION | | --------- | -------------------------------------- | -------- | --------- | ---------------------------------------------- | | interval | number | ✓ | 3000ms | Interval for check site | | retries | number | ✓ | 3 | Retries before create an outage | | timeout | number | ✓ | 3000ms | Maximum waiting time before creating an outage | | headers | { [key: string]: string } | undefined | ✓ | undefined | Additional headers to be attached to requests |
Events
up
Emitted when site is online
Parameter : status
| PROPERTIES | TYPE | DESCRIPTION | | ---------- | ------ | ------------------------- | | statusCode | number | The response status code | | statusText | string | The response status text | | url | string | The url of website | | ping | number | The ping latency (in ms) | | Uptime | number | Availability time (in ms) |
outage
Emitted when site is have an outage
Parameter : status
| PROPERTIES | TYPE | DESCRIPTION | | -------------- | ------ | --------------------------- | | statusCode | number | The response status code | | statusText | string | The response status text | | url | string | The url of website | | ping | number | The ping latency (in ms) | | unavailability | number | Unavailability time (in ms) |
error
Emitted when an error occurred
Parameter : error
Properties
available
Return true if site is available else return false
Return :
Boolean
ping
Return the last ping (in ms) or null if it doesn't exist
Return :
Number or Null
uptime
Return the uptime (in ms) or null if it doesn't exist
Return :
Number or Null
unavailability
Return the unavailability or null if it doesn't exist
Return :
Number or Null
Methods
start()
Start the monitoring of website
Return :
Boolean
Monitor._start();
restart()
Restart the monitoring of website
Return :
Boolean
Monitor._restart();
stop()
Stop the monitoring of website
Return :
Boolean
Monitor._stop();
setInterval(newInterval)
Change the interval check
Params :
newInterval : The new interval in ms (number)
Return :
Boolean
Monitor._setInterval(200);
setURL(newURL)
Change the ping endpoint
Params :
newURL : The new url (string).
Return :
Boolean
Monitor._setURL("https://www.exempla-website.com");
Example Monitor Function
const { UptimeClient } = require("@infinitylist/uptime");
module.exports.startMonitor = async ({ client }) => {
const uptime = new UptimeClient("https://www.exempla-website.com", {
interval: 20000,
retries: 3,
});
uptime._start();
uptime.on("up", async (up) => {
console.log(up);
});
uptime.on("outage", async (outage) => {
console.log(`${outage.statusCode} | ${outage.statusText}`)
});
uptime.on("error", async (error) => {
await console.error(error);
await uptime._setInterval(0);
return uptime._stop();
});
};