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

翻訳元: open-telemetry/semantic-conventions v1.44.0(コミット e10a930

OpenTelemetry SDKメトリクスに関するセマンティック規約

ステータス: Development

この文書では、OpenTelemetry SDKのコンポーネント自身が、その内部状態について発行するメトリクスを記述します。

スパンメトリクス

メトリクス: otel.sdk.span.live

このメトリクスはrecommendedです。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
otel.sdk.span.liveUpDownCounter{span}endが呼び出されていない、recording=trueで作成されたスパン数。[1]Development

[1]: 非記録のスパンは数えられません。したがって、otel.span.sampling_resultRECORD_ONLYRECORD_AND_SAMPLEの値のみを取り、DROPは取りません。

Attributes:

KeyStabilityRequirement LevelValue TypeDescriptionExample Values
otel.span.sampling_resultDevelopmentRecommendedstringこのスパンに対するサンプラーの結果値。DROP; RECORD_ONLY; RECORD_AND_SAMPLE

otel.span.sampling_resultには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。

ValueDescriptionStability
DROPスパンはサンプリングされず、記録もされません。Development
RECORD_AND_SAMPLEスパンはサンプリングされ、記録されます。Development
RECORD_ONLYスパンはサンプリングされませんが、記録されます。Development

メトリクス: otel.sdk.span.started

このメトリクスはrecommendedです。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
otel.sdk.span.startedCounter{span}作成されたスパン数。[1]Development

[1]: 実装は、非記録のスパンを含むすべてのスパンについて、このメトリクスを記録しなければなりません(MUST)。

Attributes:

KeyStabilityRequirement LevelValue TypeDescriptionExample Values
otel.span.parent.originDevelopmentRecommendedstringスパンが親スパンを持つかどうか、持つ場合はそれがリモートの親であるかどうかを判定します。none; local; remote
otel.span.sampling_resultDevelopmentRecommendedstringこのスパンに対するサンプラーの結果値。DROP; RECORD_ONLY; RECORD_AND_SAMPLE

otel.span.parent.originには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。

ValueDescriptionStability
localスパンは親を持ち、その親のスパンコンテキストのisRemote()がfalseです。Development
noneスパンは親を持たず、ルートスパンです。Development
remoteスパンは親を持ち、その親のスパンコンテキストのisRemote()がtrueです。Development

otel.span.sampling_resultには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。

ValueDescriptionStability
DROPスパンはサンプリングされず、記録もされません。Development
RECORD_AND_SAMPLEスパンはサンプリングされ、記録されます。Development
RECORD_ONLYスパンはサンプリングされませんが、記録されます。Development

メトリクス: otel.sdk.processor.span.queue.size

このメトリクスはrecommendedです。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
otel.sdk.processor.span.queue.sizeUpDownCounter{span}指定されたSDKスパンプロセッサーのインスタンスのキュー内にあるスパン数。[1]Development

[1]: キューを使用するスパンプロセッサーにのみ適用されます(SDK Batching Span Processorなど)。

Attributes:

KeyStabilityRequirement LevelValue TypeDescriptionExample Values
otel.component.nameDevelopmentRecommendedstringOpenTelemetryコンポーネントのインスタンスを、それを含むSDKインスタンス内で一意に識別する名前。[1]otlp_grpc_span_exporter/0; custom-name
otel.component.typeDevelopmentRecommendedstringOpenTelemetryコンポーネントの種別を識別する名前。[2]batching_span_processor; com.example.MySpanExporter

[1] otel.component.name: 実装は、アプリケーションやSDKの再起動をまたいでも、この属性のカーディナリティが低くなるようにすべきです(SHOULD)。たとえば、実装はこの属性の値にUUIDを使用してはなりません(MUST NOT)。

実装は、<otel.component.type>/<instance-counter>というパターン(例: batching_span_processor/0)に従うことで、これらの目標を達成してもかまいません(MAY)。ここでのotel.component.typeは、そのコンポーネントの対応する属性値を指します。

instance-counterの値は、コンポーネントによって自動的に割り当てられてもかまいません(MAY)。また、それを含むSDKインスタンス内での一意性が保証されなければなりません(MUST)。たとえば、<instance-counter>は、指定されたコンポーネント種別のインスタンスが起動するたびにインクリメントされる、単調増加するカウンター(0から開始)を使って実装されてもかまいません(MAY)。

この実装では、たとえば最初のBatching Span Processorのotel.component.namebatching_span_processor/0となり、2番目はbatching_span_processor/1となります。したがって、これらの値はアプリケーションの再起動時に再利用されます。

[2] otel.component.type: 標準化された値のいずれも当てはまらない場合、実装は、その言語で定義された型の名前を使用すべきです(SHOULD)。たとえばJavaでは、この場合に完全修飾クラス名を使用すべきです(SHOULD)。


otel.component.typeには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。

ValueDescriptionStability
batching_log_processor組み込みのSDKバッチ処理ログレコードプロセッサーDevelopment
batching_span_processor組み込みのSDKバッチ処理スパンプロセッサーDevelopment
otlp_grpc_log_exporterprotobufシリアライゼーションを使ったgRPC経由のOTLPログレコードエクスポーターDevelopment
otlp_grpc_metric_exporterprotobufシリアライゼーションを使ったgRPC経由のOTLPメトリクスエクスポーターDevelopment
otlp_grpc_span_exporterprotobufシリアライゼーションを使ったgRPC経由のOTLPスパンエクスポーターDevelopment
otlp_http_json_log_exporterJSONシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーターDevelopment
otlp_http_json_metric_exporterJSONシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーターDevelopment
otlp_http_json_span_exporterJSONシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーターDevelopment
otlp_http_log_exporterprotobufシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーターDevelopment
otlp_http_metric_exporterprotobufシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーターDevelopment
otlp_http_span_exporterprotobufシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーターDevelopment
periodic_metric_reader組み込みのSDK定期エクスポート型メトリクスリーダーDevelopment
prometheus_http_text_metric_exporterデフォルトのテキスト形式を使ったHTTP経由のPrometheusメトリクスエクスポーターDevelopment
simple_log_processor組み込みのSDKシンプルログレコードプロセッサーDevelopment
simple_span_processor組み込みのSDKシンプルスパンプロセッサーDevelopment
zipkin_http_span_exporterHTTP経由のZipkinスパンエクスポーターDevelopment

メトリクス: otel.sdk.processor.span.queue.capacity

このメトリクスはrecommendedです。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
otel.sdk.processor.span.queue.capacityUpDownCounter{span}指定されたSDKスパンプロセッサーのインスタンスのキューが保持できる最大スパン数。[1]Development

[1]: キューを使用するスパンプロセッサーにのみ適用されます(SDK Batching Span Processorなど)。

Attributes:

KeyStabilityRequirement LevelValue TypeDescriptionExample Values
otel.component.nameDevelopmentRecommendedstringOpenTelemetryコンポーネントのインスタンスを、それを含むSDKインスタンス内で一意に識別する名前。[1]otlp_grpc_span_exporter/0; custom-name
otel.component.typeDevelopmentRecommendedstringOpenTelemetryコンポーネントの種別を識別する名前。[2]batching_span_processor; com.example.MySpanExporter

[1] otel.component.name: 実装は、アプリケーションやSDKの再起動をまたいでも、この属性のカーディナリティが低くなるようにすべきです(SHOULD)。たとえば、実装はこの属性の値にUUIDを使用してはなりません(MUST NOT)。

実装は、<otel.component.type>/<instance-counter>というパターン(例: batching_span_processor/0)に従うことで、これらの目標を達成してもかまいません(MAY)。ここでのotel.component.typeは、そのコンポーネントの対応する属性値を指します。

instance-counterの値は、コンポーネントによって自動的に割り当てられてもかまいません(MAY)。また、それを含むSDKインスタンス内での一意性が保証されなければなりません(MUST)。たとえば、<instance-counter>は、指定されたコンポーネント種別のインスタンスが起動するたびにインクリメントされる、単調増加するカウンター(0から開始)を使って実装されてもかまいません(MAY)。

この実装では、たとえば最初のBatching Span Processorのotel.component.namebatching_span_processor/0となり、2番目はbatching_span_processor/1となります。したがって、これらの値はアプリケーションの再起動時に再利用されます。

[2] otel.component.type: 標準化された値のいずれも当てはまらない場合、実装は、その言語で定義された型の名前を使用すべきです(SHOULD)。たとえばJavaでは、この場合に完全修飾クラス名を使用すべきです(SHOULD)。


otel.component.typeには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。

ValueDescriptionStability
batching_log_processor組み込みのSDKバッチ処理ログレコードプロセッサーDevelopment
batching_span_processor組み込みのSDKバッチ処理スパンプロセッサーDevelopment
otlp_grpc_log_exporterprotobufシリアライゼーションを使ったgRPC経由のOTLPログレコードエクスポーターDevelopment
otlp_grpc_metric_exporterprotobufシリアライゼーションを使ったgRPC経由のOTLPメトリクスエクスポーターDevelopment
otlp_grpc_span_exporterprotobufシリアライゼーションを使ったgRPC経由のOTLPスパンエクスポーターDevelopment
otlp_http_json_log_exporterJSONシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーターDevelopment
otlp_http_json_metric_exporterJSONシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーターDevelopment
otlp_http_json_span_exporterJSONシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーターDevelopment
otlp_http_log_exporterprotobufシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーターDevelopment
otlp_http_metric_exporterprotobufシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーターDevelopment
otlp_http_span_exporterprotobufシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーターDevelopment
periodic_metric_reader組み込みのSDK定期エクスポート型メトリクスリーダーDevelopment
prometheus_http_text_metric_exporterデフォルトのテキスト形式を使ったHTTP経由のPrometheusメトリクスエクスポーターDevelopment
simple_log_processor組み込みのSDKシンプルログレコードプロセッサーDevelopment
simple_span_processor組み込みのSDKシンプルスパンプロセッサーDevelopment
zipkin_http_span_exporterHTTP経由のZipkinスパンエクスポーターDevelopment

メトリクス: otel.sdk.processor.span.processed

このメトリクスはrecommendedです。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
otel.sdk.processor.span.processedCounter{span}処理が(成功または失敗のいずれかで)完了したスパン数。[1]Development

[1]: 処理が成功した場合、error.typeを設定してはなりません(MUST NOT)。処理が失敗した場合、error.typeには失敗の原因を含めなければなりません(MUST)。 SDK Batching Span Processorは、キューが満杯のためにドロップされたスパンについて、error.typeの値としてqueue_fullを使用しなければなりません(MUST)。 プロセッサーが、すでにシャットダウンされているためにドロップされたスパンを報告する場合、error.typealready_shutdownでなければなりません(MUST)。 プロセッサーがこのようなスパンをドロップするかどうか、およびいつドロップするかは、このメトリクスではなくSDK仕様によって規定されます。 SDKのSimple Span ProcessorとBatching Span Processorでは、プロセッサーがexport操作を呼び出した時点で、スパンは正常に処理されたものとして数えられなければなりません(MUST)。バッチ処理プロセッサーの場合、エクスポーターに渡されたバッチ内のすべてのスパンがその時点で数えられます。プロセッサーのキューに受け入れられたがまだエクスポーターに渡されていないスパンは、処理されたことになりません。 実装は、export操作が完了するまでこのカウントを遅延させてはならず(MUST NOT)、export操作の結果(呼び出し自体の即時失敗を含む)は、このメトリクスに影響を与えてはなりません(MUST NOT)。 エクスポートの結果は、otel.sdk.exporter.span.exportedによって報告されます。

Attributes:

KeyStabilityRequirement LevelValue TypeDescriptionExample Values
error.typeStableRecommendedstring失敗理由の低カーディナリティな記述。[1]queue_full; already_shutdown
otel.component.nameDevelopmentRecommendedstringOpenTelemetryコンポーネントのインスタンスを、それを含むSDKインスタンス内で一意に識別する名前。[2]otlp_grpc_span_exporter/0; custom-name
otel.component.typeDevelopmentRecommendedstringOpenTelemetryコンポーネントの種別を識別する名前。[3]batching_span_processor; com.example.MySpanExporter

[1] error.type: error.typeは予測可能であるべきであり(SHOULD)、カーディナリティが低いべきです(SHOULD)。

error.typeに型(たとえば例外の型)を設定する場合、そのアーティファクト内でその型を識別する正規のクラス名を使用すべきです(SHOULD)。

記録されたエラー型が、失敗の分類にとって意味を持たないラッパーである場合、計装は内側のエラーの型を代わりに使用してもかまいません(MAY)。たとえばGoでは、ラッパー型が失敗の分類に役立たない場合、%wを使ってfmt.Errorfで作成されたエラーをアンラップしてもかまいません(MAY)。

計装は、報告するエラーの一覧を文書化すべきです(SHOULD)。

1つの計装ライブラリ内におけるerror.typeのカーディナリティは低くあるべきです(SHOULD)。複数の計装ライブラリやアプリケーションからのデータを集約するテレメトリーの利用者は、追加のフィルタが適用されない場合、クエリ実行時にerror.typeが高いカーディナリティを持つことを想定しておくべきです(should)。

操作が正常に完了した場合、計装はerror.typeを設定すべきではありません(SHOULD NOT)。

特定のドメインが独自のエラー識別子の集合(HTTPやRPCのステータスコードなど)を定義している場合、次のことが推奨されます(RECOMMENDED)。

  • ドメイン固有の属性を使用する。
  • そのドメイン固有の集合に定義されているかどうかにかかわらず、すべてのエラーを捕捉するようにerror.typeを設定する。

[2] otel.component.name: 実装は、アプリケーションやSDKの再起動をまたいでも、この属性のカーディナリティが低くなるようにすべきです(SHOULD)。たとえば、実装はこの属性の値にUUIDを使用してはなりません(MUST NOT)。

実装は、<otel.component.type>/<instance-counter>というパターン(例: batching_span_processor/0)に従うことで、これらの目標を達成してもかまいません(MAY)。ここでのotel.component.typeは、そのコンポーネントの対応する属性値を指します。

instance-counterの値は、コンポーネントによって自動的に割り当てられてもかまいません(MAY)。また、それを含むSDKインスタンス内での一意性が保証されなければなりません(MUST)。たとえば、<instance-counter>は、指定されたコンポーネント種別のインスタンスが起動するたびにインクリメントされる、単調増加するカウンター(0から開始)を使って実装されてもかまいません(MAY)。

この実装では、たとえば最初のBatching Span Processorのotel.component.namebatching_span_processor/0となり、2番目はbatching_span_processor/1となります。したがって、これらの値はアプリケーションの再起動時に再利用されます。

[3] otel.component.type: 標準化された値のいずれも当てはまらない場合、実装は、その言語で定義された型の名前を使用すべきです(SHOULD)。たとえばJavaでは、この場合に完全修飾クラス名を使用すべきです(SHOULD)。


error.typeには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。

ValueDescriptionStability
_OTHER計装が独自の値を定義していない場合に使用するフォールバック用のエラー値。Stable

otel.component.typeには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。

ValueDescriptionStability
batching_log_processor組み込みのSDKバッチ処理ログレコードプロセッサーDevelopment
batching_span_processor組み込みのSDKバッチ処理スパンプロセッサーDevelopment
otlp_grpc_log_exporterprotobufシリアライゼーションを使ったgRPC経由のOTLPログレコードエクスポーターDevelopment
otlp_grpc_metric_exporterprotobufシリアライゼーションを使ったgRPC経由のOTLPメトリクスエクスポーターDevelopment
otlp_grpc_span_exporterprotobufシリアライゼーションを使ったgRPC経由のOTLPスパンエクスポーターDevelopment
otlp_http_json_log_exporterJSONシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーターDevelopment
otlp_http_json_metric_exporterJSONシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーターDevelopment
otlp_http_json_span_exporterJSONシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーターDevelopment
otlp_http_log_exporterprotobufシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーターDevelopment
otlp_http_metric_exporterprotobufシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーターDevelopment
otlp_http_span_exporterprotobufシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーターDevelopment
periodic_metric_reader組み込みのSDK定期エクスポート型メトリクスリーダーDevelopment
prometheus_http_text_metric_exporterデフォルトのテキスト形式を使ったHTTP経由のPrometheusメトリクスエクスポーターDevelopment
simple_log_processor組み込みのSDKシンプルログレコードプロセッサーDevelopment
simple_span_processor組み込みのSDKシンプルスパンプロセッサーDevelopment
zipkin_http_span_exporterHTTP経由のZipkinスパンエクスポーターDevelopment

メトリクス: otel.sdk.exporter.span.inflight

このメトリクスはrecommendedです。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
otel.sdk.exporter.span.inflightUpDownCounter{span}エクスポーターに渡されたが、まだエクスポートされていない(成功も失敗もしていない)スパン数。[1]Development

[1]: スパンは、エクスポーターに渡された時点からexport操作が完了するまでの間、inflightとして数えられます。エクスポーターが失敗したエクスポート試行をリトライする場合、スパンはすべてのリトライ試行とその間のバックオフの間、inflightのままです。

Attributes:

KeyStabilityRequirement LevelValue TypeDescriptionExample Values
otel.component.nameDevelopmentRecommendedstringOpenTelemetryコンポーネントのインスタンスを、それを含むSDKインスタンス内で一意に識別する名前。[1]otlp_grpc_span_exporter/0; custom-name
otel.component.typeDevelopmentRecommendedstringOpenTelemetryコンポーネントの種別を識別する名前。[2]batching_span_processor; com.example.MySpanExporter
server.addressStableRecommended when applicablestring逆引きDNSルックアップなしで利用可能な場合のサーバーのドメイン名。そうでない場合はIPアドレスまたはUNIXドメインソケット名。[3]example.com; 10.1.2.80; /tmp/my.sock
server.portStableRecommended when applicableintサーバーのポート番号。[4]80; 8080; 443

[1] otel.component.name: 実装は、アプリケーションやSDKの再起動をまたいでも、この属性のカーディナリティが低くなるようにすべきです(SHOULD)。たとえば、実装はこの属性の値にUUIDを使用してはなりません(MUST NOT)。

実装は、<otel.component.type>/<instance-counter>というパターン(例: batching_span_processor/0)に従うことで、これらの目標を達成してもかまいません(MAY)。ここでのotel.component.typeは、そのコンポーネントの対応する属性値を指します。

instance-counterの値は、コンポーネントによって自動的に割り当てられてもかまいません(MAY)。また、それを含むSDKインスタンス内での一意性が保証されなければなりません(MUST)。たとえば、<instance-counter>は、指定されたコンポーネント種別のインスタンスが起動するたびにインクリメントされる、単調増加するカウンター(0から開始)を使って実装されてもかまいません(MAY)。

この実装では、たとえば最初のBatching Span Processorのotel.component.namebatching_span_processor/0となり、2番目はbatching_span_processor/1となります。したがって、これらの値はアプリケーションの再起動時に再利用されます。

[2] otel.component.type: 標準化された値のいずれも当てはまらない場合、実装は、その言語で定義された型の名前を使用すべきです(SHOULD)。たとえばJavaでは、この場合に完全修飾クラス名を使用すべきです(SHOULD)。

[3] server.address: クライアント側から観測し、かつ中間サーバーを介して通信している場合、server.addressは、(利用可能であれば)プロキシなどの中間サーバーの背後にあるサーバーのアドレスを表すべきです(SHOULD)。

[4] server.port: クライアント側から観測し、かつ中間サーバーを介して通信している場合、server.portは、(利用可能であれば)プロキシなどの中間サーバーの背後にあるサーバーのポートを表すべきです(SHOULD)。


otel.component.typeには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。

ValueDescriptionStability
batching_log_processor組み込みのSDKバッチ処理ログレコードプロセッサーDevelopment
batching_span_processor組み込みのSDKバッチ処理スパンプロセッサーDevelopment
otlp_grpc_log_exporterprotobufシリアライゼーションを使ったgRPC経由のOTLPログレコードエクスポーターDevelopment
otlp_grpc_metric_exporterprotobufシリアライゼーションを使ったgRPC経由のOTLPメトリクスエクスポーターDevelopment
otlp_grpc_span_exporterprotobufシリアライゼーションを使ったgRPC経由のOTLPスパンエクスポーターDevelopment
otlp_http_json_log_exporterJSONシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーターDevelopment
otlp_http_json_metric_exporterJSONシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーターDevelopment
otlp_http_json_span_exporterJSONシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーターDevelopment
otlp_http_log_exporterprotobufシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーターDevelopment
otlp_http_metric_exporterprotobufシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーターDevelopment
otlp_http_span_exporterprotobufシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーターDevelopment
periodic_metric_reader組み込みのSDK定期エクスポート型メトリクスリーダーDevelopment
prometheus_http_text_metric_exporterデフォルトのテキスト形式を使ったHTTP経由のPrometheusメトリクスエクスポーターDevelopment
simple_log_processor組み込みのSDKシンプルログレコードプロセッサーDevelopment
simple_span_processor組み込みのSDKシンプルスパンプロセッサーDevelopment
zipkin_http_span_exporterHTTP経由のZipkinスパンエクスポーターDevelopment

メトリクス: otel.sdk.exporter.span.exported

このメトリクスはrecommendedです。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
otel.sdk.exporter.span.exportedCounter{span}エクスポートが(成功または失敗のいずれかで)完了したスパン数。[1]Development

[1]: エクスポートが成功した場合、error.typeを設定してはなりません(MUST NOT)。エクスポートが失敗した場合、error.typeには失敗の原因を含めなければなりません(MUST)。 部分的な成功のセマンティクスを持つエクスポーター(rejected_spansを持つOTLPなど)では、拒否されたスパンは失敗として数えられなければならず(MUST)、拒否されなかったスパンのみが成功として数えられます。 拒否理由が利用できない場合、error.typeの値としてrejectedを使用すべきです(SHOULD)。 エクスポーターが失敗したエクスポート試行をリトライする場合、export操作は最終試行が完了した時点でのみ完了したと見なされます。 各スパンは、export操作ごとに正確に1回数えられなければなりません(MUST)。リトライが続く中間の失敗した試行はカウンターをインクリメントしてはならず(MUST NOT)、error.typeは最終試行の原因を反映します。

Attributes:

KeyStabilityRequirement LevelValue TypeDescriptionExample Values
error.typeStableRecommendedstring操作が終了したエラーのクラスを記述します。[1]rejected; timeout; 500; java.net.UnknownHostException
otel.component.nameDevelopmentRecommendedstringOpenTelemetryコンポーネントのインスタンスを、それを含むSDKインスタンス内で一意に識別する名前。[2]otlp_grpc_span_exporter/0; custom-name
otel.component.typeDevelopmentRecommendedstringOpenTelemetryコンポーネントの種別を識別する名前。[3]batching_span_processor; com.example.MySpanExporter
server.addressStableRecommended when applicablestring逆引きDNSルックアップなしで利用可能な場合のサーバーのドメイン名。そうでない場合はIPアドレスまたはUNIXドメインソケット名。[4]example.com; 10.1.2.80; /tmp/my.sock
server.portStableRecommended when applicableintサーバーのポート番号。[5]80; 8080; 443

[1] error.type: error.typeは予測可能であるべきであり(SHOULD)、カーディナリティが低いべきです(SHOULD)。

error.typeに型(たとえば例外の型)を設定する場合、そのアーティファクト内でその型を識別する正規のクラス名を使用すべきです(SHOULD)。

記録されたエラー型が、失敗の分類にとって意味を持たないラッパーである場合、計装は内側のエラーの型を代わりに使用してもかまいません(MAY)。たとえばGoでは、ラッパー型が失敗の分類に役立たない場合、%wを使ってfmt.Errorfで作成されたエラーをアンラップしてもかまいません(MAY)。

計装は、報告するエラーの一覧を文書化すべきです(SHOULD)。

1つの計装ライブラリ内におけるerror.typeのカーディナリティは低くあるべきです(SHOULD)。複数の計装ライブラリやアプリケーションからのデータを集約するテレメトリーの利用者は、追加のフィルタが適用されない場合、クエリ実行時にerror.typeが高いカーディナリティを持つことを想定しておくべきです(should)。

操作が正常に完了した場合、計装はerror.typeを設定すべきではありません(SHOULD NOT)。

特定のドメインが独自のエラー識別子の集合(HTTPやRPCのステータスコードなど)を定義している場合、次のことが推奨されます(RECOMMENDED)。

  • ドメイン固有の属性を使用する。
  • そのドメイン固有の集合に定義されているかどうかにかかわらず、すべてのエラーを捕捉するようにerror.typeを設定する。

[2] otel.component.name: 実装は、アプリケーションやSDKの再起動をまたいでも、この属性のカーディナリティが低くなるようにすべきです(SHOULD)。たとえば、実装はこの属性の値にUUIDを使用してはなりません(MUST NOT)。

実装は、<otel.component.type>/<instance-counter>というパターン(例: batching_span_processor/0)に従うことで、これらの目標を達成してもかまいません(MAY)。ここでのotel.component.typeは、そのコンポーネントの対応する属性値を指します。

instance-counterの値は、コンポーネントによって自動的に割り当てられてもかまいません(MAY)。また、それを含むSDKインスタンス内での一意性が保証されなければなりません(MUST)。たとえば、<instance-counter>は、指定されたコンポーネント種別のインスタンスが起動するたびにインクリメントされる、単調増加するカウンター(0から開始)を使って実装されてもかまいません(MAY)。

この実装では、たとえば最初のBatching Span Processorのotel.component.namebatching_span_processor/0となり、2番目はbatching_span_processor/1となります。したがって、これらの値はアプリケーションの再起動時に再利用されます。

[3] otel.component.type: 標準化された値のいずれも当てはまらない場合、実装は、その言語で定義された型の名前を使用すべきです(SHOULD)。たとえばJavaでは、この場合に完全修飾クラス名を使用すべきです(SHOULD)。

[4] server.address: クライアント側から観測し、かつ中間サーバーを介して通信している場合、server.addressは、(利用可能であれば)プロキシなどの中間サーバーの背後にあるサーバーのアドレスを表すべきです(SHOULD)。

[5] server.port: クライアント側から観測し、かつ中間サーバーを介して通信している場合、server.portは、(利用可能であれば)プロキシなどの中間サーバーの背後にあるサーバーのポートを表すべきです(SHOULD)。


error.typeには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。

ValueDescriptionStability
_OTHER計装が独自の値を定義していない場合に使用するフォールバック用のエラー値。Stable

otel.component.typeには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。

ValueDescriptionStability
batching_log_processor組み込みのSDKバッチ処理ログレコードプロセッサーDevelopment
batching_span_processor組み込みのSDKバッチ処理スパンプロセッサーDevelopment
otlp_grpc_log_exporterprotobufシリアライゼーションを使ったgRPC経由のOTLPログレコードエクスポーターDevelopment
otlp_grpc_metric_exporterprotobufシリアライゼーションを使ったgRPC経由のOTLPメトリクスエクスポーターDevelopment
otlp_grpc_span_exporterprotobufシリアライゼーションを使ったgRPC経由のOTLPスパンエクスポーターDevelopment
otlp_http_json_log_exporterJSONシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーターDevelopment
otlp_http_json_metric_exporterJSONシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーターDevelopment
otlp_http_json_span_exporterJSONシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーターDevelopment
otlp_http_log_exporterprotobufシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーターDevelopment
otlp_http_metric_exporterprotobufシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーターDevelopment
otlp_http_span_exporterprotobufシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーターDevelopment
periodic_metric_reader組み込みのSDK定期エクスポート型メトリクスリーダーDevelopment
prometheus_http_text_metric_exporterデフォルトのテキスト形式を使ったHTTP経由のPrometheusメトリクスエクスポーターDevelopment
simple_log_processor組み込みのSDKシンプルログレコードプロセッサーDevelopment
simple_span_processor組み込みのSDKシンプルスパンプロセッサーDevelopment
zipkin_http_span_exporterHTTP経由のZipkinスパンエクスポーターDevelopment

ログメトリクス

メトリクス: otel.sdk.log.created

このメトリクスはrecommendedです。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
otel.sdk.log.createdCounter{log_record}有効なSDK Loggerに送信されたログ数。Development

メトリクス: otel.sdk.processor.log.queue.size

このメトリクスはrecommendedです。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
otel.sdk.processor.log.queue.sizeUpDownCounter{log_record}指定されたSDKログプロセッサーのインスタンスのキュー内にあるログレコード数。[1]Development

[1]: キューを使用するログレコードプロセッサーにのみ適用されます(SDK Batching Log Record Processorなど)。

Attributes:

KeyStabilityRequirement LevelValue TypeDescriptionExample Values
otel.component.nameDevelopmentRecommendedstringOpenTelemetryコンポーネントのインスタンスを、それを含むSDKインスタンス内で一意に識別する名前。[1]otlp_grpc_span_exporter/0; custom-name
otel.component.typeDevelopmentRecommendedstringOpenTelemetryコンポーネントの種別を識別する名前。[2]batching_span_processor; com.example.MySpanExporter

[1] otel.component.name: 実装は、アプリケーションやSDKの再起動をまたいでも、この属性のカーディナリティが低くなるようにすべきです(SHOULD)。たとえば、実装はこの属性の値にUUIDを使用してはなりません(MUST NOT)。

実装は、<otel.component.type>/<instance-counter>というパターン(例: batching_span_processor/0)に従うことで、これらの目標を達成してもかまいません(MAY)。ここでのotel.component.typeは、そのコンポーネントの対応する属性値を指します。

instance-counterの値は、コンポーネントによって自動的に割り当てられてもかまいません(MAY)。また、それを含むSDKインスタンス内での一意性が保証されなければなりません(MUST)。たとえば、<instance-counter>は、指定されたコンポーネント種別のインスタンスが起動するたびにインクリメントされる、単調増加するカウンター(0から開始)を使って実装されてもかまいません(MAY)。

この実装では、たとえば最初のBatching Span Processorのotel.component.namebatching_span_processor/0となり、2番目はbatching_span_processor/1となります。したがって、これらの値はアプリケーションの再起動時に再利用されます。

[2] otel.component.type: 標準化された値のいずれも当てはまらない場合、実装は、その言語で定義された型の名前を使用すべきです(SHOULD)。たとえばJavaでは、この場合に完全修飾クラス名を使用すべきです(SHOULD)。


otel.component.typeには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。

ValueDescriptionStability
batching_log_processor組み込みのSDKバッチ処理ログレコードプロセッサーDevelopment
batching_span_processor組み込みのSDKバッチ処理スパンプロセッサーDevelopment
otlp_grpc_log_exporterprotobufシリアライゼーションを使ったgRPC経由のOTLPログレコードエクスポーターDevelopment
otlp_grpc_metric_exporterprotobufシリアライゼーションを使ったgRPC経由のOTLPメトリクスエクスポーターDevelopment
otlp_grpc_span_exporterprotobufシリアライゼーションを使ったgRPC経由のOTLPスパンエクスポーターDevelopment
otlp_http_json_log_exporterJSONシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーターDevelopment
otlp_http_json_metric_exporterJSONシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーターDevelopment
otlp_http_json_span_exporterJSONシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーターDevelopment
otlp_http_log_exporterprotobufシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーターDevelopment
otlp_http_metric_exporterprotobufシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーターDevelopment
otlp_http_span_exporterprotobufシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーターDevelopment
periodic_metric_reader組み込みのSDK定期エクスポート型メトリクスリーダーDevelopment
prometheus_http_text_metric_exporterデフォルトのテキスト形式を使ったHTTP経由のPrometheusメトリクスエクスポーターDevelopment
simple_log_processor組み込みのSDKシンプルログレコードプロセッサーDevelopment
simple_span_processor組み込みのSDKシンプルスパンプロセッサーDevelopment
zipkin_http_span_exporterHTTP経由のZipkinスパンエクスポーターDevelopment

メトリクス: otel.sdk.processor.log.queue.capacity

このメトリクスはrecommendedです。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
otel.sdk.processor.log.queue.capacityUpDownCounter{log_record}指定されたSDK Log Recordプロセッサーのインスタンスのキューが保持できる最大ログレコード数。[1]Development

[1]: キューを使用するLog Recordプロセッサーにのみ適用されます(SDK Batching Log Record Processorなど)。

Attributes:

KeyStabilityRequirement LevelValue TypeDescriptionExample Values
otel.component.nameDevelopmentRecommendedstringOpenTelemetryコンポーネントのインスタンスを、それを含むSDKインスタンス内で一意に識別する名前。[1]otlp_grpc_span_exporter/0; custom-name
otel.component.typeDevelopmentRecommendedstringOpenTelemetryコンポーネントの種別を識別する名前。[2]batching_span_processor; com.example.MySpanExporter

[1] otel.component.name: 実装は、アプリケーションやSDKの再起動をまたいでも、この属性のカーディナリティが低くなるようにすべきです(SHOULD)。たとえば、実装はこの属性の値にUUIDを使用してはなりません(MUST NOT)。

実装は、<otel.component.type>/<instance-counter>というパターン(例: batching_span_processor/0)に従うことで、これらの目標を達成してもかまいません(MAY)。ここでのotel.component.typeは、そのコンポーネントの対応する属性値を指します。

instance-counterの値は、コンポーネントによって自動的に割り当てられてもかまいません(MAY)。また、それを含むSDKインスタンス内での一意性が保証されなければなりません(MUST)。たとえば、<instance-counter>は、指定されたコンポーネント種別のインスタンスが起動するたびにインクリメントされる、単調増加するカウンター(0から開始)を使って実装されてもかまいません(MAY)。

この実装では、たとえば最初のBatching Span Processorのotel.component.namebatching_span_processor/0となり、2番目はbatching_span_processor/1となります。したがって、これらの値はアプリケーションの再起動時に再利用されます。

[2] otel.component.type: 標準化された値のいずれも当てはまらない場合、実装は、その言語で定義された型の名前を使用すべきです(SHOULD)。たとえばJavaでは、この場合に完全修飾クラス名を使用すべきです(SHOULD)。


otel.component.typeには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。

ValueDescriptionStability
batching_log_processor組み込みのSDKバッチ処理ログレコードプロセッサーDevelopment
batching_span_processor組み込みのSDKバッチ処理スパンプロセッサーDevelopment
otlp_grpc_log_exporterprotobufシリアライゼーションを使ったgRPC経由のOTLPログレコードエクスポーターDevelopment
otlp_grpc_metric_exporterprotobufシリアライゼーションを使ったgRPC経由のOTLPメトリクスエクスポーターDevelopment
otlp_grpc_span_exporterprotobufシリアライゼーションを使ったgRPC経由のOTLPスパンエクスポーターDevelopment
otlp_http_json_log_exporterJSONシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーターDevelopment
otlp_http_json_metric_exporterJSONシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーターDevelopment
otlp_http_json_span_exporterJSONシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーターDevelopment
otlp_http_log_exporterprotobufシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーターDevelopment
otlp_http_metric_exporterprotobufシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーターDevelopment
otlp_http_span_exporterprotobufシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーターDevelopment
periodic_metric_reader組み込みのSDK定期エクスポート型メトリクスリーダーDevelopment
prometheus_http_text_metric_exporterデフォルトのテキスト形式を使ったHTTP経由のPrometheusメトリクスエクスポーターDevelopment
simple_log_processor組み込みのSDKシンプルログレコードプロセッサーDevelopment
simple_span_processor組み込みのSDKシンプルスパンプロセッサーDevelopment
zipkin_http_span_exporterHTTP経由のZipkinスパンエクスポーターDevelopment

メトリクス: otel.sdk.processor.log.processed

このメトリクスはrecommendedです。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
otel.sdk.processor.log.processedCounter{log_record}処理が(成功または失敗のいずれかで)完了したログレコード数。[1]Development

[1]: 処理が成功した場合、error.typeを設定してはなりません(MUST NOT)。処理が失敗した場合、error.typeには失敗の原因を含めなければなりません(MUST)。 SDK Batching Log Record Processorは、キューが満杯のためにドロップされたログレコードについて、error.typeの値としてqueue_fullを使用しなければなりません(MUST)。 プロセッサーが、すでにシャットダウンされているためにドロップされたログレコードを報告する場合、error.typealready_shutdownでなければなりません(MUST)。 プロセッサーがこのようなログレコードをドロップするかどうか、およびいつドロップするかは、このメトリクスではなくSDK仕様によって規定されます。 SDKのSimple Log Record ProcessorとBatching Log Record Processorでは、プロセッサーがexport操作を呼び出した時点で、ログレコードは正常に処理されたものとして数えられなければなりません(MUST)。バッチ処理プロセッサーの場合、エクスポーターに渡されたバッチ内のすべてのログレコードがその時点で数えられます。プロセッサーのキューに受け入れられたがまだエクスポーターに渡されていないログレコードは、処理されたことになりません。 実装は、export操作が完了するまでこのカウントを遅延させてはならず(MUST NOT)、export操作の結果(呼び出し自体の即時失敗を含む)は、このメトリクスに影響を与えてはなりません(MUST NOT)。 エクスポートの結果は、otel.sdk.exporter.log.exportedによって報告されます。

Attributes:

KeyStabilityRequirement LevelValue TypeDescriptionExample Values
error.typeStableRecommendedstring失敗理由の低カーディナリティな記述。[1]queue_full; already_shutdown
otel.component.nameDevelopmentRecommendedstringOpenTelemetryコンポーネントのインスタンスを、それを含むSDKインスタンス内で一意に識別する名前。[2]otlp_grpc_span_exporter/0; custom-name
otel.component.typeDevelopmentRecommendedstringOpenTelemetryコンポーネントの種別を識別する名前。[3]batching_span_processor; com.example.MySpanExporter

[1] error.type: error.typeは予測可能であるべきであり(SHOULD)、カーディナリティが低いべきです(SHOULD)。

error.typeに型(たとえば例外の型)を設定する場合、そのアーティファクト内でその型を識別する正規のクラス名を使用すべきです(SHOULD)。

記録されたエラー型が、失敗の分類にとって意味を持たないラッパーである場合、計装は内側のエラーの型を代わりに使用してもかまいません(MAY)。たとえばGoでは、ラッパー型が失敗の分類に役立たない場合、%wを使ってfmt.Errorfで作成されたエラーをアンラップしてもかまいません(MAY)。

計装は、報告するエラーの一覧を文書化すべきです(SHOULD)。

1つの計装ライブラリ内におけるerror.typeのカーディナリティは低くあるべきです(SHOULD)。複数の計装ライブラリやアプリケーションからのデータを集約するテレメトリーの利用者は、追加のフィルタが適用されない場合、クエリ実行時にerror.typeが高いカーディナリティを持つことを想定しておくべきです(should)。

操作が正常に完了した場合、計装はerror.typeを設定すべきではありません(SHOULD NOT)。

特定のドメインが独自のエラー識別子の集合(HTTPやRPCのステータスコードなど)を定義している場合、次のことが推奨されます(RECOMMENDED)。

  • ドメイン固有の属性を使用する。
  • そのドメイン固有の集合に定義されているかどうかにかかわらず、すべてのエラーを捕捉するようにerror.typeを設定する。

[2] otel.component.name: 実装は、アプリケーションやSDKの再起動をまたいでも、この属性のカーディナリティが低くなるようにすべきです(SHOULD)。たとえば、実装はこの属性の値にUUIDを使用してはなりません(MUST NOT)。

実装は、<otel.component.type>/<instance-counter>というパターン(例: batching_span_processor/0)に従うことで、これらの目標を達成してもかまいません(MAY)。ここでのotel.component.typeは、そのコンポーネントの対応する属性値を指します。

instance-counterの値は、コンポーネントによって自動的に割り当てられてもかまいません(MAY)。また、それを含むSDKインスタンス内での一意性が保証されなければなりません(MUST)。たとえば、<instance-counter>は、指定されたコンポーネント種別のインスタンスが起動するたびにインクリメントされる、単調増加するカウンター(0から開始)を使って実装されてもかまいません(MAY)。

この実装では、たとえば最初のBatching Span Processorのotel.component.namebatching_span_processor/0となり、2番目はbatching_span_processor/1となります。したがって、これらの値はアプリケーションの再起動時に再利用されます。

[3] otel.component.type: 標準化された値のいずれも当てはまらない場合、実装は、その言語で定義された型の名前を使用すべきです(SHOULD)。たとえばJavaでは、この場合に完全修飾クラス名を使用すべきです(SHOULD)。


error.typeには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。

ValueDescriptionStability
_OTHER計装が独自の値を定義していない場合に使用するフォールバック用のエラー値。Stable

otel.component.typeには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。

ValueDescriptionStability
batching_log_processor組み込みのSDKバッチ処理ログレコードプロセッサーDevelopment
batching_span_processor組み込みのSDKバッチ処理スパンプロセッサーDevelopment
otlp_grpc_log_exporterprotobufシリアライゼーションを使ったgRPC経由のOTLPログレコードエクスポーターDevelopment
otlp_grpc_metric_exporterprotobufシリアライゼーションを使ったgRPC経由のOTLPメトリクスエクスポーターDevelopment
otlp_grpc_span_exporterprotobufシリアライゼーションを使ったgRPC経由のOTLPスパンエクスポーターDevelopment
otlp_http_json_log_exporterJSONシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーターDevelopment
otlp_http_json_metric_exporterJSONシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーターDevelopment
otlp_http_json_span_exporterJSONシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーターDevelopment
otlp_http_log_exporterprotobufシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーターDevelopment
otlp_http_metric_exporterprotobufシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーターDevelopment
otlp_http_span_exporterprotobufシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーターDevelopment
periodic_metric_reader組み込みのSDK定期エクスポート型メトリクスリーダーDevelopment
prometheus_http_text_metric_exporterデフォルトのテキスト形式を使ったHTTP経由のPrometheusメトリクスエクスポーターDevelopment
simple_log_processor組み込みのSDKシンプルログレコードプロセッサーDevelopment
simple_span_processor組み込みのSDKシンプルスパンプロセッサーDevelopment
zipkin_http_span_exporterHTTP経由のZipkinスパンエクスポーターDevelopment

メトリクス: otel.sdk.exporter.log.inflight

このメトリクスはrecommendedです。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
otel.sdk.exporter.log.inflightUpDownCounter{log_record}エクスポーターに渡されたが、まだエクスポートされていない(成功も失敗もしていない)ログレコード数。[1]Development

[1]: ログレコードは、エクスポーターに渡された時点からexport操作が完了するまでの間、inflightとして数えられます。エクスポーターが失敗したエクスポート試行をリトライする場合、ログレコードはすべてのリトライ試行とその間のバックオフの間、inflightのままです。

Attributes:

KeyStabilityRequirement LevelValue TypeDescriptionExample Values
otel.component.nameDevelopmentRecommendedstringOpenTelemetryコンポーネントのインスタンスを、それを含むSDKインスタンス内で一意に識別する名前。[1]otlp_grpc_span_exporter/0; custom-name
otel.component.typeDevelopmentRecommendedstringOpenTelemetryコンポーネントの種別を識別する名前。[2]batching_span_processor; com.example.MySpanExporter
server.addressStableRecommended when applicablestring逆引きDNSルックアップなしで利用可能な場合のサーバーのドメイン名。そうでない場合はIPアドレスまたはUNIXドメインソケット名。[3]example.com; 10.1.2.80; /tmp/my.sock
server.portStableRecommended when applicableintサーバーのポート番号。[4]80; 8080; 443

[1] otel.component.name: 実装は、アプリケーションやSDKの再起動をまたいでも、この属性のカーディナリティが低くなるようにすべきです(SHOULD)。たとえば、実装はこの属性の値にUUIDを使用してはなりません(MUST NOT)。

実装は、<otel.component.type>/<instance-counter>というパターン(例: batching_span_processor/0)に従うことで、これらの目標を達成してもかまいません(MAY)。ここでのotel.component.typeは、そのコンポーネントの対応する属性値を指します。

instance-counterの値は、コンポーネントによって自動的に割り当てられてもかまいません(MAY)。また、それを含むSDKインスタンス内での一意性が保証されなければなりません(MUST)。たとえば、<instance-counter>は、指定されたコンポーネント種別のインスタンスが起動するたびにインクリメントされる、単調増加するカウンター(0から開始)を使って実装されてもかまいません(MAY)。

この実装では、たとえば最初のBatching Span Processorのotel.component.namebatching_span_processor/0となり、2番目はbatching_span_processor/1となります。したがって、これらの値はアプリケーションの再起動時に再利用されます。

[2] otel.component.type: 標準化された値のいずれも当てはまらない場合、実装は、その言語で定義された型の名前を使用すべきです(SHOULD)。たとえばJavaでは、この場合に完全修飾クラス名を使用すべきです(SHOULD)。

[3] server.address: クライアント側から観測し、かつ中間サーバーを介して通信している場合、server.addressは、(利用可能であれば)プロキシなどの中間サーバーの背後にあるサーバーのアドレスを表すべきです(SHOULD)。

[4] server.port: クライアント側から観測し、かつ中間サーバーを介して通信している場合、server.portは、(利用可能であれば)プロキシなどの中間サーバーの背後にあるサーバーのポートを表すべきです(SHOULD)。


otel.component.typeには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。

ValueDescriptionStability
batching_log_processor組み込みのSDKバッチ処理ログレコードプロセッサーDevelopment
batching_span_processor組み込みのSDKバッチ処理スパンプロセッサーDevelopment
otlp_grpc_log_exporterprotobufシリアライゼーションを使ったgRPC経由のOTLPログレコードエクスポーターDevelopment
otlp_grpc_metric_exporterprotobufシリアライゼーションを使ったgRPC経由のOTLPメトリクスエクスポーターDevelopment
otlp_grpc_span_exporterprotobufシリアライゼーションを使ったgRPC経由のOTLPスパンエクスポーターDevelopment
otlp_http_json_log_exporterJSONシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーターDevelopment
otlp_http_json_metric_exporterJSONシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーターDevelopment
otlp_http_json_span_exporterJSONシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーターDevelopment
otlp_http_log_exporterprotobufシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーターDevelopment
otlp_http_metric_exporterprotobufシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーターDevelopment
otlp_http_span_exporterprotobufシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーターDevelopment
periodic_metric_reader組み込みのSDK定期エクスポート型メトリクスリーダーDevelopment
prometheus_http_text_metric_exporterデフォルトのテキスト形式を使ったHTTP経由のPrometheusメトリクスエクスポーターDevelopment
simple_log_processor組み込みのSDKシンプルログレコードプロセッサーDevelopment
simple_span_processor組み込みのSDKシンプルスパンプロセッサーDevelopment
zipkin_http_span_exporterHTTP経由のZipkinスパンエクスポーターDevelopment

メトリクス: otel.sdk.exporter.log.exported

このメトリクスはrecommendedです。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
otel.sdk.exporter.log.exportedCounter{log_record}エクスポートが(成功または失敗のいずれかで)完了したログレコード数。[1]Development

[1]: エクスポートが成功した場合、error.typeを設定してはなりません(MUST NOT)。エクスポートが失敗した場合、error.typeには失敗の原因を含めなければなりません(MUST)。 部分的な成功のセマンティクスを持つエクスポーター(rejected_log_recordsを持つOTLPなど)では、拒否されたログレコードは失敗として数えられなければならず(MUST)、拒否されなかったログレコードのみが成功として数えられます。 拒否理由が利用できない場合、error.typeの値としてrejectedを使用すべきです(SHOULD)。 エクスポーターが失敗したエクスポート試行をリトライする場合、export操作は最終試行が完了した時点でのみ完了したと見なされます。 各ログレコードは、export操作ごとに正確に1回数えられなければなりません(MUST)。リトライが続く中間の失敗した試行はカウンターをインクリメントしてはならず(MUST NOT)、error.typeは最終試行の原因を反映します。

Attributes:

KeyStabilityRequirement LevelValue TypeDescriptionExample Values
error.typeStableRecommendedstring操作が終了したエラーのクラスを記述します。[1]rejected; timeout; 500; java.net.UnknownHostException
otel.component.nameDevelopmentRecommendedstringOpenTelemetryコンポーネントのインスタンスを、それを含むSDKインスタンス内で一意に識別する名前。[2]otlp_grpc_span_exporter/0; custom-name
otel.component.typeDevelopmentRecommendedstringOpenTelemetryコンポーネントの種別を識別する名前。[3]batching_span_processor; com.example.MySpanExporter
server.addressStableRecommended when applicablestring逆引きDNSルックアップなしで利用可能な場合のサーバーのドメイン名。そうでない場合はIPアドレスまたはUNIXドメインソケット名。[4]example.com; 10.1.2.80; /tmp/my.sock
server.portStableRecommended when applicableintサーバーのポート番号。[5]80; 8080; 443

[1] error.type: error.typeは予測可能であるべきであり(SHOULD)、カーディナリティが低いべきです(SHOULD)。

error.typeに型(たとえば例外の型)を設定する場合、そのアーティファクト内でその型を識別する正規のクラス名を使用すべきです(SHOULD)。

記録されたエラー型が、失敗の分類にとって意味を持たないラッパーである場合、計装は内側のエラーの型を代わりに使用してもかまいません(MAY)。たとえばGoでは、ラッパー型が失敗の分類に役立たない場合、%wを使ってfmt.Errorfで作成されたエラーをアンラップしてもかまいません(MAY)。

計装は、報告するエラーの一覧を文書化すべきです(SHOULD)。

1つの計装ライブラリ内におけるerror.typeのカーディナリティは低くあるべきです(SHOULD)。複数の計装ライブラリやアプリケーションからのデータを集約するテレメトリーの利用者は、追加のフィルタが適用されない場合、クエリ実行時にerror.typeが高いカーディナリティを持つことを想定しておくべきです(should)。

操作が正常に完了した場合、計装はerror.typeを設定すべきではありません(SHOULD NOT)。

特定のドメインが独自のエラー識別子の集合(HTTPやRPCのステータスコードなど)を定義している場合、次のことが推奨されます(RECOMMENDED)。

  • ドメイン固有の属性を使用する。
  • そのドメイン固有の集合に定義されているかどうかにかかわらず、すべてのエラーを捕捉するようにerror.typeを設定する。

[2] otel.component.name: 実装は、アプリケーションやSDKの再起動をまたいでも、この属性のカーディナリティが低くなるようにすべきです(SHOULD)。たとえば、実装はこの属性の値にUUIDを使用してはなりません(MUST NOT)。

実装は、<otel.component.type>/<instance-counter>というパターン(例: batching_span_processor/0)に従うことで、これらの目標を達成してもかまいません(MAY)。ここでのotel.component.typeは、そのコンポーネントの対応する属性値を指します。

instance-counterの値は、コンポーネントによって自動的に割り当てられてもかまいません(MAY)。また、それを含むSDKインスタンス内での一意性が保証されなければなりません(MUST)。たとえば、<instance-counter>は、指定されたコンポーネント種別のインスタンスが起動するたびにインクリメントされる、単調増加するカウンター(0から開始)を使って実装されてもかまいません(MAY)。

この実装では、たとえば最初のBatching Span Processorのotel.component.namebatching_span_processor/0となり、2番目はbatching_span_processor/1となります。したがって、これらの値はアプリケーションの再起動時に再利用されます。

[3] otel.component.type: 標準化された値のいずれも当てはまらない場合、実装は、その言語で定義された型の名前を使用すべきです(SHOULD)。たとえばJavaでは、この場合に完全修飾クラス名を使用すべきです(SHOULD)。

[4] server.address: クライアント側から観測し、かつ中間サーバーを介して通信している場合、server.addressは、(利用可能であれば)プロキシなどの中間サーバーの背後にあるサーバーのアドレスを表すべきです(SHOULD)。

[5] server.port: クライアント側から観測し、かつ中間サーバーを介して通信している場合、server.portは、(利用可能であれば)プロキシなどの中間サーバーの背後にあるサーバーのポートを表すべきです(SHOULD)。


error.typeには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。

ValueDescriptionStability
_OTHER計装が独自の値を定義していない場合に使用するフォールバック用のエラー値。Stable

otel.component.typeには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。

ValueDescriptionStability
batching_log_processor組み込みのSDKバッチ処理ログレコードプロセッサーDevelopment
batching_span_processor組み込みのSDKバッチ処理スパンプロセッサーDevelopment
otlp_grpc_log_exporterprotobufシリアライゼーションを使ったgRPC経由のOTLPログレコードエクスポーターDevelopment
otlp_grpc_metric_exporterprotobufシリアライゼーションを使ったgRPC経由のOTLPメトリクスエクスポーターDevelopment
otlp_grpc_span_exporterprotobufシリアライゼーションを使ったgRPC経由のOTLPスパンエクスポーターDevelopment
otlp_http_json_log_exporterJSONシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーターDevelopment
otlp_http_json_metric_exporterJSONシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーターDevelopment
otlp_http_json_span_exporterJSONシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーターDevelopment
otlp_http_log_exporterprotobufシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーターDevelopment
otlp_http_metric_exporterprotobufシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーターDevelopment
otlp_http_span_exporterprotobufシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーターDevelopment
periodic_metric_reader組み込みのSDK定期エクスポート型メトリクスリーダーDevelopment
prometheus_http_text_metric_exporterデフォルトのテキスト形式を使ったHTTP経由のPrometheusメトリクスエクスポーターDevelopment
simple_log_processor組み込みのSDKシンプルログレコードプロセッサーDevelopment
simple_span_processor組み込みのSDKシンプルスパンプロセッサーDevelopment
zipkin_http_span_exporterHTTP経由のZipkinスパンエクスポーターDevelopment

メトリクスのメトリクス

メトリクス: otel.sdk.exporter.metric_data_point.inflight

このメトリクスはrecommendedです。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
otel.sdk.exporter.metric_data_point.inflightUpDownCounter{data_point}エクスポーターに渡されたが、まだエクスポートされていない(成功も失敗もしていない)メトリクスデータポイント数。[1]Development

[1]: メトリクスデータポイントは、エクスポーターに渡された時点からexport操作が完了するまでの間、inflightとして数えられます。エクスポーターが失敗したエクスポート試行をリトライする場合、メトリクスデータポイントはすべてのリトライ試行とその間のバックオフの間、inflightのままです。

Attributes:

KeyStabilityRequirement LevelValue TypeDescriptionExample Values
otel.component.nameDevelopmentRecommendedstringOpenTelemetryコンポーネントのインスタンスを、それを含むSDKインスタンス内で一意に識別する名前。[1]otlp_grpc_span_exporter/0; custom-name
otel.component.typeDevelopmentRecommendedstringOpenTelemetryコンポーネントの種別を識別する名前。[2]batching_span_processor; com.example.MySpanExporter
server.addressStableRecommended when applicablestring逆引きDNSルックアップなしで利用可能な場合のサーバーのドメイン名。そうでない場合はIPアドレスまたはUNIXドメインソケット名。[3]example.com; 10.1.2.80; /tmp/my.sock
server.portStableRecommended when applicableintサーバーのポート番号。[4]80; 8080; 443

[1] otel.component.name: 実装は、アプリケーションやSDKの再起動をまたいでも、この属性のカーディナリティが低くなるようにすべきです(SHOULD)。たとえば、実装はこの属性の値にUUIDを使用してはなりません(MUST NOT)。

実装は、<otel.component.type>/<instance-counter>というパターン(例: batching_span_processor/0)に従うことで、これらの目標を達成してもかまいません(MAY)。ここでのotel.component.typeは、そのコンポーネントの対応する属性値を指します。

instance-counterの値は、コンポーネントによって自動的に割り当てられてもかまいません(MAY)。また、それを含むSDKインスタンス内での一意性が保証されなければなりません(MUST)。たとえば、<instance-counter>は、指定されたコンポーネント種別のインスタンスが起動するたびにインクリメントされる、単調増加するカウンター(0から開始)を使って実装されてもかまいません(MAY)。

この実装では、たとえば最初のBatching Span Processorのotel.component.namebatching_span_processor/0となり、2番目はbatching_span_processor/1となります。したがって、これらの値はアプリケーションの再起動時に再利用されます。

[2] otel.component.type: 標準化された値のいずれも当てはまらない場合、実装は、その言語で定義された型の名前を使用すべきです(SHOULD)。たとえばJavaでは、この場合に完全修飾クラス名を使用すべきです(SHOULD)。

[3] server.address: クライアント側から観測し、かつ中間サーバーを介して通信している場合、server.addressは、(利用可能であれば)プロキシなどの中間サーバーの背後にあるサーバーのアドレスを表すべきです(SHOULD)。

[4] server.port: クライアント側から観測し、かつ中間サーバーを介して通信している場合、server.portは、(利用可能であれば)プロキシなどの中間サーバーの背後にあるサーバーのポートを表すべきです(SHOULD)。


otel.component.typeには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。

ValueDescriptionStability
batching_log_processor組み込みのSDKバッチ処理ログレコードプロセッサーDevelopment
batching_span_processor組み込みのSDKバッチ処理スパンプロセッサーDevelopment
otlp_grpc_log_exporterprotobufシリアライゼーションを使ったgRPC経由のOTLPログレコードエクスポーターDevelopment
otlp_grpc_metric_exporterprotobufシリアライゼーションを使ったgRPC経由のOTLPメトリクスエクスポーターDevelopment
otlp_grpc_span_exporterprotobufシリアライゼーションを使ったgRPC経由のOTLPスパンエクスポーターDevelopment
otlp_http_json_log_exporterJSONシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーターDevelopment
otlp_http_json_metric_exporterJSONシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーターDevelopment
otlp_http_json_span_exporterJSONシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーターDevelopment
otlp_http_log_exporterprotobufシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーターDevelopment
otlp_http_metric_exporterprotobufシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーターDevelopment
otlp_http_span_exporterprotobufシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーターDevelopment
periodic_metric_reader組み込みのSDK定期エクスポート型メトリクスリーダーDevelopment
prometheus_http_text_metric_exporterデフォルトのテキスト形式を使ったHTTP経由のPrometheusメトリクスエクスポーターDevelopment
simple_log_processor組み込みのSDKシンプルログレコードプロセッサーDevelopment
simple_span_processor組み込みのSDKシンプルスパンプロセッサーDevelopment
zipkin_http_span_exporterHTTP経由のZipkinスパンエクスポーターDevelopment

メトリクス: otel.sdk.exporter.metric_data_point.exported

このメトリクスはrecommendedです。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
otel.sdk.exporter.metric_data_point.exportedCounter{data_point}エクスポートが(成功または失敗のいずれかで)完了したメトリクスデータポイント数。[1]Development

[1]: エクスポートが成功した場合、error.typeを設定してはなりません(MUST NOT)。エクスポートが失敗した場合、error.typeには失敗の原因を含めなければなりません(MUST)。 部分的な成功のセマンティクスを持つエクスポーター(rejected_data_pointsを持つOTLPなど)では、拒否されたデータポイントは失敗として数えられなければならず(MUST)、拒否されなかったデータポイントのみが成功として数えられます。 拒否理由が利用できない場合、error.typeの値としてrejectedを使用すべきです(SHOULD)。 エクスポーターが失敗したエクスポート試行をリトライする場合、export操作は最終試行が完了した時点でのみ完了したと見なされます。 各メトリクスデータポイントは、export操作ごとに正確に1回数えられなければなりません(MUST)。リトライが続く中間の失敗した試行はカウンターをインクリメントしてはならず(MUST NOT)、error.typeは最終試行の原因を反映します。

Attributes:

KeyStabilityRequirement LevelValue TypeDescriptionExample Values
error.typeStableRecommendedstring操作が終了したエラーのクラスを記述します。[1]rejected; timeout; 500; java.net.UnknownHostException
otel.component.nameDevelopmentRecommendedstringOpenTelemetryコンポーネントのインスタンスを、それを含むSDKインスタンス内で一意に識別する名前。[2]otlp_grpc_span_exporter/0; custom-name
otel.component.typeDevelopmentRecommendedstringOpenTelemetryコンポーネントの種別を識別する名前。[3]batching_span_processor; com.example.MySpanExporter
server.addressStableRecommended when applicablestring逆引きDNSルックアップなしで利用可能な場合のサーバーのドメイン名。そうでない場合はIPアドレスまたはUNIXドメインソケット名。[4]example.com; 10.1.2.80; /tmp/my.sock
server.portStableRecommended when applicableintサーバーのポート番号。[5]80; 8080; 443

[1] error.type: error.typeは予測可能であるべきであり(SHOULD)、カーディナリティが低いべきです(SHOULD)。

error.typeに型(たとえば例外の型)を設定する場合、そのアーティファクト内でその型を識別する正規のクラス名を使用すべきです(SHOULD)。

記録されたエラー型が、失敗の分類にとって意味を持たないラッパーである場合、計装は内側のエラーの型を代わりに使用してもかまいません(MAY)。たとえばGoでは、ラッパー型が失敗の分類に役立たない場合、%wを使ってfmt.Errorfで作成されたエラーをアンラップしてもかまいません(MAY)。

計装は、報告するエラーの一覧を文書化すべきです(SHOULD)。

1つの計装ライブラリ内におけるerror.typeのカーディナリティは低くあるべきです(SHOULD)。複数の計装ライブラリやアプリケーションからのデータを集約するテレメトリーの利用者は、追加のフィルタが適用されない場合、クエリ実行時にerror.typeが高いカーディナリティを持つことを想定しておくべきです(should)。

操作が正常に完了した場合、計装はerror.typeを設定すべきではありません(SHOULD NOT)。

特定のドメインが独自のエラー識別子の集合(HTTPやRPCのステータスコードなど)を定義している場合、次のことが推奨されます(RECOMMENDED)。

  • ドメイン固有の属性を使用する。
  • そのドメイン固有の集合に定義されているかどうかにかかわらず、すべてのエラーを捕捉するようにerror.typeを設定する。

[2] otel.component.name: 実装は、アプリケーションやSDKの再起動をまたいでも、この属性のカーディナリティが低くなるようにすべきです(SHOULD)。たとえば、実装はこの属性の値にUUIDを使用してはなりません(MUST NOT)。

実装は、<otel.component.type>/<instance-counter>というパターン(例: batching_span_processor/0)に従うことで、これらの目標を達成してもかまいません(MAY)。ここでのotel.component.typeは、そのコンポーネントの対応する属性値を指します。

instance-counterの値は、コンポーネントによって自動的に割り当てられてもかまいません(MAY)。また、それを含むSDKインスタンス内での一意性が保証されなければなりません(MUST)。たとえば、<instance-counter>は、指定されたコンポーネント種別のインスタンスが起動するたびにインクリメントされる、単調増加するカウンター(0から開始)を使って実装されてもかまいません(MAY)。

この実装では、たとえば最初のBatching Span Processorのotel.component.namebatching_span_processor/0となり、2番目はbatching_span_processor/1となります。したがって、これらの値はアプリケーションの再起動時に再利用されます。

[3] otel.component.type: 標準化された値のいずれも当てはまらない場合、実装は、その言語で定義された型の名前を使用すべきです(SHOULD)。たとえばJavaでは、この場合に完全修飾クラス名を使用すべきです(SHOULD)。

[4] server.address: クライアント側から観測し、かつ中間サーバーを介して通信している場合、server.addressは、(利用可能であれば)プロキシなどの中間サーバーの背後にあるサーバーのアドレスを表すべきです(SHOULD)。

[5] server.port: クライアント側から観測し、かつ中間サーバーを介して通信している場合、server.portは、(利用可能であれば)プロキシなどの中間サーバーの背後にあるサーバーのポートを表すべきです(SHOULD)。


error.typeには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。

ValueDescriptionStability
_OTHER計装が独自の値を定義していない場合に使用するフォールバック用のエラー値。Stable

otel.component.typeには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。

ValueDescriptionStability
batching_log_processor組み込みのSDKバッチ処理ログレコードプロセッサーDevelopment
batching_span_processor組み込みのSDKバッチ処理スパンプロセッサーDevelopment
otlp_grpc_log_exporterprotobufシリアライゼーションを使ったgRPC経由のOTLPログレコードエクスポーターDevelopment
otlp_grpc_metric_exporterprotobufシリアライゼーションを使ったgRPC経由のOTLPメトリクスエクスポーターDevelopment
otlp_grpc_span_exporterprotobufシリアライゼーションを使ったgRPC経由のOTLPスパンエクスポーターDevelopment
otlp_http_json_log_exporterJSONシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーターDevelopment
otlp_http_json_metric_exporterJSONシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーターDevelopment
otlp_http_json_span_exporterJSONシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーターDevelopment
otlp_http_log_exporterprotobufシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーターDevelopment
otlp_http_metric_exporterprotobufシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーターDevelopment
otlp_http_span_exporterprotobufシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーターDevelopment
periodic_metric_reader組み込みのSDK定期エクスポート型メトリクスリーダーDevelopment
prometheus_http_text_metric_exporterデフォルトのテキスト形式を使ったHTTP経由のPrometheusメトリクスエクスポーターDevelopment
simple_log_processor組み込みのSDKシンプルログレコードプロセッサーDevelopment
simple_span_processor組み込みのSDKシンプルスパンプロセッサーDevelopment
zipkin_http_span_exporterHTTP経由のZipkinスパンエクスポーターDevelopment

操作メトリクス

メトリクス: otel.sdk.metric_reader.collection.duration

このメトリクスはrecommendedです。

このメトリクスは、境界を持たない単一のバケットのExplicitBucketBoundaries advisoryパラメータを指定すべきです(SHOULD)。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
otel.sdk.metric_reader.collection.durationHistogramsメトリクスリーダーのcollect操作の実行時間。[1]Development

[1]: 収集が成功した場合、error.typeを設定してはなりません(MUST NOT)。収集が失敗した場合、error.typeには失敗の原因を含めるべきです(SHOULD)。 一部のMetricProducerでは収集が成功し、他では失敗する場合があります。その場合、error.typeは失敗原因のいずれかに設定されるべきです(SHOULD)。

Attributes:

KeyStabilityRequirement LevelValue TypeDescriptionExample Values
error.typeStableRecommendedstring操作が終了したエラーのクラスを記述します。[1]timeout; java.net.UnknownHostException; server_certificate_invalid; 500
otel.component.nameDevelopmentRecommendedstringOpenTelemetryコンポーネントのインスタンスを、それを含むSDKインスタンス内で一意に識別する名前。[2]otlp_grpc_span_exporter/0; custom-name
otel.component.typeDevelopmentRecommendedstringOpenTelemetryコンポーネントの種別を識別する名前。[3]batching_span_processor; com.example.MySpanExporter

[1] error.type: error.typeは予測可能であるべきであり(SHOULD)、カーディナリティが低いべきです(SHOULD)。

error.typeに型(たとえば例外の型)を設定する場合、そのアーティファクト内でその型を識別する正規のクラス名を使用すべきです(SHOULD)。

記録されたエラー型が、失敗の分類にとって意味を持たないラッパーである場合、計装は内側のエラーの型を代わりに使用してもかまいません(MAY)。たとえばGoでは、ラッパー型が失敗の分類に役立たない場合、%wを使ってfmt.Errorfで作成されたエラーをアンラップしてもかまいません(MAY)。

計装は、報告するエラーの一覧を文書化すべきです(SHOULD)。

1つの計装ライブラリ内におけるerror.typeのカーディナリティは低くあるべきです(SHOULD)。複数の計装ライブラリやアプリケーションからのデータを集約するテレメトリーの利用者は、追加のフィルタが適用されない場合、クエリ実行時にerror.typeが高いカーディナリティを持つことを想定しておくべきです(should)。

操作が正常に完了した場合、計装はerror.typeを設定すべきではありません(SHOULD NOT)。

特定のドメインが独自のエラー識別子の集合(HTTPやRPCのステータスコードなど)を定義している場合、次のことが推奨されます(RECOMMENDED)。

  • ドメイン固有の属性を使用する。
  • そのドメイン固有の集合に定義されているかどうかにかかわらず、すべてのエラーを捕捉するようにerror.typeを設定する。

[2] otel.component.name: 実装は、アプリケーションやSDKの再起動をまたいでも、この属性のカーディナリティが低くなるようにすべきです(SHOULD)。たとえば、実装はこの属性の値にUUIDを使用してはなりません(MUST NOT)。

実装は、<otel.component.type>/<instance-counter>というパターン(例: batching_span_processor/0)に従うことで、これらの目標を達成してもかまいません(MAY)。ここでのotel.component.typeは、そのコンポーネントの対応する属性値を指します。

instance-counterの値は、コンポーネントによって自動的に割り当てられてもかまいません(MAY)。また、それを含むSDKインスタンス内での一意性が保証されなければなりません(MUST)。たとえば、<instance-counter>は、指定されたコンポーネント種別のインスタンスが起動するたびにインクリメントされる、単調増加するカウンター(0から開始)を使って実装されてもかまいません(MAY)。

この実装では、たとえば最初のBatching Span Processorのotel.component.namebatching_span_processor/0となり、2番目はbatching_span_processor/1となります。したがって、これらの値はアプリケーションの再起動時に再利用されます。

[3] otel.component.type: 標準化された値のいずれも当てはまらない場合、実装は、その言語で定義された型の名前を使用すべきです(SHOULD)。たとえばJavaでは、この場合に完全修飾クラス名を使用すべきです(SHOULD)。


error.typeには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。

ValueDescriptionStability
_OTHER計装が独自の値を定義していない場合に使用するフォールバック用のエラー値。Stable

otel.component.typeには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。

ValueDescriptionStability
batching_log_processor組み込みのSDKバッチ処理ログレコードプロセッサーDevelopment
batching_span_processor組み込みのSDKバッチ処理スパンプロセッサーDevelopment
otlp_grpc_log_exporterprotobufシリアライゼーションを使ったgRPC経由のOTLPログレコードエクスポーターDevelopment
otlp_grpc_metric_exporterprotobufシリアライゼーションを使ったgRPC経由のOTLPメトリクスエクスポーターDevelopment
otlp_grpc_span_exporterprotobufシリアライゼーションを使ったgRPC経由のOTLPスパンエクスポーターDevelopment
otlp_http_json_log_exporterJSONシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーターDevelopment
otlp_http_json_metric_exporterJSONシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーターDevelopment
otlp_http_json_span_exporterJSONシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーターDevelopment
otlp_http_log_exporterprotobufシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーターDevelopment
otlp_http_metric_exporterprotobufシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーターDevelopment
otlp_http_span_exporterprotobufシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーターDevelopment
periodic_metric_reader組み込みのSDK定期エクスポート型メトリクスリーダーDevelopment
prometheus_http_text_metric_exporterデフォルトのテキスト形式を使ったHTTP経由のPrometheusメトリクスエクスポーターDevelopment
simple_log_processor組み込みのSDKシンプルログレコードプロセッサーDevelopment
simple_span_processor組み込みのSDKシンプルスパンプロセッサーDevelopment
zipkin_http_span_exporterHTTP経由のZipkinスパンエクスポーターDevelopment

メトリクス: otel.sdk.exporter.operation.duration

このメトリクスはrecommendedです。

このメトリクスは、境界を持たない単一のバケットのExplicitBucketBoundaries advisoryパラメータを指定すべきです(SHOULD)。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
otel.sdk.exporter.operation.durationHistogramsテレメトリーレコードのバッチをエクスポートする処理時間。[1]Development

[1]: このメトリクスは、HTTPgRPCの完全な成功の定義を使用して、成功した操作を定義します。それ以外はすべて失敗した操作として定義されます。成功した操作については、error.typeを設定してはなりません(MUST NOT)。失敗したエクスポート操作については、error.typeに関連する失敗原因を含めなければなりません(MUST)。 エクスポーターが失敗したエクスポート試行をリトライする場合、export操作ごとに正確に1つの観測値が記録されなければなりません(MUST)。これは、最初の試行の開始から最終試行の完了までの実時間(試行間のバックオフを含む)を対象とします。 error.typeは最終試行の原因を反映します。

Attributes:

KeyStabilityRequirement LevelValue TypeDescriptionExample Values
error.typeStableConditionally Required If operation has ended with an errorstring操作が終了したエラーのクラスを記述します。[1]rejected; timeout; 500; java.net.UnknownHostException
http.response.status_codeStableRecommended when applicableintこのexport呼び出しの範囲内で実行された最後のHTTPリクエストのHTTPステータスコード。200
otel.component.nameDevelopmentRecommendedstringOpenTelemetryコンポーネントのインスタンスを、それを含むSDKインスタンス内で一意に識別する名前。[2]otlp_grpc_span_exporter/0; custom-name
otel.component.typeDevelopmentRecommendedstringOpenTelemetryコンポーネントの種別を識別する名前。[3]otlp_grpc_span_exporter; com.example.MySpanExporter
rpc.response.status_codeRelease CandidateRecommended when applicablestringこのexport呼び出しの範囲内で実行された最後のgRPCリクエストのgRPCステータスコード。[4]OK; DEADLINE_EXCEEDED; -32602
server.addressStableRecommended when applicablestring逆引きDNSルックアップなしで利用可能な場合のサーバーのドメイン名。そうでない場合はIPアドレスまたはUNIXドメインソケット名。[5]example.com; 10.1.2.80; /tmp/my.sock
server.portStableRecommended when applicableintサーバーのポート番号。[6]80; 8080; 443

[1] error.type: error.typeは予測可能であるべきであり(SHOULD)、カーディナリティが低いべきです(SHOULD)。

error.typeに型(たとえば例外の型)を設定する場合、そのアーティファクト内でその型を識別する正規のクラス名を使用すべきです(SHOULD)。

記録されたエラー型が、失敗の分類にとって意味を持たないラッパーである場合、計装は内側のエラーの型を代わりに使用してもかまいません(MAY)。たとえばGoでは、ラッパー型が失敗の分類に役立たない場合、%wを使ってfmt.Errorfで作成されたエラーをアンラップしてもかまいません(MAY)。

計装は、報告するエラーの一覧を文書化すべきです(SHOULD)。

1つの計装ライブラリ内におけるerror.typeのカーディナリティは低くあるべきです(SHOULD)。複数の計装ライブラリやアプリケーションからのデータを集約するテレメトリーの利用者は、追加のフィルタが適用されない場合、クエリ実行時にerror.typeが高いカーディナリティを持つことを想定しておくべきです(should)。

操作が正常に完了した場合、計装はerror.typeを設定すべきではありません(SHOULD NOT)。

特定のドメインが独自のエラー識別子の集合(HTTPやRPCのステータスコードなど)を定義している場合、次のことが推奨されます(RECOMMENDED)。

  • ドメイン固有の属性を使用する。
  • そのドメイン固有の集合に定義されているかどうかにかかわらず、すべてのエラーを捕捉するようにerror.typeを設定する。

[2] otel.component.name: 実装は、アプリケーションやSDKの再起動をまたいでも、この属性のカーディナリティが低くなるようにすべきです(SHOULD)。たとえば、実装はこの属性の値にUUIDを使用してはなりません(MUST NOT)。

実装は、<otel.component.type>/<instance-counter>というパターン(例: batching_span_processor/0)に従うことで、これらの目標を達成してもかまいません(MAY)。ここでのotel.component.typeは、そのコンポーネントの対応する属性値を指します。

instance-counterの値は、コンポーネントによって自動的に割り当てられてもかまいません(MAY)。また、それを含むSDKインスタンス内での一意性が保証されなければなりません(MUST)。たとえば、<instance-counter>は、指定されたコンポーネント種別のインスタンスが起動するたびにインクリメントされる、単調増加するカウンター(0から開始)を使って実装されてもかまいません(MAY)。

この実装では、たとえば最初のBatching Span Processorのotel.component.namebatching_span_processor/0となり、2番目はbatching_span_processor/1となります。したがって、これらの値はアプリケーションの再起動時に再利用されます。

[3] otel.component.type: 標準化された値のいずれも当てはまらない場合、実装は、その言語で定義された型の名前を使用すべきです(SHOULD)。たとえばJavaでは、この場合に完全修飾クラス名を使用すべきです(SHOULD)。

[4] rpc.response.status_code: 通常はエラーコードを表しますが、部分的な成功、警告、またはさまざまな種類の成功結果を区別する場合もあります。 個々のRPCフレームワークのセマンティック規約は、そのシステムのコンテキストにおいてrpc.response.status_codeが何を意味するか、およびどの値がエラーを表すと見なされるかを文書化すべきです(SHOULD)。

[5] server.address: クライアント側から観測し、かつ中間サーバーを介して通信している場合、server.addressは、(利用可能であれば)プロキシなどの中間サーバーの背後にあるサーバーのアドレスを表すべきです(SHOULD)。

[6] server.port: クライアント側から観測し、かつ中間サーバーを介して通信している場合、server.portは、(利用可能であれば)プロキシなどの中間サーバーの背後にあるサーバーのポートを表すべきです(SHOULD)。


error.typeには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。

ValueDescriptionStability
_OTHER計装が独自の値を定義していない場合に使用するフォールバック用のエラー値。Stable

otel.component.typeには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。

ValueDescriptionStability
batching_log_processor組み込みのSDKバッチ処理ログレコードプロセッサーDevelopment
batching_span_processor組み込みのSDKバッチ処理スパンプロセッサーDevelopment
otlp_grpc_log_exporterprotobufシリアライゼーションを使ったgRPC経由のOTLPログレコードエクスポーターDevelopment
otlp_grpc_metric_exporterprotobufシリアライゼーションを使ったgRPC経由のOTLPメトリクスエクスポーターDevelopment
otlp_grpc_span_exporterprotobufシリアライゼーションを使ったgRPC経由のOTLPスパンエクスポーターDevelopment
otlp_http_json_log_exporterJSONシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーターDevelopment
otlp_http_json_metric_exporterJSONシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーターDevelopment
otlp_http_json_span_exporterJSONシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーターDevelopment
otlp_http_log_exporterprotobufシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーターDevelopment
otlp_http_metric_exporterprotobufシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーターDevelopment
otlp_http_span_exporterprotobufシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーターDevelopment
periodic_metric_reader組み込みのSDK定期エクスポート型メトリクスリーダーDevelopment
prometheus_http_text_metric_exporterデフォルトのテキスト形式を使ったHTTP経由のPrometheusメトリクスエクスポーターDevelopment
simple_log_processor組み込みのSDKシンプルログレコードプロセッサーDevelopment
simple_span_processor組み込みのSDKシンプルスパンプロセッサーDevelopment
zipkin_http_span_exporterHTTP経由のZipkinスパンエクスポーターDevelopment