From 884fd92f1320d17daebb772297da03fb2cfa59b8 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Tue, 1 Oct 2024 16:00:34 +0300 Subject: drop opentelemetry --- .../api/Instrumentation/InstrumentationTrait.php | 193 --------------------- 1 file changed, 193 deletions(-) delete mode 100644 vendor/open-telemetry/api/Instrumentation/InstrumentationTrait.php (limited to 'vendor/open-telemetry/api/Instrumentation/InstrumentationTrait.php') diff --git a/vendor/open-telemetry/api/Instrumentation/InstrumentationTrait.php b/vendor/open-telemetry/api/Instrumentation/InstrumentationTrait.php deleted file mode 100644 index 1e695adb5..000000000 --- a/vendor/open-telemetry/api/Instrumentation/InstrumentationTrait.php +++ /dev/null @@ -1,193 +0,0 @@ -getTracer()->spanBuilder($this->getName())->startSpan(); - // do stuff - $span->end(); - } -} - -An user of the instrumentation and API/SDK would the call: - -$instrumentation = new Instrumentation; -$instrumentation->activate() - -to activate and use the instrumentation with the API/SDK. - **/ - -trait InstrumentationTrait -{ - private TextMapPropagatorInterface $propagator; - private TracerProviderInterface $tracerProvider; - private TracerInterface $tracer; - private MeterInterface $meter; - private LoggerInterface $logger; - - public function __construct() - { - $this->initDefaults(); - } - - /** - * The name of the instrumenting/instrumented library/package/project. - * @see https://github.com/open-telemetry/opentelemetry-specification/blob/v1.12.0/specification/glossary.md#instrumentation-scope - * @see https://github.com/open-telemetry/opentelemetry-specification/blob/v1.12.0/specification/glossary.md#instrumentation-library - */ - abstract public function getName(): string; - - /** - * The version of the instrumenting/instrumented library/package/project. - * If unknown or a lookup is too expensive simply return NULL. - * @see https://github.com/open-telemetry/opentelemetry-specification/blob/v1.12.0/specification/glossary.md#instrumentation-scope - * @see https://github.com/open-telemetry/opentelemetry-specification/blob/v1.12.0/specification/glossary.md#instrumentation-library - */ - abstract public function getVersion(): ?string; - - /** - * The version of the instrumenting/instrumented library/package/project. - * If unknown simply return NULL. - * @see https://github.com/open-telemetry/opentelemetry-specification/blob/v1.12.0/specification/glossary.md#instrumentation-scope - * @see https://github.com/open-telemetry/opentelemetry-specification/blob/v1.12.0/specification/glossary.md#instrumentation-library - */ - abstract public function getSchemaUrl(): ?string; - - /** - * This method will be called from the API when the instrumentation has been activated (via activate()). - * Here you can put any bootstrapping code needed by the instrumentation. - * If not needed simply implement a method which returns TRUE. - */ - abstract public function init(): bool; - - /** - * This method registers and activates the instrumentation with the OpenTelemetry API/SDK and thus - * the instrumentation will be used to generate telemetry data. - */ - public function activate(): bool - { - $this->validateImplementation(); - // activate instrumentation with the API. not implemented yet. - return true; - } - - public function setPropagator(TextMapPropagatorInterface $propagator): void - { - $this->propagator = $propagator; - } - - public function getPropagator(): TextMapPropagatorInterface - { - return $this->propagator; - } - - public function setTracerProvider(TracerProviderInterface $tracerProvider): void - { - $this->tracerProvider = $tracerProvider; - // @see https://github.com/open-telemetry/opentelemetry-specification/blob/v1.12.0/specification/trace/api.md#get-a-tracer - $this->tracer = $tracerProvider->getTracer( - $this->getName(), - $this->getVersion(), - $this->getSchemaUrl(), - ); - } - - public function getTracerProvider(): TracerProviderInterface - { - return $this->tracerProvider; - } - - public function getTracer(): TracerInterface - { - return $this->tracer; - } - - public function setMeterProvider(MeterProviderInterface $meterProvider): void - { - // @see https://github.com/open-telemetry/opentelemetry-specification/blob/v1.12.0/specification/metrics/api.md#get-a-meter - $this->meter = $meterProvider->getMeter( - $this->getName(), - $this->getVersion(), - ); - } - - public function getMeter(): MeterInterface - { - return $this->meter; - } - - public function setLogger(LoggerInterface $logger): void - { - $this->logger = $logger; - } - - public function getLogger(): LoggerInterface - { - return $this->logger; - } - - private function validateImplementation(): void - { - if (!$this instanceof InstrumentationInterface) { - throw new RuntimeException(sprintf( - '"%s" is meant to implement "%s"', - InstrumentationTrait::class, - InstrumentationInterface::class - )); - } - } - - private function initDefaults(): void - { - $this->propagator = new NoopTextMapPropagator(); - $this->tracer = new NoopTracer(); - $this->tracerProvider = new NoopTracerProvider(); - /** @phan-suppress-next-line PhanAccessMethodInternal */ - $this->meter = new NoopMeter(); - $this->logger = new NullLogger(); - } -} -- cgit v1.2.3-54-g00ecf