2.85.1 • Published 1 year ago

@lskjs/bots-plugin-prometheus v2.85.1

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

LSK.js – bots-plugin-prometheus

@lskjs/bots-plugin-prometheus – LSK.js plugin for @lskjs/bots module for telegram, slack, discord, whatsapp, twitter, instagram and vk bots creation

LSK logo NPM version NPM downloads NPM Dependency count Have TypeScript types Have tree shaking NPM Package size Package size Ask us in Telegram


Table of contents

⌨️ Install

# yarn
yarn i @lskjs/bots-plugin-prometheus bluebird lodash

# npm
npm i @lskjs/bots-plugin-prometheus bluebird lodash

Bots Plugin Prometheus

Bots Plugin Prometheus (@lskjs/bots-plugin-prometheus) - плагин, позволяющий настраивать реакции бота на различные триггеры.

Конфиг плагина находится по пути bots.plugins.prometheus и имеет вид:

bots: {
  plugins: {
    prometheus: {
      projects: [
        //...
      ],
    },
  },
},

Проекты состоят из 4-х частей:

Rule PartTypeRequiredDescription
cronArray of String\String-Позволяет устанавливать расписания срабатываний экшона
alertsString+Api-URL, где содержатся все алерты прометеуса
criteriaObject-Критерии срабатывания экшона при обработке определенного алерта
actionObject+Экшоны. Описания действий, которые выполняет бот

cron

Параметр позволяет устанавливать время срабатывания действия бота. Например, если необходимо установить запрос на апи каждую минуту, то конфиг будет выглядеть cron: '* * * * *'.

Официальный пакет крона: node-cron - npm

criteria

Параметр позволяет устанавливать критерии на триггеры срабатывания бота. Например, если необходимо, чтобы бот реагировал только на горящие сообщения state: 'firing'.

action

Параметр задает действия бота. Здесь настраивается, что бот будет делать с найденным алертом.

action могут быть массивами и содержать параллельные действия.

Examples

bots: {
  plugins: {
    prometheus: {
      projects: [
        {
          cron: '* * * * *',
          alerts: 'ALERTS_URL',
          criteria: {
            state: 'firing',
            labels: {
              severity: 'high',
            },
          },
          action: {
            type: 'summary',
            telegram: [telegram.chat1],
            slack: [slack.chat1],
            parseMode: 'MarkdownV2',
            groupBy: 'labels.severity',
          },
        },
        {
          cron: '* * * * *',
          alerts: 'ALERTS_URL',
          criteria: {
            state: 'firing',
            labels: {
              severity: 'warn',
            },
          },
          action: {
            type: 'summary',
            telegram: [telegram.chat2],
            slack: [slack.chat2],
            parseMode: 'MarkdownV2',
            groupBy: 'labels.severity',
          },
        },
      ],
    },
  },
},

Параметры, используемые при настройке критериев:

Criteria FieldTypeValuesDescription
stateStringСостояние алерта
labelsStringТип алерта

Список действий, которые реализованы в плагине:

  1. summary - отправка сообщений с информацией об алертах

summary

summary - действие бота, при котором бот отправляет информацию об алерте в заданные чаты. Есть поддержка telegram и slack. 

Params:

FieldTypeValuesDescription
typeStringsummaryНазвание действия
telegramArray of Number\Array of String\Number\StringID чатов, в которые будет отправлено сообщение
slackArray of String\StringURL хуков, в которые будет отправлено сообщение
parseModeStringMarkdown, MarkdownV2, HTMLМетод парсинга сообщения
groupByStringКритерий для группировки алертов

Example

bots: {
  plugins: {
    prometheus: {
      projects: [
        {
          cron: '* * * * *',
          alerts: 'ALERTS_URL',
          criteria: {
            state: 'firing',
            labels: {
              severity: 'high',
            },
          },
          action: {
            type: 'summary',
            telegram: [telegram.chat1],
            slack: [slack.chat1],
            parseMode: 'MarkdownV2',
            groupBy: 'labels.severity',
          },
        },
      ],
    },
  },
}

📖 License

This project is licensed under the MIT License - see the LICENSE file for details

👥 Contributors

👏 Contributing

  1. Fork it (https://github.com/yourname/yourproject/fork)
  2. Create your feature branch (git checkout -b features/fooBar)
  3. Commit your changes (git commit -am 'feat(image): Add some fooBar')
  4. Push to the branch (git push origin feature/fooBar)
  5. Create a new Pull Request

📮 Any questions? Always welcome :)

2.85.0

1 year ago

2.85.1

1 year ago

2.84.11

2 years ago

2.76.0

2 years ago

2.74.0

2 years ago

2.72.0

2 years ago

2.70.0

2 years ago

2.73.0

2 years ago

2.75.1

2 years ago

2.69.1

2 years ago

2.64.0

2 years ago

2.64.1

2 years ago

2.66.0

2 years ago

2.66.1

2 years ago

2.65.0

2 years ago

2.65.1

2 years ago

2.67.0

2 years ago

2.63.0

2 years ago

2.57.0

2 years ago

2.59.0

2 years ago

2.60.1

2 years ago

2.62.0

2 years ago

2.56.0

2 years ago

2.52.0

2 years ago

2.61.0

2 years ago

2.46.0

3 years ago

2.43.0

3 years ago

2.34.0

3 years ago

2.38.0

3 years ago

2.36.1

3 years ago

2.41.0

3 years ago

2.39.1

3 years ago

2.39.0

3 years ago

2.35.0

3 years ago

2.37.0

3 years ago

2.42.1

3 years ago

2.42.0

3 years ago

2.42.3

3 years ago

2.42.2

3 years ago

2.40.0

3 years ago

2.33.1

3 years ago

2.33.0

3 years ago

2.29.0

3 years ago

2.30.0

3 years ago

2.28.0

3 years ago

2.27.0

3 years ago

2.26.0

3 years ago

2.25.0

3 years ago

2.24.0

3 years ago

2.23.5

3 years ago

2.23.4

3 years ago

2.23.2

3 years ago

2.23.0

3 years ago

2.22.1

3 years ago

2.19.1

3 years ago

2.17.0

3 years ago

2.18.0

3 years ago

2.21.0

3 years ago

2.16.1

3 years ago

2.15.0

3 years ago

2.12.3

3 years ago

2.13.0

3 years ago

2.11.0

3 years ago

2.12.0

3 years ago

2.10.2

3 years ago

2.9.1

3 years ago

2.9.0

3 years ago

2.6.2

3 years ago

2.8.0

3 years ago

2.8.4

3 years ago

2.7.0

3 years ago

2.6.1

3 years ago

2.5.2

3 years ago

2.6.0

3 years ago

2.5.1

3 years ago

2.7.1

3 years ago

2.5.3

3 years ago

2.5.0

3 years ago

2.3.0-beta.99

3 years ago

2.3.0-beta.94

3 years ago

2.3.0-beta.95

3 years ago

2.3.0-beta.90

3 years ago

2.3.0-beta.92

3 years ago

2.3.0-beta.91

3 years ago

2.3.0-beta.87

3 years ago

2.3.0-beta.86

3 years ago

2.3.0-beta.89

3 years ago

2.3.0-beta.88

3 years ago

2.3.0-beta.82

3 years ago

2.3.0-beta.79

3 years ago

2.3.0-beta.77

3 years ago

2.3.0-beta.75

3 years ago