Skip to content

SlimIO/Alert

Repository files navigation

Alert

version Maintenance MIT dep size Known Vulnerabilities Build Status

Requirements

Getting Started

This package is available in the Node Package Repository and can be easily installed with npm or yarn.

$ npm i @slimio/alert
# or
$ yarn add @slimio/alert

Usage example

A simple addon that will throw an alarm every second...

import Addon from "@slimio/addon";
import alert from "@slimio/alert";
import metrics from "@slimio/metrics";

const test = new Addon("test");
const { Entity } = metrics(test);
const { Alarm } = alert(test);

const ALARM_INTERVAL = 1_000;
const MY_ENTITY = new Entity("MyEntity", {
    description: "Hello world!"
});

test.registerInterval(() => {
    new Alarm("hello world!", {
        correlateKey: "test_alarm",
        entity: MY_ENTITY
    });
}, ALARM_INTERVAL);

export default test;

API

The alert package return a function described by the following interface:

declare function Alert(addon: Addon): {
    Alarm: typeof Alarm;
};

Each instance of Alarm are unique to the local Addon.

Alarm

This section describe the methods and properties of Alarm Object.

constructor(message: string, options: Alert.ConstructorOptions)

Create a new Alarm Object.

new Alarm("hello world alarm", {
    correlateKey: "test_alarm"
});

Available options are described the following interface:

interface ConstructorOptions {
    severity?: SlimIO.AlarmSeverity;
    entity?: Metrics.Entity | string | number;
    correlateKey: string;
}
toJSON(): SlimIO.RawAlarm

Return a raw alarm. Refer to @slimio/tsd for more information.

Properties

declare class Alarm extends events {
    public cid: SlimIO.CID;
    public severity: number;
    public entity: Metrics.Entity | number;
    public message: string;
    public correlateKey: string;

    static DefaultSeverity: number;
    static Severity: SlimIO.AlarmSeverity;
}

Severity is defined in @slimio/tsd as follow:

enum AlarmSeverity {
    Critical,
    Major,
    Minor
}

The default severity is defined as 1 for Major.

Dependencies

Name Refactoring Security Risk Usage
@slimio/is Minor Low Type checker
@slimio/safe-emitter ⚠️Major Medium Safe emitter
@slimio/timemap ⚠️Major Low Time map
@slimio/utils Minor High Bunch of useful functions

License

MIT

About

SlimIO Addon Alarms utilities

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published