ログAPIのNo-Op実装

この記事は英語の原文を日本語に翻訳したものです。原文: https://opentelemetry.io/docs/specs/otel/logs/noop/

翻訳元: open-telemetry/opentelemetry-specification v1.60.0(コミット 29ae8c7

ステータス: Stable

OpenTelemetryの利用者には、実際にはいかなる操作も実行しないようにAPIを無効化する手段が必要です。No-Op OpenTelemetry API実装(以下No-Opと呼びます)は、この機能を利用者に提供します。No-OpはOpenTelemetryログAPIを実装し、テレメトリーが生成されず、計算リソースの使用が最小化されるようにします。

OpenTelemetryのすべての言語実装は、No-Opを提供しなければなりません(MUST)。

ログAPIは、さまざまな操作を持つコンポーネントを定義します。すべてのNo-Opコンポーネントは、設定や動作状態を保持してはなりません(MUST NOT)。すべてのNo-Op操作は、定義されたすべてのパラメータを受け付けなければならず(MUST)、受け取った引数を検証してはならず(MUST NOT)、空でないエラーを返したりメッセージをログに記録したりしてはなりません(MUST NOT)。

LoggerProvider

No-Opは、複数のLoggerProviderの作成を許可しなければなりません(MUST)。

すべてのLoggerProviderが同じ空の状態を保持するため、No-Opはすべての作成リクエストに対して同じLoggerProviderのインスタンスを提供してもよい(MAY)。

Loggerの作成

新しいLoggerインスタンスは、常にLoggerProviderから作成されます。したがって、LoggerProviderLoggerの作成を許可しなければなりません(MUST)。作成されるすべてのLoggerは、No-Op Loggerのインスタンスでなければなりません(MUST)。

すべてのLoggerが同じ空の状態を保持するため、LoggerProviderはすべての作成リクエストに対して同じLoggerのインスタンスを返してもよい(MAY)。

Logger

LogRecordの発行

No-OpのLoggerは、LogRecordの発行を許可しなければなりません(MUST)。

Enabled

常にfalseを返さなければなりません(MUST)。