Requirements
- Node.js v12 or higher
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/alertUsage 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