瀏覽代碼

fix(syncing-server): elevate otel sdk before the container starts

Karol Sójko 1 年之前
父節點
當前提交
3e4a1e9645

+ 6 - 8
packages/syncing-server/bin/server.ts

@@ -11,12 +11,16 @@ import helmet from 'helmet'
 import * as cors from 'cors'
 import { urlencoded, json, Request, Response, NextFunction } from 'express'
 import * as winston from 'winston'
-
+import { OpenTelemetrySDK } from '@standardnotes/domain-events-infra'
+import { ServiceIdentifier } from '@standardnotes/domain-core'
 import { InversifyExpressServer } from 'inversify-express-utils'
+
 import TYPES from '../src/Bootstrap/Types'
 import { Env } from '../src/Bootstrap/Env'
 import { ContainerConfigLoader } from '../src/Bootstrap/Container'
-import { OpenTelemetrySDKInterface } from '@standardnotes/domain-events-infra'
+
+const sdk = new OpenTelemetrySDK(ServiceIdentifier.NAMES.SyncingServer)
+sdk.start()
 
 const container = new ContainerConfigLoader()
 void container.load().then((container) => {
@@ -74,12 +78,6 @@ void container.load().then((container) => {
 
   const serverInstance = server.build()
 
-  if (!container.get<boolean>(TYPES.Sync_IS_CONFIGURED_FOR_HOME_SERVER_OR_SELF_HOSTING)) {
-    logger.info('Starting OpenTelemetry SDK...')
-    const openTelemetrySDK = container.get<OpenTelemetrySDKInterface>(TYPES.Sync_OpenTelemetrySDK)
-    openTelemetrySDK.start()
-  }
-
   serverInstance.listen(env.get('PORT'))
 
   logger.info(`Server started on port ${process.env.PORT}`)

+ 5 - 7
packages/syncing-server/bin/worker.ts

@@ -6,7 +6,11 @@ import TYPES from '../src/Bootstrap/Types'
 import { Env } from '../src/Bootstrap/Env'
 import { DomainEventSubscriberFactoryInterface } from '@standardnotes/domain-events'
 import { ContainerConfigLoader } from '../src/Bootstrap/Container'
-import { OpenTelemetrySDKInterface } from '@standardnotes/domain-events-infra'
+import { OpenTelemetrySDK } from '@standardnotes/domain-events-infra'
+import { ServiceIdentifier } from '@standardnotes/domain-core'
+
+const sdk = new OpenTelemetrySDK(ServiceIdentifier.NAMES.SyncingServerWorker)
+sdk.start()
 
 const container = new ContainerConfigLoader('worker')
 void container.load().then((container) => {
@@ -15,12 +19,6 @@ void container.load().then((container) => {
 
   const logger: Logger = container.get(TYPES.Sync_Logger)
 
-  if (!container.get<boolean>(TYPES.Sync_IS_CONFIGURED_FOR_HOME_SERVER_OR_SELF_HOSTING)) {
-    logger.info('Starting OpenTelemetry SDK...')
-    const openTelemetrySDK = container.get<OpenTelemetrySDKInterface>(TYPES.Sync_OpenTelemetrySDK)
-    openTelemetrySDK.start()
-  }
-
   const subscriberFactory: DomainEventSubscriberFactoryInterface = container.get(
     TYPES.Sync_DomainEventSubscriberFactory,
   )

+ 0 - 16
packages/syncing-server/src/Bootstrap/Container.ts

@@ -13,8 +13,6 @@ import { Item } from '../Domain/Item/Item'
 import {
   DirectCallDomainEventPublisher,
   DirectCallEventMessageHandler,
-  OpenTelemetrySDK,
-  OpenTelemetrySDKInterface,
   SNSDomainEventPublisher,
   SQSDomainEventSubscriberFactory,
   SQSEventMessageHandler,
@@ -237,25 +235,11 @@ export class ContainerConfigLoader {
     const isConfiguredForHomeServerOrSelfHosting = isConfiguredForHomeServer || isConfiguredForSelfHosting
     const isSecondaryDatabaseEnabled = env.get('SECONDARY_DB_ENABLED', true) === 'true'
     const isConfiguredForInMemoryCache = env.get('CACHE_TYPE', true) === 'memory'
-    const openTelemetryRatio = env.get('OTEL_SPAN_RATIO', true) ? +env.get('OTEL_SPAN_RATIO', true) : 0.01
 
     container
       .bind<boolean>(TYPES.Sync_IS_CONFIGURED_FOR_HOME_SERVER_OR_SELF_HOSTING)
       .toConstantValue(isConfiguredForHomeServerOrSelfHosting)
 
-    if (!isConfiguredForHomeServerOrSelfHosting) {
-      container
-        .bind<OpenTelemetrySDKInterface>(TYPES.Sync_OpenTelemetrySDK)
-        .toConstantValue(
-          new OpenTelemetrySDK(
-            this.mode === 'server'
-              ? ServiceIdentifier.NAMES.SyncingServer
-              : ServiceIdentifier.NAMES.SyncingServerWorker,
-            openTelemetryRatio,
-          ),
-        )
-    }
-
     if (!isConfiguredForInMemoryCache) {
       const redisUrl = env.get('REDIS_URL')
       const isRedisInClusterMode = redisUrl.indexOf(',') > 0

+ 0 - 1
packages/syncing-server/src/Bootstrap/Types.ts

@@ -6,7 +6,6 @@ const TYPES = {
   Sync_SQS: Symbol.for('Sync_SQS'),
   Sync_S3: Symbol.for('Sync_S3'),
   Sync_Env: Symbol.for('Sync_Env'),
-  Sync_OpenTelemetrySDK: Symbol.for('Sync_OpenTelemetrySDK'),
   // Repositories
   Sync_ItemRepositoryResolver: Symbol.for('Sync_ItemRepositoryResolver'),
   Sync_SQLItemRepository: Symbol.for('Sync_SQLItemRepository'),