private static async getTelemetryFactory()

in common/lib/utils/telemetry/default_telemetry_factory.ts [59:83]


  private static async getTelemetryFactory(backend: string, type: string) {
    try {
      switch (backend) {
        case "otlp":
          if (!DefaultTelemetryFactory.openTelemetryFactory) {
            DefaultTelemetryFactory.openTelemetryFactory = await import("./open_telemetry_factory");
          }
          return new DefaultTelemetryFactory.openTelemetryFactory.OpenTelemetryFactory();
        case "xray":
          if (!DefaultTelemetryFactory.xrayTelemetryFactory) {
            DefaultTelemetryFactory.xrayTelemetryFactory = await import("./xray_telemetry_factory");
          }
          return DefaultTelemetryFactory.xrayTelemetryFactory.XRayTelemetryFactory();
        case "none":
          return new NullTelemetryFactory();
        default:
          throw new AwsWrapperError(Messages.get("DefaultTelemetryFactory.invalidBackend", backend, type));
      }
    } catch (error: any) {
      if (error instanceof AwsWrapperError) {
        throw error;
      }
      throw new AwsWrapperError(Messages.get("DefaultTelemetryFactory.importFailure"));
    }
  }