diff --git a/package-lock.json b/package-lock.json index f54a9b02c20..5ae13c7471d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -48328,6 +48328,7 @@ "eslint": "^7.25.0", "kerberos": "^2.1.1", "mocha": "^10.2.0", + "mongodb-log-writer": "^1.4.2", "nyc": "^15.1.0", "prettier": "^2.7.1", "sinon": "^9.2.3", @@ -80910,6 +80911,7 @@ "mongodb-build-info": "^1.7.2", "mongodb-client-encryption": "~6.0.1", "mongodb-connection-string-url": "^3.0.1", + "mongodb-log-writer": "^1.4.2", "mongodb-ns": "^2.4.2", "nyc": "^15.1.0", "prettier": "^2.7.1", diff --git a/packages/data-service/package.json b/packages/data-service/package.json index bdcbc507bad..ee63f2139b0 100644 --- a/packages/data-service/package.json +++ b/packages/data-service/package.json @@ -78,6 +78,7 @@ "eslint": "^7.25.0", "kerberos": "^2.1.1", "mocha": "^10.2.0", + "mongodb-log-writer": "^1.4.2", "nyc": "^15.1.0", "prettier": "^2.7.1", "sinon": "^9.2.3", diff --git a/packages/data-service/src/connect.spec.ts b/packages/data-service/src/connect.spec.ts index 0243b6cb235..7c739823320 100644 --- a/packages/data-service/src/connect.spec.ts +++ b/packages/data-service/src/connect.spec.ts @@ -7,14 +7,18 @@ import ConnectionStringUrl from 'mongodb-connection-string-url'; import path from 'path'; import os from 'os'; import type { MongoClientOptions } from 'mongodb'; +import { UUID } from 'mongodb'; import connect from './connect'; import type { ConnectionOptions } from './connection-options'; import type DataService from './data-service'; import { redactConnectionOptions } from './redact'; import { runCommand } from './run-command'; +import { MongoLogWriter } from 'mongodb-log-writer'; const IS_CI = process.env.EVERGREEN_BUILD_VARIANT || process.env.CI === 'true'; +const SHOULD_DEBUG = + IS_CI || process.env.DEBUG?.includes('data-service-connect'); const SHOULD_RUN_DOCKER_TESTS = process.env.COMPASS_RUN_DOCKER_TESTS === 'true'; @@ -637,7 +641,12 @@ async function connectAndGetAuthInfo(connectionOptions: ConnectionOptions) { let dataService: DataService | undefined; try { - dataService = await connect({ connectionOptions }); + dataService = await connect({ + connectionOptions, + logger: SHOULD_DEBUG + ? new MongoLogWriter(new UUID().toHexString(), null, process.stderr) + : undefined, + }); const connectionStatus = await runCommand( dataService['_database']('admin', 'META'), { connectionStatus: 1 }