From b057d3be0de1de61c4a83e3b1d8c247df6240475 Mon Sep 17 00:00:00 2001 From: Hazelnoot Date: Fri, 30 May 2025 08:10:46 -0400 Subject: add slowQueryThreshold setting to configure slow query warning --- packages/backend/src/postgres.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'packages/backend/src/postgres.ts') diff --git a/packages/backend/src/postgres.ts b/packages/backend/src/postgres.ts index 34fca6dd92..eed60dd499 100644 --- a/packages/backend/src/postgres.ts +++ b/packages/backend/src/postgres.ts @@ -321,7 +321,7 @@ export function createPostgresDataSource(config: Config) { printReplicationMode: !!config.dbReplications, }) : undefined, - maxQueryExecutionTime: 300, + maxQueryExecutionTime: config.db.slowQueryThreshold, entities: entities, migrations: ['../../migration/*.js'], }); -- cgit v1.2.3-freya From 04160af3ae807e37be65f361ad6e5012a5813820 Mon Sep 17 00:00:00 2001 From: Hazelnoot Date: Fri, 30 May 2025 08:17:28 -0400 Subject: fix TypeORM logging to native console instead of NestJS logger --- packages/backend/src/postgres.ts | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'packages/backend/src/postgres.ts') diff --git a/packages/backend/src/postgres.ts b/packages/backend/src/postgres.ts index eed60dd499..eef11d1ed8 100644 --- a/packages/backend/src/postgres.ts +++ b/packages/backend/src/postgres.ts @@ -101,6 +101,7 @@ const sqlLogger = dbLogger.createSubLogger('sql', 'gray'); export type LoggerProps = { disableQueryTruncation?: boolean; + enableQueryLogging?: boolean; enableQueryParamLogging?: boolean; printReplicationMode?: boolean, }; @@ -150,6 +151,8 @@ class MyCustomLogger implements Logger { @bindThis public logQuery(query: string, parameters?: any[], queryRunner?: QueryRunner) { + if (!this.props.enableQueryLogging) return; + const prefix = (this.props.printReplicationMode && queryRunner) ? `[${queryRunner.getReplicationMode()}] ` : undefined; @@ -314,13 +317,12 @@ export function createPostgresDataSource(config: Config) { }, } : false, logging: log, - logger: log - ? new MyCustomLogger({ - disableQueryTruncation: config.logging?.sql?.disableQueryTruncation, - enableQueryParamLogging: config.logging?.sql?.enableQueryParamLogging, - printReplicationMode: !!config.dbReplications, - }) - : undefined, + logger: new MyCustomLogger({ + disableQueryTruncation: config.logging?.sql?.disableQueryTruncation, + enableQueryLogging: log, + enableQueryParamLogging: config.logging?.sql?.enableQueryParamLogging, + printReplicationMode: !!config.dbReplications, + }), maxQueryExecutionTime: config.db.slowQueryThreshold, entities: entities, migrations: ['../../migration/*.js'], -- cgit v1.2.3-freya From 8e660d2aaf75d30a16ef3bf185e930c4b0895ce0 Mon Sep 17 00:00:00 2001 From: Hazelnoot Date: Fri, 30 May 2025 10:19:32 -0400 Subject: don't highlight queries in production --- packages/backend/src/postgres.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'packages/backend/src/postgres.ts') diff --git a/packages/backend/src/postgres.ts b/packages/backend/src/postgres.ts index eef11d1ed8..6a3b60db95 100644 --- a/packages/backend/src/postgres.ts +++ b/packages/backend/src/postgres.ts @@ -137,7 +137,7 @@ class MyCustomLogger implements Logger { modded = truncateSql(modded); } - return highlightSql(modded); + return this.props.enableQueryLogging ? highlightSql(modded) : modded; } @bindThis -- cgit v1.2.3-freya From 3fecde29b5d8c8c38ea740ec27586f598b36fbe2 Mon Sep 17 00:00:00 2001 From: Hazelnoot Date: Fri, 30 May 2025 10:25:01 -0400 Subject: fix TypeORM logger implementation --- packages/backend/src/postgres.ts | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'packages/backend/src/postgres.ts') diff --git a/packages/backend/src/postgres.ts b/packages/backend/src/postgres.ts index 6a3b60db95..cc7dd75b56 100644 --- a/packages/backend/src/postgres.ts +++ b/packages/backend/src/postgres.ts @@ -164,7 +164,8 @@ class MyCustomLogger implements Logger { const prefix = (this.props.printReplicationMode && queryRunner) ? `[${queryRunner.getReplicationMode()}] ` : undefined; - sqlLogger.error(this.transformQueryLog(query, { prefix }), this.transformParameters(parameters)); + const transformed = this.transformQueryLog(query, { prefix }); + sqlLogger.error(`Query error (${error}): ${transformed}`, this.transformParameters(parameters)); } @bindThis @@ -172,7 +173,8 @@ class MyCustomLogger implements Logger { const prefix = (this.props.printReplicationMode && queryRunner) ? `[${queryRunner.getReplicationMode()}] ` : undefined; - sqlLogger.warn(this.transformQueryLog(query, { prefix }), this.transformParameters(parameters)); + const transformed = this.transformQueryLog(query, { prefix }); + sqlLogger.warn(`Query is slow (${time}ms): ${transformed}`, this.transformParameters(parameters)); } @bindThis @@ -181,8 +183,17 @@ class MyCustomLogger implements Logger { } @bindThis - public log(message: string) { - sqlLogger.info(message); + public log(level: 'log' | 'info' | 'warn', message: string) { + switch (level) { + case 'log': + case 'info': { + sqlLogger.info(message); + break; + } + case 'warn': { + sqlLogger.warn(message); + } + } } @bindThis -- cgit v1.2.3-freya From dd1969c800dbe9b7e0af13c36a3bab252d4f460b Mon Sep 17 00:00:00 2001 From: Hazelnoot Date: Fri, 30 May 2025 10:29:36 -0400 Subject: suppress messages from TypeORM migration and schema loading in production --- packages/backend/src/postgres.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'packages/backend/src/postgres.ts') diff --git a/packages/backend/src/postgres.ts b/packages/backend/src/postgres.ts index cc7dd75b56..851cc6c87c 100644 --- a/packages/backend/src/postgres.ts +++ b/packages/backend/src/postgres.ts @@ -98,6 +98,8 @@ pg.types.setTypeParser(20, Number); export const dbLogger = new MisskeyLogger('db'); const sqlLogger = dbLogger.createSubLogger('sql', 'gray'); +const sqlMigrateLogger = sqlLogger.createSubLogger('migrate'); +const sqlSchemaLogger = sqlLogger.createSubLogger('schema'); export type LoggerProps = { disableQueryTruncation?: boolean; @@ -179,7 +181,7 @@ class MyCustomLogger implements Logger { @bindThis public logSchemaBuild(message: string) { - sqlLogger.info(message); + sqlSchemaLogger.debug(message); } @bindThis @@ -198,7 +200,7 @@ class MyCustomLogger implements Logger { @bindThis public logMigration(message: string) { - sqlLogger.info(message); + sqlMigrateLogger.debug(message); } } -- cgit v1.2.3-freya From 4637d4eb3fdae145395f29cbb97a90e161377ecd Mon Sep 17 00:00:00 2001 From: Hazelnoot Date: Fri, 30 May 2025 10:31:33 -0400 Subject: clarify query truncation message --- packages/backend/src/postgres.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'packages/backend/src/postgres.ts') diff --git a/packages/backend/src/postgres.ts b/packages/backend/src/postgres.ts index 851cc6c87c..b4bd934972 100644 --- a/packages/backend/src/postgres.ts +++ b/packages/backend/src/postgres.ts @@ -115,7 +115,7 @@ function highlightSql(sql: string) { } function truncateSql(sql: string) { - return sql.length > 100 ? `${sql.substring(0, 100)}...` : sql; + return sql.length > 100 ? `${sql.substring(0, 100)} [truncated]` : sql; } function stringifyParameter(param: any) { -- cgit v1.2.3-freya