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

Breadcrumb

  1. Drupal Core 11.1.x

TracerProviderFactory.php

Namespace

OpenTelemetry\SDK\Trace

File

vendor/open-telemetry/sdk/Trace/TracerProviderFactory.php

View source
<?php

declare (strict_types=1);
namespace OpenTelemetry\SDK\Trace;

use OpenTelemetry\API\Behavior\LogsMessagesTrait;
use OpenTelemetry\SDK\Sdk;
final class TracerProviderFactory {
    use LogsMessagesTrait;
    public function __construct(ExporterFactory $exporterFactory = new ExporterFactory(), SamplerFactory $samplerFactory = new SamplerFactory(), SpanProcessorFactory $spanProcessorFactory = new SpanProcessorFactory()) {
    }
    public function create() : TracerProviderInterface {
        if (Sdk::isDisabled()) {
            return new NoopTracerProvider();
        }
        try {
            $exporter = $this->exporterFactory
                ->create();
        } catch (\Throwable $t) {
            self::logWarning('Unable to create exporter', [
                'exception' => $t,
            ]);
            $exporter = null;
        }
        try {
            $sampler = $this->samplerFactory
                ->create();
        } catch (\Throwable $t) {
            self::logWarning('Unable to create sampler', [
                'exception' => $t,
            ]);
            $sampler = null;
        }
        try {
            $spanProcessor = $this->spanProcessorFactory
                ->create($exporter);
        } catch (\Throwable $t) {
            self::logWarning('Unable to create span processor', [
                'exception' => $t,
            ]);
            $spanProcessor = null;
        }
        return new TracerProvider($spanProcessor, $sampler);
    }

}

Classes

Title Deprecated Summary
TracerProviderFactory

API Navigation

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