@lskjs/bots-plugin-prometheus
v2.85.1
Published
LSK.js plugin for @lskjs/bots module for telegram, slack, discord, whatsapp, twitter, instagram and vk bots creation
Downloads
208
Readme
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
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 Part | Type | Required | Description | | ------ | :------: | :------: | ------ | | cron | Array of String\String | - | Позволяет устанавливать расписания срабатываний экшона | | alerts | String | + | Api-URL, где содержатся все алерты прометеуса | |criteria| Object | - | Критерии срабатывания экшона при обработке определенного алерта | | action | Object | + | Экшоны. Описания действий, которые выполняет бот |
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 Field | Type | Values | Description | | ------ | :------: | ------ | ------ | | state | String | | Состояние алерта | | labels | String | | Тип алерта |
Список действий, которые реализованы в плагине:
- summary - отправка сообщений с информацией об алертах
summary
summary - действие бота, при котором бот отправляет информацию об алерте в заданные чаты. Есть поддержка telegram и slack.
Params:
| Field | Type | Values | Description | | ------ | :------: | :------: | ------ | | type | String | summary | Название действия | | telegram | Array of Number\Array of String\Number\String | | ID чатов, в которые будет отправлено сообщение | | slack | Array of String\String | | URL хуков, в которые будет отправлено сообщение | | parseMode | String | Markdown, MarkdownV2, HTML | Метод парсинга сообщения | | groupBy | String | | Критерий для группировки алертов |
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
- Fork it (https://github.com/yourname/yourproject/fork)
- Create your feature branch (
git checkout -b features/fooBar
) - Commit your changes (
git commit -am 'feat(image): Add some fooBar'
) - Push to the branch (
git push origin feature/fooBar
) - Create a new Pull Request