Forráskód Böngészése

fix: identifying services in workers

Karol Sójko 1 éve
szülő
commit
eab78b3a95

+ 6 - 1
packages/auth/src/Bootstrap/Container.ts

@@ -190,6 +190,7 @@ import {
   ControllerContainer,
   ControllerContainerInterface,
   MapperInterface,
+  ServiceIdentifier,
   SharedVaultUser,
 } from '@standardnotes/domain-core'
 import { SessionTracePersistenceMapper } from '../Mapping/SessionTracePersistenceMapper'
@@ -1237,7 +1238,11 @@ export class ContainerConfigLoader {
         .bind<DomainEventMessageHandlerInterface>(TYPES.Auth_DomainEventMessageHandler)
         .toConstantValue(
           isConfiguredForAWSProduction
-            ? new SQSXRayEventMessageHandler(eventHandlers, container.get(TYPES.Auth_Logger))
+            ? new SQSXRayEventMessageHandler(
+                ServiceIdentifier.NAMES.AuthWorker,
+                eventHandlers,
+                container.get(TYPES.Auth_Logger),
+              )
             : new SQSEventMessageHandler(eventHandlers, container.get(TYPES.Auth_Logger)),
         )
 

+ 4 - 0
packages/domain-core/src/Domain/Service/ServiceIdentifier.ts

@@ -6,9 +6,13 @@ export class ServiceIdentifier extends ValueObject<ServiceIdentifierProps> {
   static readonly NAMES = {
     ApiGateway: 'ApiGateway',
     Auth: 'Auth',
+    AuthWorker: 'AuthWorker',
     SyncingServer: 'SyncingServer',
+    SyncingServerWorker: 'SyncingServerWorker',
     Revisions: 'Revisions',
+    RevisionsWorker: 'RevisionsWorker',
     Files: 'Files',
+    FilesWorker: 'FilesWorker',
   }
 
   get value(): string {

+ 3 - 2
packages/domain-events-infra/src/Infra/SQS/SQSXRayEventMessageHandler.ts

@@ -10,6 +10,7 @@ import {
 
 export class SQSXRayEventMessageHandler implements DomainEventMessageHandlerInterface {
   constructor(
+    private serviceName: string,
     private handlers: Map<string, DomainEventHandlerInterface>,
     private logger: Logger,
   ) {}
@@ -32,14 +33,14 @@ export class SQSXRayEventMessageHandler implements DomainEventMessageHandlerInte
 
     this.logger.debug(`Received event: ${domainEvent.type}`)
 
-    const xRaySegment = new Segment(domainEvent.type)
+    const xRaySegment = new Segment(this.serviceName)
 
     if (domainEvent.meta.correlation.userIdentifierType === 'uuid') {
       xRaySegment.setUser(domainEvent.meta.correlation.userIdentifier)
     }
 
     await captureAsyncFunc(
-      `${handler.constructor.name}.handle`,
+      domainEvent.type,
       async (subsegment?: Subsegment) => {
         await handler.handle(domainEvent)
 

+ 11 - 2
packages/revisions/src/Bootstrap/Container.ts

@@ -1,4 +1,9 @@
-import { ControllerContainer, ControllerContainerInterface, MapperInterface } from '@standardnotes/domain-core'
+import {
+  ControllerContainer,
+  ControllerContainerInterface,
+  MapperInterface,
+  ServiceIdentifier,
+} from '@standardnotes/domain-core'
 import Redis from 'ioredis'
 import { Container, interfaces } from 'inversify'
 import { MongoRepository, Repository } from 'typeorm'
@@ -525,7 +530,11 @@ export class ContainerConfigLoader {
         .bind<DomainEventMessageHandlerInterface>(TYPES.Revisions_DomainEventMessageHandler)
         .toConstantValue(
           env.get('NEW_RELIC_ENABLED', true) === 'true'
-            ? new SQSXRayEventMessageHandler(eventHandlers, container.get(TYPES.Revisions_Logger))
+            ? new SQSXRayEventMessageHandler(
+                ServiceIdentifier.NAMES.RevisionsWorker,
+                eventHandlers,
+                container.get(TYPES.Revisions_Logger),
+              )
             : new SQSEventMessageHandler(eventHandlers, container.get(TYPES.Revisions_Logger)),
         )