function Globals::globals
@phan-suppress PhanTypeMismatchReturnNullable
File
-
vendor/
open-telemetry/ api/ Globals.php, line 81
Class
- Globals
- Provides access to the globally configured instrumentation instances.
Namespace
OpenTelemetry\APICode
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) {
self::logWarning(sprintf("Error during opentelemetry initialization: %s\n%s", $e->getMessage(), $e->getTraceAsString()));
}
}
} 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());
$eventLoggerProvider = $context->get(ContextKeys::eventLoggerProvider());
assert(isset($tracerProvider, $meterProvider, $loggerProvider, $eventLoggerProvider, $propagator));
return self::$globals = new self($tracerProvider, $meterProvider, $loggerProvider, $eventLoggerProvider, $propagator);
}