Skip to content

Schibsted-Tech-Polska/heroin-js-librato

Repository files navigation

HeroIn plugin for Librato

Build Status

Adding addon to HeroIn

var configurator = heroin(process.env.HEROKU_API_TOKEN);
configurator.addPlugin(require('heroin-js-librato').plugin);
var test = {
    name: 'my-heroku-app',
    addons: {
        librato: {plan: 'librato:nickel', alerts: require('./alerts') },
    }
};

Inside alerts.js

var alerts = [{
    name: 'myapp.status5xx.high',
    description: null,
    conditions: [{
        type: 'above',
        metric_name: 'router.status.5xx',
        source: null,
        threshold: 40,
        duration: 600,
        summary_function: 'sum'
    }],
    services: [{
        type: 'slack',
        settings: {url: 'https://hooks.slack.com/services/xyz'},
        title: 'my-chat:#myapp-alerts'
    }],
    attributes: null,
    active: true,
    version: 2,
    rearm_seconds: 1800,
    rearm_per_signal: false
}];
module.exports = alerts;

Notes

Only paid librato account allows for alert configuration.

If you leave out alerts key in the addon config it won't delete existing alerts.

var test = {
    name: 'my-heroku-app',
    addons: {
        librato: { plan: 'librato:nickel' },
    }
};

If you set alerts to empty array it will delete existing alerts.

var test = {
    name: 'my-heroku-app',
    addons: {
        librato: { plan: 'librato:nickel', alerts: [] },
    }
};

Alerts format matches librato API https://www.librato.com/docs/api/#alerts and https://www.librato.com/docs/api/#services.

You don't need to deal with service IDs as this plugin handles them on your behalf. All you need to do is specify notification service settings.