CampFirePlay/index.js
Degradin d07ade36a3 Metrics
Added metrics for grafana
2025-01-29 12:51:33 +03:00

51 lines
1.5 KiB
JavaScript

require('dotenv').config();
const sequelize = require('./db'); // Подключение базы данных
const { register, Counter } = require('prom-client'); // Подключаем библиотеку для мониторинга
// Создаём метрики
const messagesCounter = new Counter({
name: 'bot_messages_total',
help: 'Total number of messages received by the bot',
labelNames: ['type'],
});
const errorsCounter = new Counter({
name: 'bot_errors_total',
help: 'Total number of errors occurred in the bot',
});
// Настраиваем глобальные переменные (опционально)
global.path = require('path');
global.config = require('./config'); // Конфигурация
global.database = sequelize; // База данных
global.utils = require('./utils');
global.messagesCounter = messagesCounter
global.errorsCounter = errorsCounter
////Metrics
const express = require('express');
const app = express();
// Эндпоинт для метрик
app.get('/metrics', async (req, res) => {
try {
res.set('Content-Type', register.contentType);
res.end(await register.metrics());
} catch (err) {
res.status(500).end(err.message);
}
});
// Запускаем HTTP-сервер на порту 3000
app.listen(3003, () => {
console.log('Metrics server is running on http://localhost:3003/metrics');
});
////
// Инициализация бота
require('./bot')