summaryrefslogtreecommitdiff
path: root/vendor/open-telemetry/api/Instrumentation
diff options
context:
space:
mode:
authorAndrew Dolgov <fox@fakecake.org>2024-10-01 16:00:34 +0300
committerAndrew Dolgov <fox@fakecake.org>2024-10-01 16:00:34 +0300
commit884fd92f1320d17daebb772297da03fb2cfa59b8 (patch)
tree3aa80af1df6ffa1d70f21f9fc4411f451c8b6c56 /vendor/open-telemetry/api/Instrumentation
parent8fcc68baf5b0ff964a0a4a045353462586e0e316 (diff)
drop opentelemetry
Diffstat (limited to 'vendor/open-telemetry/api/Instrumentation')
-rw-r--r--vendor/open-telemetry/api/Instrumentation/CachedInstrumentation.php97
-rw-r--r--vendor/open-telemetry/api/Instrumentation/ConfigurationResolver.php77
-rw-r--r--vendor/open-telemetry/api/Instrumentation/ConfigurationResolverInterface.php14
-rw-r--r--vendor/open-telemetry/api/Instrumentation/Configurator.php113
-rw-r--r--vendor/open-telemetry/api/Instrumentation/ContextKeys.php58
-rw-r--r--vendor/open-telemetry/api/Instrumentation/InstrumentationInterface.php43
-rw-r--r--vendor/open-telemetry/api/Instrumentation/InstrumentationTrait.php193
7 files changed, 0 insertions, 595 deletions
diff --git a/vendor/open-telemetry/api/Instrumentation/CachedInstrumentation.php b/vendor/open-telemetry/api/Instrumentation/CachedInstrumentation.php
deleted file mode 100644
index 5ffb3950d..000000000
--- a/vendor/open-telemetry/api/Instrumentation/CachedInstrumentation.php
+++ /dev/null
@@ -1,97 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace OpenTelemetry\API\Instrumentation;
-
-use ArrayAccess;
-use function assert;
-use function class_exists;
-use OpenTelemetry\API\Globals;
-use OpenTelemetry\API\Logs\LoggerInterface;
-use OpenTelemetry\API\Logs\LoggerProviderInterface;
-use OpenTelemetry\API\Metrics\MeterInterface;
-use OpenTelemetry\API\Metrics\MeterProviderInterface;
-use OpenTelemetry\API\Trace\TracerInterface;
-use OpenTelemetry\API\Trace\TracerProviderInterface;
-use const PHP_VERSION_ID;
-
-/**
- * Provides access to cached {@link TracerInterface} and {@link MeterInterface}
- * instances.
- *
- * Autoinstrumentation should prefer using a {@link CachedInstrumentation}
- * instance over repeatedly obtaining instrumentation instances from
- * {@link Globals}.
- */
-final class CachedInstrumentation
-{
- private string $name;
- private ?string $version;
- private ?string $schemaUrl;
- private iterable $attributes;
- /** @var ArrayAccess<TracerProviderInterface, TracerInterface>|null */
- private ?ArrayAccess $tracers;
- /** @var ArrayAccess<MeterProviderInterface, MeterInterface>|null */
- private ?ArrayAccess $meters;
- /** @var ArrayAccess<LoggerProviderInterface, LoggerInterface>|null */
- private ?ArrayAccess $loggers;
-
- public function __construct(string $name, ?string $version = null, ?string $schemaUrl = null, iterable $attributes = [])
- {
- $this->name = $name;
- $this->version = $version;
- $this->schemaUrl = $schemaUrl;
- $this->attributes = $attributes;
- $this->tracers = self::createWeakMap();
- $this->meters = self::createWeakMap();
- $this->loggers = self::createWeakMap();
- }
-
- private static function createWeakMap(): ?ArrayAccess
- {
- if (PHP_VERSION_ID < 80000) {
- return null;
- }
-
- /** @phan-suppress-next-line PhanUndeclaredClassReference */
- assert(class_exists(\WeakMap::class, false));
- /** @phan-suppress-next-line PhanUndeclaredClassMethod */
- $map = new \WeakMap();
- assert($map instanceof ArrayAccess);
-
- return $map;
- }
-
- public function tracer(): TracerInterface
- {
- $tracerProvider = Globals::tracerProvider();
-
- if ($this->tracers === null) {
- return $tracerProvider->getTracer($this->name, $this->version, $this->schemaUrl, $this->attributes);
- }
-
- return $this->tracers[$tracerProvider] ??= $tracerProvider->getTracer($this->name, $this->version, $this->schemaUrl, $this->attributes);
- }
-
- public function meter(): MeterInterface
- {
- $meterProvider = Globals::meterProvider();
-
- if ($this->meters === null) {
- return $meterProvider->getMeter($this->name, $this->version, $this->schemaUrl, $this->attributes);
- }
-
- return $this->meters[$meterProvider] ??= $meterProvider->getMeter($this->name, $this->version, $this->schemaUrl, $this->attributes);
- }
- public function logger(): LoggerInterface
- {
- $loggerProvider = Globals::loggerProvider();
-
- if ($this->loggers === null) {
- return $loggerProvider->getLogger($this->name, $this->version, $this->schemaUrl, $this->attributes);
- }
-
- return $this->loggers[$loggerProvider] ??= $loggerProvider->getLogger($this->name, $this->version, $this->schemaUrl, $this->attributes);
- }
-}
diff --git a/vendor/open-telemetry/api/Instrumentation/ConfigurationResolver.php b/vendor/open-telemetry/api/Instrumentation/ConfigurationResolver.php
deleted file mode 100644
index bb5619c30..000000000
--- a/vendor/open-telemetry/api/Instrumentation/ConfigurationResolver.php
+++ /dev/null
@@ -1,77 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace OpenTelemetry\API\Instrumentation;
-
-class ConfigurationResolver implements ConfigurationResolverInterface
-{
- public function has(string $name): bool
- {
- return $this->getVariable($name) !== null;
- }
-
- public function getString(string $name): ?string
- {
- return $this->getVariable($name);
- }
-
- public function getBoolean(string $name): ?bool
- {
- $value = $this->getVariable($name);
- if ($value === null) {
- return null;
- }
-
- return ($value === 'true');
- }
-
- public function getInt(string $name): ?int
- {
- $value = $this->getVariable($name);
- if ($value === null) {
- return null;
- }
- if (filter_var($value, FILTER_VALIDATE_INT) === false) {
- //log warning
- return null;
- }
-
- return (int) $value;
- }
-
- public function getList(string $name): array
- {
- $value = $this->getVariable($name);
- if ($value === null) {
- return [];
- }
-
- return explode(',', $value);
- }
-
- private function getVariable(string $name): ?string
- {
- $value = $_SERVER[$name] ?? null;
- if ($value !== false && !self::isEmpty($value)) {
- assert(is_string($value));
-
- return $value;
- }
- $value = getenv($name);
- if ($value !== false && !self::isEmpty($value)) {
- return $value;
- }
- $value = ini_get($name);
- if ($value !== false && !self::isEmpty($value)) {
- return $value;
- }
-
- return null;
- }
-
- private static function isEmpty($value): bool
- {
- return $value === false || $value === null || $value === '';
- }
-}
diff --git a/vendor/open-telemetry/api/Instrumentation/ConfigurationResolverInterface.php b/vendor/open-telemetry/api/Instrumentation/ConfigurationResolverInterface.php
deleted file mode 100644
index 79bd94047..000000000
--- a/vendor/open-telemetry/api/Instrumentation/ConfigurationResolverInterface.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace OpenTelemetry\API\Instrumentation;
-
-interface ConfigurationResolverInterface
-{
- public function has(string $name): bool;
- public function getString(string $name): ?string;
- public function getBoolean(string $name): ?bool;
- public function getInt(string $name): ?int;
- public function getList(string $name): array;
-}
diff --git a/vendor/open-telemetry/api/Instrumentation/Configurator.php b/vendor/open-telemetry/api/Instrumentation/Configurator.php
deleted file mode 100644
index 71d301363..000000000
--- a/vendor/open-telemetry/api/Instrumentation/Configurator.php
+++ /dev/null
@@ -1,113 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace OpenTelemetry\API\Instrumentation;
-
-use OpenTelemetry\API\Logs\LoggerProviderInterface;
-use OpenTelemetry\API\Logs\NoopLoggerProvider;
-use OpenTelemetry\API\Metrics\MeterProviderInterface;
-use OpenTelemetry\API\Metrics\Noop\NoopMeterProvider;
-use OpenTelemetry\API\Trace\NoopTracerProvider;
-use OpenTelemetry\API\Trace\TracerProviderInterface;
-use OpenTelemetry\Context\Context;
-use OpenTelemetry\Context\ContextInterface;
-use OpenTelemetry\Context\ImplicitContextKeyedInterface;
-use OpenTelemetry\Context\Propagation\NoopTextMapPropagator;
-use OpenTelemetry\Context\Propagation\TextMapPropagatorInterface;
-use OpenTelemetry\Context\ScopeInterface;
-
-/**
- * Configures the global (context scoped) instrumentation instances.
- *
- * @see Configurator::activate()
- */
-final class Configurator implements ImplicitContextKeyedInterface
-{
- private ?TracerProviderInterface $tracerProvider = null;
- private ?MeterProviderInterface $meterProvider = null;
- private ?TextMapPropagatorInterface $propagator = null;
- private ?LoggerProviderInterface $loggerProvider = null;
-
- private function __construct()
- {
- }
-
- /**
- * Creates a configurator that uses parent instances for not configured values.
- */
- public static function create(): Configurator
- {
- return new self();
- }
-
- /**
- * Creates a configurator that uses noop instances for not configured values.
- */
- public static function createNoop(): Configurator
- {
- return self::create()
- ->withTracerProvider(new NoopTracerProvider())
- ->withMeterProvider(new NoopMeterProvider())
- ->withPropagator(new NoopTextMapPropagator())
- ->withLoggerProvider(new NoopLoggerProvider())
- ;
- }
-
- public function activate(): ScopeInterface
- {
- return $this->storeInContext()->activate();
- }
-
- public function storeInContext(?ContextInterface $context = null): ContextInterface
- {
- $context ??= Context::getCurrent();
-
- if ($this->tracerProvider !== null) {
- $context = $context->with(ContextKeys::tracerProvider(), $this->tracerProvider);
- }
- if ($this->meterProvider !== null) {
- $context = $context->with(ContextKeys::meterProvider(), $this->meterProvider);
- }
- if ($this->propagator !== null) {
- $context = $context->with(ContextKeys::propagator(), $this->propagator);
- }
- if ($this->loggerProvider !== null) {
- $context = $context->with(ContextKeys::loggerProvider(), $this->loggerProvider);
- }
-
- return $context;
- }
-
- public function withTracerProvider(?TracerProviderInterface $tracerProvider): Configurator
- {
- $self = clone $this;
- $self->tracerProvider = $tracerProvider;
-
- return $self;
- }
-
- public function withMeterProvider(?MeterProviderInterface $meterProvider): Configurator
- {
- $self = clone $this;
- $self->meterProvider = $meterProvider;
-
- return $self;
- }
-
- public function withPropagator(?TextMapPropagatorInterface $propagator): Configurator
- {
- $self = clone $this;
- $self->propagator = $propagator;
-
- return $self;
- }
-
- public function withLoggerProvider(?LoggerProviderInterface $loggerProvider): Configurator
- {
- $self = clone $this;
- $self->loggerProvider = $loggerProvider;
-
- return $self;
- }
-}
diff --git a/vendor/open-telemetry/api/Instrumentation/ContextKeys.php b/vendor/open-telemetry/api/Instrumentation/ContextKeys.php
deleted file mode 100644
index ea1a66416..000000000
--- a/vendor/open-telemetry/api/Instrumentation/ContextKeys.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace OpenTelemetry\API\Instrumentation;
-
-use OpenTelemetry\API\Logs\LoggerProviderInterface;
-use OpenTelemetry\API\Metrics\MeterProviderInterface;
-use OpenTelemetry\API\Trace\TracerProviderInterface;
-use OpenTelemetry\Context\Context;
-use OpenTelemetry\Context\ContextKeyInterface;
-use OpenTelemetry\Context\Propagation\TextMapPropagatorInterface;
-
-/**
- * @internal
- */
-final class ContextKeys
-{
- /**
- * @return ContextKeyInterface<TracerProviderInterface>
- */
- public static function tracerProvider(): ContextKeyInterface
- {
- static $instance;
-
- return $instance ??= Context::createKey(TracerProviderInterface::class);
- }
-
- /**
- * @return ContextKeyInterface<MeterProviderInterface>
- */
- public static function meterProvider(): ContextKeyInterface
- {
- static $instance;
-
- return $instance ??= Context::createKey(MeterProviderInterface::class);
- }
-
- /**
- * @return ContextKeyInterface<TextMapPropagatorInterface>
- */
- public static function propagator(): ContextKeyInterface
- {
- static $instance;
-
- return $instance ??= Context::createKey(TextMapPropagatorInterface::class);
- }
-
- /**
- * @return ContextKeyInterface<LoggerProviderInterface>
- */
- public static function loggerProvider(): ContextKeyInterface
- {
- static $instance;
-
- return $instance ??= Context::createKey(LoggerProviderInterface::class);
- }
-}
diff --git a/vendor/open-telemetry/api/Instrumentation/InstrumentationInterface.php b/vendor/open-telemetry/api/Instrumentation/InstrumentationInterface.php
deleted file mode 100644
index d67bc8d6d..000000000
--- a/vendor/open-telemetry/api/Instrumentation/InstrumentationInterface.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace OpenTelemetry\API\Instrumentation;
-
-use OpenTelemetry\API\Metrics\MeterInterface;
-use OpenTelemetry\API\Metrics\MeterProviderInterface;
-use OpenTelemetry\API\Trace\TracerInterface;
-use OpenTelemetry\API\Trace\TracerProviderInterface;
-use OpenTelemetry\Context\Propagation\TextMapPropagatorInterface;
-use Psr\Log\LoggerInterface;
-
-interface InstrumentationInterface
-{
- public function getName(): string;
-
- public function getVersion(): ?string;
-
- public function getSchemaUrl(): ?string;
-
- public function init(): bool;
-
- public function activate(): bool;
-
- public function setPropagator(TextMapPropagatorInterface $propagator): void;
-
- public function getPropagator(): TextMapPropagatorInterface;
-
- public function setTracerProvider(TracerProviderInterface $tracerProvider): void;
-
- public function getTracerProvider(): TracerProviderInterface;
-
- public function getTracer(): TracerInterface;
-
- public function setMeterProvider(MeterProviderInterface $meterProvider): void;
-
- public function getMeter(): MeterInterface;
-
- public function setLogger(LoggerInterface $logger): void;
-
- public function getLogger(): LoggerInterface;
-}
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 @@
-<?php
-
-declare(strict_types=1);
-
-namespace OpenTelemetry\API\Instrumentation;
-
-use OpenTelemetry\API\Metrics\MeterInterface;
-use OpenTelemetry\API\Metrics\MeterProviderInterface;
-use OpenTelemetry\API\Metrics\Noop\NoopMeter;
-use OpenTelemetry\API\Trace\NoopTracer;
-use OpenTelemetry\API\Trace\NoopTracerProvider;
-use OpenTelemetry\API\Trace\TracerInterface;
-use OpenTelemetry\API\Trace\TracerProviderInterface;
-use OpenTelemetry\Context\Propagation\NoopTextMapPropagator;
-use OpenTelemetry\Context\Propagation\TextMapPropagatorInterface;
-use Psr\Log\LoggerInterface;
-use Psr\Log\NullLogger;
-use RuntimeException;
-
-/**
- This trait in conjunction with the InstrumentationInterface is meant as a base for instrumentations for the
- OpenTelemetry API.
- Instrumentations need to implement the abstract methods of this trait (besides any instrumentation specific code)
-
- A very simplified instrumentation could look like this:
-
-class Instrumentation implements InstrumentationInterface
-{
- use InstrumentationTrait;
-
- public function getName(): string
- {
- return 'foo-instrumentation';
- }
-
- public function getVersion(): ?string
- {
- return '0.0.1';
- }
-
- public function getSchemaUrl(): ?string
- {
- return null;
- }
-
- public function init(): bool
- {
- // This is just an example. In a real-world scenario one should only create spans in reaction of things
- // happening in the instrumented code, not just for the sake of it.
- $span = $this->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();
- }
-}