From 029fa8ebd0ccb44590d8e4f8fb18cade472ac536 Mon Sep 17 00:00:00 2001 From: Brett McBride Date: Mon, 6 Jan 2025 18:00:09 +1100 Subject: [PATCH 1/2] deprecate event logger The event logger was a Development-status component of the logging signal. It has been removed in favour of adding emitEvent to the logger interface, see https://github.com/open-telemetry/opentelemetry-specification/pull/4319 --- src/API/Logs/EventLoggerInterface.php | 1 + src/API/Logs/EventLoggerProviderInterface.php | 1 + src/API/Logs/NoopEventLogger.php | 3 +++ src/API/Logs/NoopEventLoggerProvider.php | 3 +++ src/SDK/Logs/EventLogger.php | 3 +++ src/SDK/Logs/EventLoggerProvider.php | 3 +++ src/SDK/Logs/EventLoggerProviderInterface.php | 3 +++ src/SDK/Logs/NoopEventLoggerProvider.php | 3 +++ 8 files changed, 20 insertions(+) diff --git a/src/API/Logs/EventLoggerInterface.php b/src/API/Logs/EventLoggerInterface.php index 9d1d0fd12..f7c0890e9 100644 --- a/src/API/Logs/EventLoggerInterface.php +++ b/src/API/Logs/EventLoggerInterface.php @@ -7,6 +7,7 @@ use OpenTelemetry\Context\ContextInterface; /** + * @deprecated * @see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/logs/event-api.md#events-api-interface */ interface EventLoggerInterface diff --git a/src/API/Logs/EventLoggerProviderInterface.php b/src/API/Logs/EventLoggerProviderInterface.php index 957a19654..2b1819612 100644 --- a/src/API/Logs/EventLoggerProviderInterface.php +++ b/src/API/Logs/EventLoggerProviderInterface.php @@ -5,6 +5,7 @@ namespace OpenTelemetry\API\Logs; /** + * @deprecated * @see https://github.com/open-telemetry/opentelemetry-specification/blob/v1.32.0/specification/logs/event-api.md#get-an-eventlogger */ interface EventLoggerProviderInterface diff --git a/src/API/Logs/NoopEventLogger.php b/src/API/Logs/NoopEventLogger.php index cc51dacaa..43e389e09 100644 --- a/src/API/Logs/NoopEventLogger.php +++ b/src/API/Logs/NoopEventLogger.php @@ -6,6 +6,9 @@ use OpenTelemetry\Context\ContextInterface; +/** + * @phan-suppress PhanDeprecatedInterface + */ class NoopEventLogger implements EventLoggerInterface { public static function instance(): self diff --git a/src/API/Logs/NoopEventLoggerProvider.php b/src/API/Logs/NoopEventLoggerProvider.php index 09ae22564..605f872c0 100644 --- a/src/API/Logs/NoopEventLoggerProvider.php +++ b/src/API/Logs/NoopEventLoggerProvider.php @@ -4,6 +4,9 @@ namespace OpenTelemetry\API\Logs; +/** + * @phan-suppress PhanDeprecatedInterface + */ class NoopEventLoggerProvider implements EventLoggerProviderInterface { public static function getInstance(): self diff --git a/src/SDK/Logs/EventLogger.php b/src/SDK/Logs/EventLogger.php index f84928b9c..104f1ec14 100644 --- a/src/SDK/Logs/EventLogger.php +++ b/src/SDK/Logs/EventLogger.php @@ -12,6 +12,9 @@ use OpenTelemetry\Context\Context; use OpenTelemetry\Context\ContextInterface; +/** + * @phan-suppress PhanDeprecatedInterface + */ class EventLogger implements EventLoggerInterface { /** diff --git a/src/SDK/Logs/EventLoggerProvider.php b/src/SDK/Logs/EventLoggerProvider.php index 2b5441b01..e92c824c2 100644 --- a/src/SDK/Logs/EventLoggerProvider.php +++ b/src/SDK/Logs/EventLoggerProvider.php @@ -7,6 +7,9 @@ use OpenTelemetry\API\Common\Time\Clock; use OpenTelemetry\API\Logs\EventLoggerInterface; +/** + * @phan-suppress PhanDeprecatedInterface + */ class EventLoggerProvider implements EventLoggerProviderInterface { public function __construct(private readonly LoggerProviderInterface $loggerProvider) diff --git a/src/SDK/Logs/EventLoggerProviderInterface.php b/src/SDK/Logs/EventLoggerProviderInterface.php index d3b137384..8f98f9578 100644 --- a/src/SDK/Logs/EventLoggerProviderInterface.php +++ b/src/SDK/Logs/EventLoggerProviderInterface.php @@ -6,6 +6,9 @@ use OpenTelemetry\API\Logs as API; +/** + * @phan-suppress PhanDeprecatedInterface + */ interface EventLoggerProviderInterface extends API\EventLoggerProviderInterface { public function forceFlush(): bool; diff --git a/src/SDK/Logs/NoopEventLoggerProvider.php b/src/SDK/Logs/NoopEventLoggerProvider.php index 3875f570f..a7edd0d6a 100644 --- a/src/SDK/Logs/NoopEventLoggerProvider.php +++ b/src/SDK/Logs/NoopEventLoggerProvider.php @@ -6,6 +6,9 @@ use OpenTelemetry\API\Logs as API; +/** + * @phan-suppress PhanDeprecatedInterface + */ class NoopEventLoggerProvider extends API\NoopEventLoggerProvider implements EventLoggerProviderInterface { public static function getInstance(): self From 805080a2d8bd1ff9e5bf55787b64ac7a8c3b9392 Mon Sep 17 00:00:00 2001 From: Brett McBride Date: Tue, 7 Jan 2025 11:42:23 +1100 Subject: [PATCH 2/2] deprecate more event logger references --- src/API/Globals.php | 6 +++++- src/API/Instrumentation/CachedInstrumentation.php | 5 +++++ src/API/Instrumentation/Configurator.php | 7 +++++++ src/API/Instrumentation/ContextKeys.php | 1 + src/SDK/Logs/EventLogger.php | 1 + src/SDK/Logs/EventLoggerProvider.php | 3 +++ src/SDK/Logs/EventLoggerProviderFactory.php | 3 +++ src/SDK/Sdk.php | 3 +++ src/SDK/SdkAutoloader.php | 5 ++++- src/SDK/SdkBuilder.php | 6 ++++++ 10 files changed, 38 insertions(+), 2 deletions(-) diff --git a/src/API/Globals.php b/src/API/Globals.php index aa3c06141..f7f6e0e81 100644 --- a/src/API/Globals.php +++ b/src/API/Globals.php @@ -58,6 +58,10 @@ public static function loggerProvider(): LoggerProviderInterface return Context::getCurrent()->get(ContextKeys::loggerProvider()) ?? self::globals()->loggerProvider; } + /** + * @deprecated + * @phan-suppress PhanDeprecatedFunction + */ public static function eventLoggerProvider(): EventLoggerProviderInterface { return Context::getCurrent()->get(ContextKeys::eventLoggerProvider()) ?? self::globals()->eventLoggerProvider; @@ -76,7 +80,7 @@ public static function registerInitializer(Closure $initializer): void } /** - * @phan-suppress PhanTypeMismatchReturnNullable + * @phan-suppress PhanTypeMismatchReturnNullable,PhanDeprecatedFunction */ private static function globals(): self { diff --git a/src/API/Instrumentation/CachedInstrumentation.php b/src/API/Instrumentation/CachedInstrumentation.php index 20749c0c5..27b755b2f 100644 --- a/src/API/Instrumentation/CachedInstrumentation.php +++ b/src/API/Instrumentation/CachedInstrumentation.php @@ -68,6 +68,11 @@ public function logger(): LoggerInterface return $this->loggers[$loggerProvider] ??= $loggerProvider->getLogger($this->name, $this->version, $this->schemaUrl, $this->attributes); } + + /** + * @deprecated + * @phan-suppress PhanDeprecatedFunction + */ public function eventLogger(): EventLoggerInterface { $eventLoggerProvider = Globals::eventLoggerProvider(); diff --git a/src/API/Instrumentation/Configurator.php b/src/API/Instrumentation/Configurator.php index d8912ec2d..3ece0ace1 100644 --- a/src/API/Instrumentation/Configurator.php +++ b/src/API/Instrumentation/Configurator.php @@ -46,6 +46,7 @@ public static function create(): Configurator /** * Creates a configurator that uses noop instances for not configured values. + * @phan-suppress PhanDeprecatedFunction */ public static function createNoop(): Configurator { @@ -63,6 +64,9 @@ public function activate(): ScopeInterface return $this->storeInContext()->activate(); } + /** + * @phan-suppress PhanDeprecatedFunction + */ public function storeInContext(?ContextInterface $context = null): ContextInterface { $context ??= Context::getCurrent(); @@ -118,6 +122,9 @@ public function withLoggerProvider(?LoggerProviderInterface $loggerProvider): Co return $self; } + /** + * @deprecated + */ public function withEventLoggerProvider(?EventLoggerProviderInterface $eventLoggerProvider): Configurator { $self = clone $this; diff --git a/src/API/Instrumentation/ContextKeys.php b/src/API/Instrumentation/ContextKeys.php index 9f53e5b86..7e69f95d6 100644 --- a/src/API/Instrumentation/ContextKeys.php +++ b/src/API/Instrumentation/ContextKeys.php @@ -58,6 +58,7 @@ public static function loggerProvider(): ContextKeyInterface } /** + * @deprecated * @return ContextKeyInterface */ public static function eventLoggerProvider(): ContextKeyInterface diff --git a/src/SDK/Logs/EventLogger.php b/src/SDK/Logs/EventLogger.php index 104f1ec14..1e65c4d63 100644 --- a/src/SDK/Logs/EventLogger.php +++ b/src/SDK/Logs/EventLogger.php @@ -13,6 +13,7 @@ use OpenTelemetry\Context\ContextInterface; /** + * @deprecated * @phan-suppress PhanDeprecatedInterface */ class EventLogger implements EventLoggerInterface diff --git a/src/SDK/Logs/EventLoggerProvider.php b/src/SDK/Logs/EventLoggerProvider.php index e92c824c2..fa7cdc1e4 100644 --- a/src/SDK/Logs/EventLoggerProvider.php +++ b/src/SDK/Logs/EventLoggerProvider.php @@ -16,6 +16,9 @@ public function __construct(private readonly LoggerProviderInterface $loggerProv { } + /** + * @phan-suppress PhanDeprecatedClass + */ public function getEventLogger(string $name, ?string $version = null, ?string $schemaUrl = null, iterable $attributes = []): EventLoggerInterface { return new EventLogger( diff --git a/src/SDK/Logs/EventLoggerProviderFactory.php b/src/SDK/Logs/EventLoggerProviderFactory.php index 889e382ef..fbb0b5fda 100644 --- a/src/SDK/Logs/EventLoggerProviderFactory.php +++ b/src/SDK/Logs/EventLoggerProviderFactory.php @@ -6,6 +6,9 @@ use OpenTelemetry\SDK\Sdk; +/** + * @deprecated + */ class EventLoggerProviderFactory { public function create(LoggerProviderInterface $loggerProvider): EventLoggerProviderInterface diff --git a/src/SDK/Sdk.php b/src/SDK/Sdk.php index 78f541f64..6bb6911ec 100644 --- a/src/SDK/Sdk.php +++ b/src/SDK/Sdk.php @@ -60,6 +60,9 @@ public function getLoggerProvider(): LoggerProviderInterface return $this->loggerProvider; } + /** + * @deprecated + */ public function getEventLoggerProvider(): EventLoggerProviderInterface { return $this->eventLoggerProvider; diff --git a/src/SDK/SdkAutoloader.php b/src/SDK/SdkAutoloader.php index bc3208e4c..804e5b7f9 100644 --- a/src/SDK/SdkAutoloader.php +++ b/src/SDK/SdkAutoloader.php @@ -74,6 +74,9 @@ public static function autoload(): bool return true; } + /** + * @phan-suppress PhanDeprecatedClass,PhanDeprecatedFunction + */ private static function environmentBasedInitializer(Configurator $configurator): Configurator { $propagator = (new PropagatorFactory())->create(); @@ -110,7 +113,7 @@ private static function environmentBasedInitializer(Configurator $configurator): } /** - * @phan-suppress PhanPossiblyUndeclaredVariable + * @phan-suppress PhanPossiblyUndeclaredVariable,PhanDeprecatedFunction */ private static function fileBasedInitializer(Configurator $configurator): Configurator { diff --git a/src/SDK/SdkBuilder.php b/src/SDK/SdkBuilder.php index 403713e0b..f2624e947 100644 --- a/src/SDK/SdkBuilder.php +++ b/src/SDK/SdkBuilder.php @@ -59,6 +59,9 @@ public function setLoggerProvider(LoggerProviderInterface $loggerProvider): self return $this; } + /** + * @deprecated + */ public function setEventLoggerProvider(EventLoggerProviderInterface $eventLoggerProvider): self { $this->eventLoggerProvider = $eventLoggerProvider; @@ -95,6 +98,9 @@ public function build(): Sdk ); } + /** + * @phan-suppress PhanDeprecatedFunction + */ public function buildAndRegisterGlobal(): ScopeInterface { $sdk = $this->build();