@@ -3,7 +3,8 @@ import { join } from 'path';
33import { open , Database , RootDatabase } from 'lmdb' ;
44import { LoggerFactory } from '../telemetry/LoggerFactory' ;
55import { ScopedTelemetry } from '../telemetry/ScopedTelemetry' ;
6- import { Measure , Telemetry } from '../telemetry/TelemetryDecorator' ;
6+ import { Telemetry } from '../telemetry/TelemetryDecorator' ;
7+ import { TelemetryService } from '../telemetry/TelemetryService' ;
78import { pathToArtifact } from '../utils/ArtifactsDir' ;
89import { extractErrorMessage } from '../utils/Errors' ;
910import { DataStore , DataStoreFactory } from './DataStore' ;
@@ -12,15 +13,23 @@ import { encryptionStrategy } from './lmdb/Utils';
1213const log = LoggerFactory . getLogger ( 'LMDB' ) ;
1314
1415export class LMDBStore implements DataStore {
15- constructor ( private readonly store : Database < unknown , string > ) { }
16+ private readonly telemetry : ScopedTelemetry ;
17+
18+ constructor (
19+ private readonly name : string ,
20+ private readonly store : Database < unknown , string > ,
21+ ) {
22+ this . telemetry = TelemetryService . instance . get ( `LMDB.${ name } ` ) ;
23+ }
1624
1725 get < T > ( key : string ) : T | undefined {
1826 return this . store . get ( key ) as T | undefined ;
1927 }
2028
21- @Measure ( { name : 'put' } )
2229 put < T > ( key : string , value : T ) : Promise < boolean > {
23- return this . store . put ( key , value ) ;
30+ return this . telemetry . measureAsync ( 'put' , ( ) => {
31+ return this . store . put ( key , value ) ;
32+ } ) ;
2433 }
2534
2635 remove ( key : string ) : Promise < boolean > {
@@ -41,7 +50,7 @@ export class LMDBStore implements DataStore {
4150}
4251
4352export class LMDBStoreFactory implements DataStoreFactory {
44- @Telemetry ( ) private readonly telemetry ! : ScopedTelemetry ;
53+ @Telemetry ( { scope : 'LMDB.Global' } ) private readonly telemetry ! : ScopedTelemetry ;
4554
4655 private readonly rootDir = pathToArtifact ( 'lmdb' ) ;
4756 private readonly storePath = join ( this . rootDir , Version ) ;
@@ -82,7 +91,7 @@ export class LMDBStoreFactory implements DataStoreFactory {
8291 if ( database === undefined ) {
8392 throw new Error ( `Failed to open LMDB store ${ store } ` ) ;
8493 }
85- val = new LMDBStore ( database ) ;
94+ val = new LMDBStore ( store , database ) ;
8695 this . stores . set ( store , val ) ;
8796 }
8897
0 commit comments