From cdd7ad020e165fe680703b6d3319b908b682fb7a Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Fri, 20 Oct 2023 17:12:29 +0300 Subject: jaeger-client -> opentelemetry --- vendor/open-telemetry/api/Globals.php | 121 ++++++++++++++++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 vendor/open-telemetry/api/Globals.php (limited to 'vendor/open-telemetry/api/Globals.php') diff --git a/vendor/open-telemetry/api/Globals.php b/vendor/open-telemetry/api/Globals.php new file mode 100644 index 000000000..8f04b0b42 --- /dev/null +++ b/vendor/open-telemetry/api/Globals.php @@ -0,0 +1,121 @@ +tracerProvider = $tracerProvider; + $this->meterProvider = $meterProvider; + $this->loggerProvider = $loggerProvider; + $this->propagator = $propagator; + } + + public static function tracerProvider(): TracerProviderInterface + { + return Context::getCurrent()->get(ContextKeys::tracerProvider()) ?? self::globals()->tracerProvider; + } + + public static function meterProvider(): MeterProviderInterface + { + return Context::getCurrent()->get(ContextKeys::meterProvider()) ?? self::globals()->meterProvider; + } + + public static function propagator(): TextMapPropagatorInterface + { + return Context::getCurrent()->get(ContextKeys::propagator()) ?? self::globals()->propagator; + } + + public static function loggerProvider(): LoggerProviderInterface + { + return Context::getCurrent()->get(ContextKeys::loggerProvider()) ?? self::globals()->loggerProvider; + } + + /** + * @param Closure(Configurator): Configurator $initializer + * + * @interal + * @psalm-internal OpenTelemetry + */ + public static function registerInitializer(Closure $initializer): void + { + self::$initializers[] = $initializer; + } + + /** + * @phan-suppress PhanTypeMismatchReturnNullable + */ + private static function globals(): self + { + if (self::$globals !== null) { + return self::$globals; + } + + $configurator = Configurator::createNoop(); + $scope = $configurator->activate(); + + try { + foreach (self::$initializers as $initializer) { + try { + $configurator = $initializer($configurator); + } catch (Throwable $e) { + trigger_error(sprintf("Error during opentelemetry initialization: %s\n%s", $e->getMessage(), $e->getTraceAsString()), E_USER_WARNING); + } + } + } finally { + $scope->detach(); + } + + $context = $configurator->storeInContext(); + $tracerProvider = $context->get(ContextKeys::tracerProvider()); + $meterProvider = $context->get(ContextKeys::meterProvider()); + $propagator = $context->get(ContextKeys::propagator()); + $loggerProvider = $context->get(ContextKeys::loggerProvider()); + + assert(isset($tracerProvider, $meterProvider, $loggerProvider, $propagator)); + + return self::$globals = new self($tracerProvider, $meterProvider, $loggerProvider, $propagator); + } + + /** + * @internal + */ + public static function reset(): void + { + self::$globals = null; + self::$initializers = []; + } +} -- cgit v1.2.3