An open API service indexing awesome lists of open source software.

https://github.com/prth/alertpanda

🐼 A simple utility to send Slack alerts for application monitoring.
https://github.com/prth/alertpanda

alert monitoring node-module nodejs npm-package slack

Last synced: about 1 year ago
JSON representation

🐼 A simple utility to send Slack alerts for application monitoring.

Awesome Lists containing this project

README

          

# alertpanda

[![build status](https://img.shields.io/travis/prth/alertpanda/master.svg?style=flat-square)](https://travis-ci.org/prth/alertpanda)
[![code coverage](https://img.shields.io/coveralls/prth/alertpanda.svg?style=flat-square)](https://coveralls.io/r/prth/alertpanda)
[![npm version](https://img.shields.io/npm/v/alertpanda.svg?style=flat-square)](https://www.npmjs.org/package/alertpanda)

> a very alert panda alerting humans and bots

A simple utility to send Slack alerts for application monitoring.

## Install

```bash
npm install --save alertpanda
```

## Requirements

- node.js `>=8.9.0`

## Usage

```js
const alertpanda = require('alertpanda');

alertpanda.info('The force is strong with this one.');
alertpanda.error('And...here...we...go...', new Error('Introduce a little anarchy...'));
```

## API

### .info(message[, description, fields])

Send info message

### .error(message[, description, fields, error])

Send error message

### fields

```js
{
fields = [
{
name: '',
value: ''
}
]
}
```

To add context, and breadcrumbs to describe the message

## Config

Add `.alertpandarc` file to your application directory. Supports a JSON or YAML, JS configuration file.

| Prop | Type | Description | Default
| -------------- | ------------- | ------------- | ------------- |
| project | string | Name of the project | `name` property value from package.json |
| slackWebhook | string | **Required.** Slack webhook URL |
| tools | Array | Array of tools with name and link, for example Kibana, Newrelic; for adding context to error alerts | []
| tools[].name | string | **Required.** Name of the tool |
| tools[].link | string | **Required.** URL of the tool |

### Sample Config

```js
{
project: 'mystery',
slackWebhook: 'https://hooks.slack.com/.....',
tools: [
{ name: 'Kibana', link: 'https://...' },
{ name: 'Newrelic', link: 'https://...' }
]
}
```

### Config using environment variable

Use `.alertpandarc.js` JS config file, to set configs from environment variables

```js

module.exports = {
project: process.env.APP_NAME,
slackWebhook: process.env.SLACK_WEBHOOK
}
```

## Examples

### Error message

```js
const error = new Error('Something went wrong in batch to send birthday emails :(');
const fields = [
{
name: 'Batch Id',
value: '9415a1af-f263-44aa-a9a5-90c65a3213ae'
},
{
name: 'Email template Id',
value: 'a97e6ea8-9fb2-4aaa-88f0-3dade2bbfa0f'
},
{
name: 'Size',
value: '200',
},
{
name: 'Worker started at',
value: '2020-04-05T15:15:11.620Z',
}
]

alertpanda.error('Failure in sending emails', fields, error);
```

### Info message

```js
const fields = [
{
name: 'Batch Id',
value: '9415a1af-f263-44aa-a9a5-90c65a3213ae'
},
{
name: 'Started At',
value: '2020-04-05T15:15:11.620Z',
},
{
name: 'Time taken',
value: '200s',
},
{
name: 'Emails sent',
value: '450',
},
]

alertpanda.info('Batch job completed to send reminder emails for renewal', fields);
```