mirror of
https://github.com/n8n-io/n8n.git
synced 2024-12-24 04:04:06 -08:00
⚡ Add debug log in healthcheck and enable DB logging via environment (#2744)
* ⚡ add debug log in healthcheck * ⚡ add DB logging * CR
This commit is contained in:
parent
b487d4f392
commit
135d5a89cd
|
@ -22,6 +22,26 @@ const config = convict({
|
||||||
default: '',
|
default: '',
|
||||||
env: 'DB_TABLE_PREFIX',
|
env: 'DB_TABLE_PREFIX',
|
||||||
},
|
},
|
||||||
|
logging: {
|
||||||
|
enabled: {
|
||||||
|
doc: 'Typeorm logging enabled flag.',
|
||||||
|
format: 'Boolean',
|
||||||
|
default: false,
|
||||||
|
env: 'DB_LOGGING_ENABLED',
|
||||||
|
},
|
||||||
|
options: {
|
||||||
|
doc: 'Logging level options, default is "error". Possible values: query,error,schema,warn,info,log. To enable all logging, specify "all"',
|
||||||
|
format: String,
|
||||||
|
default: 'error',
|
||||||
|
env: 'DB_LOGGING_OPTIONS',
|
||||||
|
},
|
||||||
|
maxQueryExecutionTime: {
|
||||||
|
doc: 'Maximum number of milliseconds query should be executed before logger logs a warning. Set 0 to disable long running query warning',
|
||||||
|
format: Number,
|
||||||
|
default: 1000,
|
||||||
|
env: 'DB_LOGGING_MAX_EXECUTION_TIME',
|
||||||
|
},
|
||||||
|
},
|
||||||
postgresdb: {
|
postgresdb: {
|
||||||
database: {
|
database: {
|
||||||
doc: 'PostgresDB Database',
|
doc: 'PostgresDB Database',
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
/* eslint-disable no-case-declarations */
|
/* eslint-disable no-case-declarations */
|
||||||
/* eslint-disable @typescript-eslint/naming-convention */
|
/* eslint-disable @typescript-eslint/naming-convention */
|
||||||
import { UserSettings } from 'n8n-core';
|
import { UserSettings } from 'n8n-core';
|
||||||
import { ConnectionOptions, createConnection, getRepository } from 'typeorm';
|
import { ConnectionOptions, createConnection, getRepository, LoggerOptions } from 'typeorm';
|
||||||
import { TlsOptions } from 'tls';
|
import { TlsOptions } from 'tls';
|
||||||
import * as path from 'path';
|
import * as path from 'path';
|
||||||
// eslint-disable-next-line import/no-cycle
|
// eslint-disable-next-line import/no-cycle
|
||||||
|
@ -104,10 +104,29 @@ export async function init(): Promise<IDatabaseCollections> {
|
||||||
throw new Error(`The database "${dbType}" is currently not supported!`);
|
throw new Error(`The database "${dbType}" is currently not supported!`);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let loggingOption: LoggerOptions = (await GenericHelpers.getConfigValue(
|
||||||
|
'database.logging.enabled',
|
||||||
|
)) as boolean;
|
||||||
|
|
||||||
|
if (loggingOption) {
|
||||||
|
const optionsString = (
|
||||||
|
(await GenericHelpers.getConfigValue('database.logging.options')) as string
|
||||||
|
).replace(/\s+/g, '');
|
||||||
|
|
||||||
|
if (optionsString === 'all') {
|
||||||
|
loggingOption = optionsString;
|
||||||
|
} else {
|
||||||
|
loggingOption = optionsString.split(',') as LoggerOptions;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Object.assign(connectionOptions, {
|
Object.assign(connectionOptions, {
|
||||||
entities: Object.values(entities),
|
entities: Object.values(entities),
|
||||||
synchronize: false,
|
synchronize: false,
|
||||||
logging: false,
|
logging: loggingOption,
|
||||||
|
maxQueryExecutionTime: (await GenericHelpers.getConfigValue(
|
||||||
|
'database.logging.maxQueryExecutionTime',
|
||||||
|
)) as string,
|
||||||
});
|
});
|
||||||
|
|
||||||
let connection = await createConnection(connectionOptions);
|
let connection = await createConnection(connectionOptions);
|
||||||
|
|
|
@ -615,6 +615,8 @@ class App {
|
||||||
|
|
||||||
// Does very basic health check
|
// Does very basic health check
|
||||||
this.app.get('/healthz', async (req: express.Request, res: express.Response) => {
|
this.app.get('/healthz', async (req: express.Request, res: express.Response) => {
|
||||||
|
LoggerProxy.debug('Health check started!');
|
||||||
|
|
||||||
const connection = getConnectionManager().get();
|
const connection = getConnectionManager().get();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
@ -635,6 +637,8 @@ class App {
|
||||||
status: 'ok',
|
status: 'ok',
|
||||||
};
|
};
|
||||||
|
|
||||||
|
LoggerProxy.debug('Health check completed successfully!');
|
||||||
|
|
||||||
ResponseHelper.sendSuccessResponse(res, responseData, true, 200);
|
ResponseHelper.sendSuccessResponse(res, responseData, true, 200);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue