snglpi/src/data/glpiDataBase.js
Rafael Lopes cc17d957c7 PERF: Reduz verbosidade de logs em nivel info no ciclo do cron
Rebaixa para debug uma serie de logs "heartbeat" que disparavam todo ciclo
(a cada 1 minuto) independente de qualquer mudanca real, competindo com os
logs de acao/erro que realmente importam: buscas por watermark, contagem
de tickets pendentes/monitorados, checagens de comentario ja sincronizado,
abertura de conexao GLPI/PostgreSQL, e o resumo de sincronizacao do SN
(que a margem de seguranca de 6h do watermark sempre retorna nao-vazio,
mesmo sem mudanca real de campo).

Corrige tambem um bug real encontrado em teste: no fluxo GLPI -> SN, todo
comentario historico de um ticket era sanitizado e checado contra a API do
SN a cada ciclo antes mesmo de verificar se ja tinha sido sincronizado
(ticket_updates.destiny_id). Em tickets com historico longo isso
significava dezenas de chamadas desnecessarias por minuto. Agora a
checagem local (barata) roda primeiro, e so sanitiza/consulta o SN quando
o comentario realmente ainda nao foi sincronizado.

Corrige tambem o log de configuracao do pool PostgreSQL, que imprimia
"[object Object]" por passar o objeto de config como mensagem em vez de
metadado.

LOG_LEVEL default muda de debug para info em .env.example e
.env.production, unica forma do rebaixamento acima ter efeito pratico.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-10 16:00:29 -03:00

28 lines
825 B
JavaScript

// src/data/glpiDatabase.js
// Configuração da conexão com o banco de dados mariaDB do GLPI
const mysql = require('mysql2/promise');
const { logError, logDebug } = require('../utils/logger');
const glpiPool = mysql.createPool({
host: process.env.GLPI_DB_HOST,
port: process.env.GLPI_DB_PORT,
database: process.env.GLPI_DB_NAME,
user: process.env.GLPI_DB_USER,
password: process.env.GLPI_DB_PASSWORD,
waitForConnections: true,
connectionLimit: 10,
queueLimit: 0,
// Fecha conexões ociosas após 60 segundos, evitando o erro ECONNRESET.
idleTimeout: 60000
});
// Testar conexão
glpiPool.on('connection', (connection) => {
logDebug('Nova conexão GLPI estabelecida');
});
glpiPool.on('error', (err) => {
logError('Erro na pool GLPI:', err);
});
module.exports = glpiPool;