0.1.7-alpha.7 • Published 8 months ago

@infinitylist/uptime v0.1.7-alpha.7

Weekly downloads
-
License
MIT
Repository
github
Last release
8 months ago

@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

PARAMETERTYPEOPTIONALDEFAULTDESCRIPTION
intervalnumber3000msInterval for check site
retriesnumber3Retries before create an outage
timeoutnumber3000msMaximum waiting time before creating an outage
headers{ key: string: string } | undefinedundefinedAdditional headers to be attached to requests

Events


up

Emitted when site is online

Parameter : status

PROPERTIESTYPEDESCRIPTION
statusCodenumberThe response status code
statusTextstringThe response status text
urlstringThe url of website
pingnumberThe ping latency (in ms)
UptimenumberAvailability time (in ms)

outage

Emitted when site is have an outage

Parameter : status

PROPERTIESTYPEDESCRIPTION
statusCodenumberThe response status code
statusTextstringThe response status text
urlstringThe url of website
pingnumberThe ping latency (in ms)
unavailabilitynumberUnavailability 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();
  });
};