1
- import { Session } from ' ../session.js' ;
2
- import { BaseEvent , type ToolEvent } from ' ./types.js' ;
3
- import pkg from ' ../../package.json' with { type : ' json' } ;
4
- import config from ' ../config.js' ;
5
- import logger from ' ../logger.js' ;
6
- import { mongoLogId } from ' mongodb-log-writer' ;
7
- import { ApiClient } from ' ../common/atlas/apiClient.js' ;
8
- import fs from ' fs/promises' ;
9
- import path from ' path' ;
10
-
11
- const TELEMETRY_ENABLED = config . telemetry !== ' disabled' ;
12
- const CACHE_FILE = path . join ( process . cwd ( ) , ' .telemetry-cache.json' ) ;
1
+ import { Session } from " ../session.js" ;
2
+ import { BaseEvent , type ToolEvent } from " ./types.js" ;
3
+ import pkg from " ../../package.json" with { type : " json" } ;
4
+ import config from " ../config.js" ;
5
+ import logger from " ../logger.js" ;
6
+ import { mongoLogId } from " mongodb-log-writer" ;
7
+ import { ApiClient } from " ../common/atlas/apiClient.js" ;
8
+ import fs from " fs/promises" ;
9
+ import path from " path" ;
10
+
11
+ const TELEMETRY_ENABLED = config . telemetry !== " disabled" ;
12
+ const CACHE_FILE = path . join ( process . cwd ( ) , " .telemetry-cache.json" ) ;
13
13
14
14
interface TelemetryError extends Error {
15
15
code ?: string ;
@@ -63,7 +63,7 @@ export class Telemetry {
63
63
command : string ,
64
64
category : string ,
65
65
startTime : number ,
66
- result : ' success' | ' failure' ,
66
+ result : " success" | " failure" ,
67
67
error ?: Error
68
68
) : Promise < void > {
69
69
if ( ! TELEMETRY_ENABLED ) {
@@ -82,14 +82,14 @@ export class Telemetry {
82
82
command : string ,
83
83
category : string ,
84
84
startTime : number ,
85
- result : ' success' | ' failure' ,
85
+ result : " success" | " failure" ,
86
86
error ?: Error
87
87
) : ToolEvent {
88
88
const duration = Date . now ( ) - startTime ;
89
89
90
90
const event : ToolEvent = {
91
91
timestamp : new Date ( ) . toISOString ( ) ,
92
- source : ' mdbmcp' ,
92
+ source : " mdbmcp" ,
93
93
properties : {
94
94
...this . commonProperties ,
95
95
command,
@@ -99,9 +99,9 @@ export class Telemetry {
99
99
result,
100
100
...( error && {
101
101
error_type : error . name ,
102
- error_code : error . message
103
- } )
104
- }
102
+ error_code : error . message ,
103
+ } ) ,
104
+ } ,
105
105
} ;
106
106
107
107
return event ;
@@ -127,11 +127,7 @@ export class Telemetry {
127
127
return ;
128
128
}
129
129
130
- logger . warning (
131
- mongoLogId ( 1_000_000 ) ,
132
- "telemetry" ,
133
- `Error sending event to client: ${ result . error } `
134
- ) ;
130
+ logger . warning ( mongoLogId ( 1_000_000 ) , "telemetry" , `Error sending event to client: ${ result . error } ` ) ;
135
131
await this . cacheEvents ( allEvents ) ;
136
132
}
137
133
@@ -145,7 +141,7 @@ export class Telemetry {
145
141
} catch ( error ) {
146
142
return {
147
143
success : false ,
148
- error : error instanceof Error ? error : new Error ( String ( error ) )
144
+ error : error instanceof Error ? error : new Error ( String ( error ) ) ,
149
145
} ;
150
146
}
151
147
}
@@ -156,11 +152,11 @@ export class Telemetry {
156
152
*/
157
153
private async readCache ( ) : Promise < BaseEvent [ ] > {
158
154
try {
159
- const data = await fs . readFile ( CACHE_FILE , ' utf-8' ) ;
155
+ const data = await fs . readFile ( CACHE_FILE , " utf-8" ) ;
160
156
return JSON . parse ( data ) as BaseEvent [ ] ;
161
157
} catch ( error ) {
162
158
const typedError = error as TelemetryError ;
163
- if ( typedError . code !== ' ENOENT' ) {
159
+ if ( typedError . code !== " ENOENT" ) {
164
160
logger . warning (
165
161
mongoLogId ( 1_000_000 ) ,
166
162
"telemetry" ,
@@ -177,11 +173,7 @@ export class Telemetry {
177
173
private async cacheEvents ( events : BaseEvent [ ] ) : Promise < void > {
178
174
try {
179
175
await fs . writeFile ( CACHE_FILE , JSON . stringify ( events , null , 2 ) ) ;
180
- logger . debug (
181
- mongoLogId ( 1_000_000 ) ,
182
- "telemetry" ,
183
- `Cached ${ events . length } events for later sending`
184
- ) ;
176
+ logger . debug ( mongoLogId ( 1_000_000 ) , "telemetry" , `Cached ${ events . length } events for later sending` ) ;
185
177
} catch ( error ) {
186
178
logger . warning (
187
179
mongoLogId ( 1_000_000 ) ,
@@ -199,7 +191,7 @@ export class Telemetry {
199
191
await fs . unlink ( CACHE_FILE ) ;
200
192
} catch ( error ) {
201
193
const typedError = error as TelemetryError ;
202
- if ( typedError . code !== ' ENOENT' ) {
194
+ if ( typedError . code !== " ENOENT" ) {
203
195
logger . warning (
204
196
mongoLogId ( 1_000_000 ) ,
205
197
"telemetry" ,
0 commit comments