51 lines
1.5 KiB
JavaScript
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') |