Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. SdkAutoloader.php

function SdkAutoloader::environmentBasedInitializer

1 call to SdkAutoloader::environmentBasedInitializer()
SdkAutoloader::autoload in vendor/open-telemetry/sdk/SdkAutoloader.php

File

vendor/open-telemetry/sdk/SdkAutoloader.php, line 77

Class

SdkAutoloader
@psalm-suppress RedundantCast

Namespace

OpenTelemetry\SDK

Code

private static function environmentBasedInitializer(Configurator $configurator) : Configurator {
    $propagator = (new PropagatorFactory())->create();
    if (Sdk::isDisabled()) {
        
        //@see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/configuration/sdk-environment-variables.md#general-sdk-configuration
        return $configurator->withPropagator($propagator);
    }
    $emitMetrics = Configuration::getBoolean(Variables::OTEL_PHP_INTERNAL_METRICS_ENABLED);
    $resource = ResourceInfoFactory::defaultResource();
    $exporter = (new ExporterFactory())->create();
    $meterProvider = (new MeterProviderFactory())->create($resource);
    $spanProcessor = (new SpanProcessorFactory())->create($exporter, $emitMetrics ? $meterProvider : null);
    $tracerProvider = (new TracerProviderBuilder())->addSpanProcessor($spanProcessor)
        ->setResource($resource)
        ->setSampler((new SamplerFactory())->create())
        ->build();
    $loggerProvider = (new LoggerProviderFactory())->create($emitMetrics ? $meterProvider : null, $resource);
    $eventLoggerProvider = (new EventLoggerProviderFactory())->create($loggerProvider);
    ShutdownHandler::register($tracerProvider->shutdown(...));
    ShutdownHandler::register($meterProvider->shutdown(...));
    ShutdownHandler::register($loggerProvider->shutdown(...));
    return $configurator->withTracerProvider($tracerProvider)
        ->withMeterProvider($meterProvider)
        ->withLoggerProvider($loggerProvider)
        ->withEventLoggerProvider($eventLoggerProvider)
        ->withPropagator($propagator);
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal