この記事は英語の原文を日本語に翻訳したものです。原文: 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です。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
otel.sdk.span.live | UpDownCounter | {span} | endが呼び出されていない、recording=trueで作成されたスパン数。[1] |
[1]: 非記録のスパンは数えられません。したがって、otel.span.sampling_resultはRECORD_ONLYとRECORD_AND_SAMPLEの値のみを取り、DROPは取りません。
Attributes:
| Key | Stability | Requirement Level | Value Type | Description | Example Values |
|---|---|---|---|---|---|
otel.span.sampling_result | Recommended | string | このスパンに対するサンプラーの結果値。 | DROP; RECORD_ONLY; RECORD_AND_SAMPLE |
otel.span.sampling_resultには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。
| Value | Description | Stability |
|---|---|---|
DROP | スパンはサンプリングされず、記録もされません。 | |
RECORD_AND_SAMPLE | スパンはサンプリングされ、記録されます。 | |
RECORD_ONLY | スパンはサンプリングされませんが、記録されます。 |
メトリクス: otel.sdk.span.started
このメトリクスはrecommendedです。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
otel.sdk.span.started | Counter | {span} | 作成されたスパン数。[1] |
[1]: 実装は、非記録のスパンを含むすべてのスパンについて、このメトリクスを記録しなければなりません(MUST)。
Attributes:
| Key | Stability | Requirement Level | Value Type | Description | Example Values |
|---|---|---|---|---|---|
otel.span.parent.origin | Recommended | string | スパンが親スパンを持つかどうか、持つ場合はそれがリモートの親であるかどうかを判定します。 | none; local; remote | |
otel.span.sampling_result | Recommended | string | このスパンに対するサンプラーの結果値。 | DROP; RECORD_ONLY; RECORD_AND_SAMPLE |
otel.span.parent.originには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。
| Value | Description | Stability |
|---|---|---|
local | スパンは親を持ち、その親のスパンコンテキストのisRemote()がfalseです。 | |
none | スパンは親を持たず、ルートスパンです。 | |
remote | スパンは親を持ち、その親のスパンコンテキストのisRemote()がtrueです。 |
otel.span.sampling_resultには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。
| Value | Description | Stability |
|---|---|---|
DROP | スパンはサンプリングされず、記録もされません。 | |
RECORD_AND_SAMPLE | スパンはサンプリングされ、記録されます。 | |
RECORD_ONLY | スパンはサンプリングされませんが、記録されます。 |
メトリクス: otel.sdk.processor.span.queue.size
このメトリクスはrecommendedです。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
otel.sdk.processor.span.queue.size | UpDownCounter | {span} | 指定されたSDKスパンプロセッサーのインスタンスのキュー内にあるスパン数。[1] |
[1]: キューを使用するスパンプロセッサーにのみ適用されます(SDK Batching Span Processorなど)。
Attributes:
| Key | Stability | Requirement Level | Value Type | Description | Example Values |
|---|---|---|---|---|---|
otel.component.name | Recommended | string | OpenTelemetryコンポーネントのインスタンスを、それを含むSDKインスタンス内で一意に識別する名前。[1] | otlp_grpc_span_exporter/0; custom-name | |
otel.component.type | Recommended | string | OpenTelemetryコンポーネントの種別を識別する名前。[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.nameはbatching_span_processor/0となり、2番目はbatching_span_processor/1となります。したがって、これらの値はアプリケーションの再起動時に再利用されます。
[2] otel.component.type: 標準化された値のいずれも当てはまらない場合、実装は、その言語で定義された型の名前を使用すべきです(SHOULD)。たとえばJavaでは、この場合に完全修飾クラス名を使用すべきです(SHOULD)。
otel.component.typeには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。
| Value | Description | Stability |
|---|---|---|
batching_log_processor | 組み込みのSDKバッチ処理ログレコードプロセッサー | |
batching_span_processor | 組み込みのSDKバッチ処理スパンプロセッサー | |
otlp_grpc_log_exporter | protobufシリアライゼーションを使ったgRPC経由のOTLPログレコードエクスポーター | |
otlp_grpc_metric_exporter | protobufシリアライゼーションを使ったgRPC経由のOTLPメトリクスエクスポーター | |
otlp_grpc_span_exporter | protobufシリアライゼーションを使ったgRPC経由のOTLPスパンエクスポーター | |
otlp_http_json_log_exporter | JSONシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーター | |
otlp_http_json_metric_exporter | JSONシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーター | |
otlp_http_json_span_exporter | JSONシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーター | |
otlp_http_log_exporter | protobufシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーター | |
otlp_http_metric_exporter | protobufシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーター | |
otlp_http_span_exporter | protobufシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーター | |
periodic_metric_reader | 組み込みのSDK定期エクスポート型メトリクスリーダー | |
prometheus_http_text_metric_exporter | デフォルトのテキスト形式を使ったHTTP経由のPrometheusメトリクスエクスポーター | |
simple_log_processor | 組み込みのSDKシンプルログレコードプロセッサー | |
simple_span_processor | 組み込みのSDKシンプルスパンプロセッサー | |
zipkin_http_span_exporter | HTTP経由のZipkinスパンエクスポーター |
メトリクス: otel.sdk.processor.span.queue.capacity
このメトリクスはrecommendedです。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
otel.sdk.processor.span.queue.capacity | UpDownCounter | {span} | 指定されたSDKスパンプロセッサーのインスタンスのキューが保持できる最大スパン数。[1] |
[1]: キューを使用するスパンプロセッサーにのみ適用されます(SDK Batching Span Processorなど)。
Attributes:
| Key | Stability | Requirement Level | Value Type | Description | Example Values |
|---|---|---|---|---|---|
otel.component.name | Recommended | string | OpenTelemetryコンポーネントのインスタンスを、それを含むSDKインスタンス内で一意に識別する名前。[1] | otlp_grpc_span_exporter/0; custom-name | |
otel.component.type | Recommended | string | OpenTelemetryコンポーネントの種別を識別する名前。[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.nameはbatching_span_processor/0となり、2番目はbatching_span_processor/1となります。したがって、これらの値はアプリケーションの再起動時に再利用されます。
[2] otel.component.type: 標準化された値のいずれも当てはまらない場合、実装は、その言語で定義された型の名前を使用すべきです(SHOULD)。たとえばJavaでは、この場合に完全修飾クラス名を使用すべきです(SHOULD)。
otel.component.typeには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。
| Value | Description | Stability |
|---|---|---|
batching_log_processor | 組み込みのSDKバッチ処理ログレコードプロセッサー | |
batching_span_processor | 組み込みのSDKバッチ処理スパンプロセッサー | |
otlp_grpc_log_exporter | protobufシリアライゼーションを使ったgRPC経由のOTLPログレコードエクスポーター | |
otlp_grpc_metric_exporter | protobufシリアライゼーションを使ったgRPC経由のOTLPメトリクスエクスポーター | |
otlp_grpc_span_exporter | protobufシリアライゼーションを使ったgRPC経由のOTLPスパンエクスポーター | |
otlp_http_json_log_exporter | JSONシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーター | |
otlp_http_json_metric_exporter | JSONシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーター | |
otlp_http_json_span_exporter | JSONシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーター | |
otlp_http_log_exporter | protobufシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーター | |
otlp_http_metric_exporter | protobufシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーター | |
otlp_http_span_exporter | protobufシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーター | |
periodic_metric_reader | 組み込みのSDK定期エクスポート型メトリクスリーダー | |
prometheus_http_text_metric_exporter | デフォルトのテキスト形式を使ったHTTP経由のPrometheusメトリクスエクスポーター | |
simple_log_processor | 組み込みのSDKシンプルログレコードプロセッサー | |
simple_span_processor | 組み込みのSDKシンプルスパンプロセッサー | |
zipkin_http_span_exporter | HTTP経由のZipkinスパンエクスポーター |
メトリクス: otel.sdk.processor.span.processed
このメトリクスはrecommendedです。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
otel.sdk.processor.span.processed | Counter | {span} | 処理が(成功または失敗のいずれかで)完了したスパン数。[1] |
[1]: 処理が成功した場合、error.typeを設定してはなりません(MUST NOT)。処理が失敗した場合、error.typeには失敗の原因を含めなければなりません(MUST)。
SDK Batching Span Processorは、キューが満杯のためにドロップされたスパンについて、error.typeの値としてqueue_fullを使用しなければなりません(MUST)。
プロセッサーが、すでにシャットダウンされているためにドロップされたスパンを報告する場合、error.typeはalready_shutdownでなければなりません(MUST)。
プロセッサーがこのようなスパンをドロップするかどうか、およびいつドロップするかは、このメトリクスではなくSDK仕様によって規定されます。
SDKのSimple Span ProcessorとBatching Span Processorでは、プロセッサーがexport操作を呼び出した時点で、スパンは正常に処理されたものとして数えられなければなりません(MUST)。バッチ処理プロセッサーの場合、エクスポーターに渡されたバッチ内のすべてのスパンがその時点で数えられます。プロセッサーのキューに受け入れられたがまだエクスポーターに渡されていないスパンは、処理されたことになりません。
実装は、export操作が完了するまでこのカウントを遅延させてはならず(MUST NOT)、export操作の結果(呼び出し自体の即時失敗を含む)は、このメトリクスに影響を与えてはなりません(MUST NOT)。
エクスポートの結果は、otel.sdk.exporter.span.exportedによって報告されます。
Attributes:
| Key | Stability | Requirement Level | Value Type | Description | Example Values |
|---|---|---|---|---|---|
error.type | Recommended | string | 失敗理由の低カーディナリティな記述。[1] | queue_full; already_shutdown | |
otel.component.name | Recommended | string | OpenTelemetryコンポーネントのインスタンスを、それを含むSDKインスタンス内で一意に識別する名前。[2] | otlp_grpc_span_exporter/0; custom-name | |
otel.component.type | Recommended | string | OpenTelemetryコンポーネントの種別を識別する名前。[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.nameはbatching_span_processor/0となり、2番目はbatching_span_processor/1となります。したがって、これらの値はアプリケーションの再起動時に再利用されます。
[3] otel.component.type: 標準化された値のいずれも当てはまらない場合、実装は、その言語で定義された型の名前を使用すべきです(SHOULD)。たとえばJavaでは、この場合に完全修飾クラス名を使用すべきです(SHOULD)。
error.typeには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。
| Value | Description | Stability |
|---|---|---|
_OTHER | 計装が独自の値を定義していない場合に使用するフォールバック用のエラー値。 |
otel.component.typeには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。
| Value | Description | Stability |
|---|---|---|
batching_log_processor | 組み込みのSDKバッチ処理ログレコードプロセッサー | |
batching_span_processor | 組み込みのSDKバッチ処理スパンプロセッサー | |
otlp_grpc_log_exporter | protobufシリアライゼーションを使ったgRPC経由のOTLPログレコードエクスポーター | |
otlp_grpc_metric_exporter | protobufシリアライゼーションを使ったgRPC経由のOTLPメトリクスエクスポーター | |
otlp_grpc_span_exporter | protobufシリアライゼーションを使ったgRPC経由のOTLPスパンエクスポーター | |
otlp_http_json_log_exporter | JSONシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーター | |
otlp_http_json_metric_exporter | JSONシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーター | |
otlp_http_json_span_exporter | JSONシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーター | |
otlp_http_log_exporter | protobufシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーター | |
otlp_http_metric_exporter | protobufシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーター | |
otlp_http_span_exporter | protobufシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーター | |
periodic_metric_reader | 組み込みのSDK定期エクスポート型メトリクスリーダー | |
prometheus_http_text_metric_exporter | デフォルトのテキスト形式を使ったHTTP経由のPrometheusメトリクスエクスポーター | |
simple_log_processor | 組み込みのSDKシンプルログレコードプロセッサー | |
simple_span_processor | 組み込みのSDKシンプルスパンプロセッサー | |
zipkin_http_span_exporter | HTTP経由のZipkinスパンエクスポーター |
メトリクス: otel.sdk.exporter.span.inflight
このメトリクスはrecommendedです。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
otel.sdk.exporter.span.inflight | UpDownCounter | {span} | エクスポーターに渡されたが、まだエクスポートされていない(成功も失敗もしていない)スパン数。[1] |
[1]: スパンは、エクスポーターに渡された時点からexport操作が完了するまでの間、inflightとして数えられます。エクスポーターが失敗したエクスポート試行をリトライする場合、スパンはすべてのリトライ試行とその間のバックオフの間、inflightのままです。
Attributes:
| Key | Stability | Requirement Level | Value Type | Description | Example Values |
|---|---|---|---|---|---|
otel.component.name | Recommended | string | OpenTelemetryコンポーネントのインスタンスを、それを含むSDKインスタンス内で一意に識別する名前。[1] | otlp_grpc_span_exporter/0; custom-name | |
otel.component.type | Recommended | string | OpenTelemetryコンポーネントの種別を識別する名前。[2] | batching_span_processor; com.example.MySpanExporter | |
server.address | Recommended when applicable | string | 逆引きDNSルックアップなしで利用可能な場合のサーバーのドメイン名。そうでない場合はIPアドレスまたはUNIXドメインソケット名。[3] | example.com; 10.1.2.80; /tmp/my.sock | |
server.port | Recommended when applicable | int | サーバーのポート番号。[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.nameはbatching_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)。
| Value | Description | Stability |
|---|---|---|
batching_log_processor | 組み込みのSDKバッチ処理ログレコードプロセッサー | |
batching_span_processor | 組み込みのSDKバッチ処理スパンプロセッサー | |
otlp_grpc_log_exporter | protobufシリアライゼーションを使ったgRPC経由のOTLPログレコードエクスポーター | |
otlp_grpc_metric_exporter | protobufシリアライゼーションを使ったgRPC経由のOTLPメトリクスエクスポーター | |
otlp_grpc_span_exporter | protobufシリアライゼーションを使ったgRPC経由のOTLPスパンエクスポーター | |
otlp_http_json_log_exporter | JSONシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーター | |
otlp_http_json_metric_exporter | JSONシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーター | |
otlp_http_json_span_exporter | JSONシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーター | |
otlp_http_log_exporter | protobufシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーター | |
otlp_http_metric_exporter | protobufシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーター | |
otlp_http_span_exporter | protobufシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーター | |
periodic_metric_reader | 組み込みのSDK定期エクスポート型メトリクスリーダー | |
prometheus_http_text_metric_exporter | デフォルトのテキスト形式を使ったHTTP経由のPrometheusメトリクスエクスポーター | |
simple_log_processor | 組み込みのSDKシンプルログレコードプロセッサー | |
simple_span_processor | 組み込みのSDKシンプルスパンプロセッサー | |
zipkin_http_span_exporter | HTTP経由のZipkinスパンエクスポーター |
メトリクス: otel.sdk.exporter.span.exported
このメトリクスはrecommendedです。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
otel.sdk.exporter.span.exported | Counter | {span} | エクスポートが(成功または失敗のいずれかで)完了したスパン数。[1] |
[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:
| Key | Stability | Requirement Level | Value Type | Description | Example Values |
|---|---|---|---|---|---|
error.type | Recommended | string | 操作が終了したエラーのクラスを記述します。[1] | rejected; timeout; 500; java.net.UnknownHostException | |
otel.component.name | Recommended | string | OpenTelemetryコンポーネントのインスタンスを、それを含むSDKインスタンス内で一意に識別する名前。[2] | otlp_grpc_span_exporter/0; custom-name | |
otel.component.type | Recommended | string | OpenTelemetryコンポーネントの種別を識別する名前。[3] | batching_span_processor; com.example.MySpanExporter | |
server.address | Recommended when applicable | string | 逆引きDNSルックアップなしで利用可能な場合のサーバーのドメイン名。そうでない場合はIPアドレスまたはUNIXドメインソケット名。[4] | example.com; 10.1.2.80; /tmp/my.sock | |
server.port | Recommended when applicable | int | サーバーのポート番号。[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.nameはbatching_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)。
| Value | Description | Stability |
|---|---|---|
_OTHER | 計装が独自の値を定義していない場合に使用するフォールバック用のエラー値。 |
otel.component.typeには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。
| Value | Description | Stability |
|---|---|---|
batching_log_processor | 組み込みのSDKバッチ処理ログレコードプロセッサー | |
batching_span_processor | 組み込みのSDKバッチ処理スパンプロセッサー | |
otlp_grpc_log_exporter | protobufシリアライゼーションを使ったgRPC経由のOTLPログレコードエクスポーター | |
otlp_grpc_metric_exporter | protobufシリアライゼーションを使ったgRPC経由のOTLPメトリクスエクスポーター | |
otlp_grpc_span_exporter | protobufシリアライゼーションを使ったgRPC経由のOTLPスパンエクスポーター | |
otlp_http_json_log_exporter | JSONシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーター | |
otlp_http_json_metric_exporter | JSONシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーター | |
otlp_http_json_span_exporter | JSONシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーター | |
otlp_http_log_exporter | protobufシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーター | |
otlp_http_metric_exporter | protobufシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーター | |
otlp_http_span_exporter | protobufシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーター | |
periodic_metric_reader | 組み込みのSDK定期エクスポート型メトリクスリーダー | |
prometheus_http_text_metric_exporter | デフォルトのテキスト形式を使ったHTTP経由のPrometheusメトリクスエクスポーター | |
simple_log_processor | 組み込みのSDKシンプルログレコードプロセッサー | |
simple_span_processor | 組み込みのSDKシンプルスパンプロセッサー | |
zipkin_http_span_exporter | HTTP経由のZipkinスパンエクスポーター |
ログメトリクス
メトリクス: otel.sdk.log.created
このメトリクスはrecommendedです。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
otel.sdk.log.created | Counter | {log_record} | 有効なSDK Loggerに送信されたログ数。 |
メトリクス: otel.sdk.processor.log.queue.size
このメトリクスはrecommendedです。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
otel.sdk.processor.log.queue.size | UpDownCounter | {log_record} | 指定されたSDKログプロセッサーのインスタンスのキュー内にあるログレコード数。[1] |
[1]: キューを使用するログレコードプロセッサーにのみ適用されます(SDK Batching Log Record Processorなど)。
Attributes:
| Key | Stability | Requirement Level | Value Type | Description | Example Values |
|---|---|---|---|---|---|
otel.component.name | Recommended | string | OpenTelemetryコンポーネントのインスタンスを、それを含むSDKインスタンス内で一意に識別する名前。[1] | otlp_grpc_span_exporter/0; custom-name | |
otel.component.type | Recommended | string | OpenTelemetryコンポーネントの種別を識別する名前。[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.nameはbatching_span_processor/0となり、2番目はbatching_span_processor/1となります。したがって、これらの値はアプリケーションの再起動時に再利用されます。
[2] otel.component.type: 標準化された値のいずれも当てはまらない場合、実装は、その言語で定義された型の名前を使用すべきです(SHOULD)。たとえばJavaでは、この場合に完全修飾クラス名を使用すべきです(SHOULD)。
otel.component.typeには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。
| Value | Description | Stability |
|---|---|---|
batching_log_processor | 組み込みのSDKバッチ処理ログレコードプロセッサー | |
batching_span_processor | 組み込みのSDKバッチ処理スパンプロセッサー | |
otlp_grpc_log_exporter | protobufシリアライゼーションを使ったgRPC経由のOTLPログレコードエクスポーター | |
otlp_grpc_metric_exporter | protobufシリアライゼーションを使ったgRPC経由のOTLPメトリクスエクスポーター | |
otlp_grpc_span_exporter | protobufシリアライゼーションを使ったgRPC経由のOTLPスパンエクスポーター | |
otlp_http_json_log_exporter | JSONシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーター | |
otlp_http_json_metric_exporter | JSONシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーター | |
otlp_http_json_span_exporter | JSONシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーター | |
otlp_http_log_exporter | protobufシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーター | |
otlp_http_metric_exporter | protobufシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーター | |
otlp_http_span_exporter | protobufシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーター | |
periodic_metric_reader | 組み込みのSDK定期エクスポート型メトリクスリーダー | |
prometheus_http_text_metric_exporter | デフォルトのテキスト形式を使ったHTTP経由のPrometheusメトリクスエクスポーター | |
simple_log_processor | 組み込みのSDKシンプルログレコードプロセッサー | |
simple_span_processor | 組み込みのSDKシンプルスパンプロセッサー | |
zipkin_http_span_exporter | HTTP経由のZipkinスパンエクスポーター |
メトリクス: otel.sdk.processor.log.queue.capacity
このメトリクスはrecommendedです。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
otel.sdk.processor.log.queue.capacity | UpDownCounter | {log_record} | 指定されたSDK Log Recordプロセッサーのインスタンスのキューが保持できる最大ログレコード数。[1] |
[1]: キューを使用するLog Recordプロセッサーにのみ適用されます(SDK Batching Log Record Processorなど)。
Attributes:
| Key | Stability | Requirement Level | Value Type | Description | Example Values |
|---|---|---|---|---|---|
otel.component.name | Recommended | string | OpenTelemetryコンポーネントのインスタンスを、それを含むSDKインスタンス内で一意に識別する名前。[1] | otlp_grpc_span_exporter/0; custom-name | |
otel.component.type | Recommended | string | OpenTelemetryコンポーネントの種別を識別する名前。[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.nameはbatching_span_processor/0となり、2番目はbatching_span_processor/1となります。したがって、これらの値はアプリケーションの再起動時に再利用されます。
[2] otel.component.type: 標準化された値のいずれも当てはまらない場合、実装は、その言語で定義された型の名前を使用すべきです(SHOULD)。たとえばJavaでは、この場合に完全修飾クラス名を使用すべきです(SHOULD)。
otel.component.typeには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。
| Value | Description | Stability |
|---|---|---|
batching_log_processor | 組み込みのSDKバッチ処理ログレコードプロセッサー | |
batching_span_processor | 組み込みのSDKバッチ処理スパンプロセッサー | |
otlp_grpc_log_exporter | protobufシリアライゼーションを使ったgRPC経由のOTLPログレコードエクスポーター | |
otlp_grpc_metric_exporter | protobufシリアライゼーションを使ったgRPC経由のOTLPメトリクスエクスポーター | |
otlp_grpc_span_exporter | protobufシリアライゼーションを使ったgRPC経由のOTLPスパンエクスポーター | |
otlp_http_json_log_exporter | JSONシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーター | |
otlp_http_json_metric_exporter | JSONシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーター | |
otlp_http_json_span_exporter | JSONシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーター | |
otlp_http_log_exporter | protobufシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーター | |
otlp_http_metric_exporter | protobufシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーター | |
otlp_http_span_exporter | protobufシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーター | |
periodic_metric_reader | 組み込みのSDK定期エクスポート型メトリクスリーダー | |
prometheus_http_text_metric_exporter | デフォルトのテキスト形式を使ったHTTP経由のPrometheusメトリクスエクスポーター | |
simple_log_processor | 組み込みのSDKシンプルログレコードプロセッサー | |
simple_span_processor | 組み込みのSDKシンプルスパンプロセッサー | |
zipkin_http_span_exporter | HTTP経由のZipkinスパンエクスポーター |
メトリクス: otel.sdk.processor.log.processed
このメトリクスはrecommendedです。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
otel.sdk.processor.log.processed | Counter | {log_record} | 処理が(成功または失敗のいずれかで)完了したログレコード数。[1] |
[1]: 処理が成功した場合、error.typeを設定してはなりません(MUST NOT)。処理が失敗した場合、error.typeには失敗の原因を含めなければなりません(MUST)。
SDK Batching Log Record Processorは、キューが満杯のためにドロップされたログレコードについて、error.typeの値としてqueue_fullを使用しなければなりません(MUST)。
プロセッサーが、すでにシャットダウンされているためにドロップされたログレコードを報告する場合、error.typeはalready_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:
| Key | Stability | Requirement Level | Value Type | Description | Example Values |
|---|---|---|---|---|---|
error.type | Recommended | string | 失敗理由の低カーディナリティな記述。[1] | queue_full; already_shutdown | |
otel.component.name | Recommended | string | OpenTelemetryコンポーネントのインスタンスを、それを含むSDKインスタンス内で一意に識別する名前。[2] | otlp_grpc_span_exporter/0; custom-name | |
otel.component.type | Recommended | string | OpenTelemetryコンポーネントの種別を識別する名前。[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.nameはbatching_span_processor/0となり、2番目はbatching_span_processor/1となります。したがって、これらの値はアプリケーションの再起動時に再利用されます。
[3] otel.component.type: 標準化された値のいずれも当てはまらない場合、実装は、その言語で定義された型の名前を使用すべきです(SHOULD)。たとえばJavaでは、この場合に完全修飾クラス名を使用すべきです(SHOULD)。
error.typeには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。
| Value | Description | Stability |
|---|---|---|
_OTHER | 計装が独自の値を定義していない場合に使用するフォールバック用のエラー値。 |
otel.component.typeには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。
| Value | Description | Stability |
|---|---|---|
batching_log_processor | 組み込みのSDKバッチ処理ログレコードプロセッサー | |
batching_span_processor | 組み込みのSDKバッチ処理スパンプロセッサー | |
otlp_grpc_log_exporter | protobufシリアライゼーションを使ったgRPC経由のOTLPログレコードエクスポーター | |
otlp_grpc_metric_exporter | protobufシリアライゼーションを使ったgRPC経由のOTLPメトリクスエクスポーター | |
otlp_grpc_span_exporter | protobufシリアライゼーションを使ったgRPC経由のOTLPスパンエクスポーター | |
otlp_http_json_log_exporter | JSONシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーター | |
otlp_http_json_metric_exporter | JSONシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーター | |
otlp_http_json_span_exporter | JSONシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーター | |
otlp_http_log_exporter | protobufシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーター | |
otlp_http_metric_exporter | protobufシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーター | |
otlp_http_span_exporter | protobufシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーター | |
periodic_metric_reader | 組み込みのSDK定期エクスポート型メトリクスリーダー | |
prometheus_http_text_metric_exporter | デフォルトのテキスト形式を使ったHTTP経由のPrometheusメトリクスエクスポーター | |
simple_log_processor | 組み込みのSDKシンプルログレコードプロセッサー | |
simple_span_processor | 組み込みのSDKシンプルスパンプロセッサー | |
zipkin_http_span_exporter | HTTP経由のZipkinスパンエクスポーター |
メトリクス: otel.sdk.exporter.log.inflight
このメトリクスはrecommendedです。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
otel.sdk.exporter.log.inflight | UpDownCounter | {log_record} | エクスポーターに渡されたが、まだエクスポートされていない(成功も失敗もしていない)ログレコード数。[1] |
[1]: ログレコードは、エクスポーターに渡された時点からexport操作が完了するまでの間、inflightとして数えられます。エクスポーターが失敗したエクスポート試行をリトライする場合、ログレコードはすべてのリトライ試行とその間のバックオフの間、inflightのままです。
Attributes:
| Key | Stability | Requirement Level | Value Type | Description | Example Values |
|---|---|---|---|---|---|
otel.component.name | Recommended | string | OpenTelemetryコンポーネントのインスタンスを、それを含むSDKインスタンス内で一意に識別する名前。[1] | otlp_grpc_span_exporter/0; custom-name | |
otel.component.type | Recommended | string | OpenTelemetryコンポーネントの種別を識別する名前。[2] | batching_span_processor; com.example.MySpanExporter | |
server.address | Recommended when applicable | string | 逆引きDNSルックアップなしで利用可能な場合のサーバーのドメイン名。そうでない場合はIPアドレスまたはUNIXドメインソケット名。[3] | example.com; 10.1.2.80; /tmp/my.sock | |
server.port | Recommended when applicable | int | サーバーのポート番号。[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.nameはbatching_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)。
| Value | Description | Stability |
|---|---|---|
batching_log_processor | 組み込みのSDKバッチ処理ログレコードプロセッサー | |
batching_span_processor | 組み込みのSDKバッチ処理スパンプロセッサー | |
otlp_grpc_log_exporter | protobufシリアライゼーションを使ったgRPC経由のOTLPログレコードエクスポーター | |
otlp_grpc_metric_exporter | protobufシリアライゼーションを使ったgRPC経由のOTLPメトリクスエクスポーター | |
otlp_grpc_span_exporter | protobufシリアライゼーションを使ったgRPC経由のOTLPスパンエクスポーター | |
otlp_http_json_log_exporter | JSONシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーター | |
otlp_http_json_metric_exporter | JSONシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーター | |
otlp_http_json_span_exporter | JSONシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーター | |
otlp_http_log_exporter | protobufシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーター | |
otlp_http_metric_exporter | protobufシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーター | |
otlp_http_span_exporter | protobufシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーター | |
periodic_metric_reader | 組み込みのSDK定期エクスポート型メトリクスリーダー | |
prometheus_http_text_metric_exporter | デフォルトのテキスト形式を使ったHTTP経由のPrometheusメトリクスエクスポーター | |
simple_log_processor | 組み込みのSDKシンプルログレコードプロセッサー | |
simple_span_processor | 組み込みのSDKシンプルスパンプロセッサー | |
zipkin_http_span_exporter | HTTP経由のZipkinスパンエクスポーター |
メトリクス: otel.sdk.exporter.log.exported
このメトリクスはrecommendedです。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
otel.sdk.exporter.log.exported | Counter | {log_record} | エクスポートが(成功または失敗のいずれかで)完了したログレコード数。[1] |
[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:
| Key | Stability | Requirement Level | Value Type | Description | Example Values |
|---|---|---|---|---|---|
error.type | Recommended | string | 操作が終了したエラーのクラスを記述します。[1] | rejected; timeout; 500; java.net.UnknownHostException | |
otel.component.name | Recommended | string | OpenTelemetryコンポーネントのインスタンスを、それを含むSDKインスタンス内で一意に識別する名前。[2] | otlp_grpc_span_exporter/0; custom-name | |
otel.component.type | Recommended | string | OpenTelemetryコンポーネントの種別を識別する名前。[3] | batching_span_processor; com.example.MySpanExporter | |
server.address | Recommended when applicable | string | 逆引きDNSルックアップなしで利用可能な場合のサーバーのドメイン名。そうでない場合はIPアドレスまたはUNIXドメインソケット名。[4] | example.com; 10.1.2.80; /tmp/my.sock | |
server.port | Recommended when applicable | int | サーバーのポート番号。[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.nameはbatching_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)。
| Value | Description | Stability |
|---|---|---|
_OTHER | 計装が独自の値を定義していない場合に使用するフォールバック用のエラー値。 |
otel.component.typeには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。
| Value | Description | Stability |
|---|---|---|
batching_log_processor | 組み込みのSDKバッチ処理ログレコードプロセッサー | |
batching_span_processor | 組み込みのSDKバッチ処理スパンプロセッサー | |
otlp_grpc_log_exporter | protobufシリアライゼーションを使ったgRPC経由のOTLPログレコードエクスポーター | |
otlp_grpc_metric_exporter | protobufシリアライゼーションを使ったgRPC経由のOTLPメトリクスエクスポーター | |
otlp_grpc_span_exporter | protobufシリアライゼーションを使ったgRPC経由のOTLPスパンエクスポーター | |
otlp_http_json_log_exporter | JSONシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーター | |
otlp_http_json_metric_exporter | JSONシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーター | |
otlp_http_json_span_exporter | JSONシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーター | |
otlp_http_log_exporter | protobufシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーター | |
otlp_http_metric_exporter | protobufシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーター | |
otlp_http_span_exporter | protobufシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーター | |
periodic_metric_reader | 組み込みのSDK定期エクスポート型メトリクスリーダー | |
prometheus_http_text_metric_exporter | デフォルトのテキスト形式を使ったHTTP経由のPrometheusメトリクスエクスポーター | |
simple_log_processor | 組み込みのSDKシンプルログレコードプロセッサー | |
simple_span_processor | 組み込みのSDKシンプルスパンプロセッサー | |
zipkin_http_span_exporter | HTTP経由のZipkinスパンエクスポーター |
メトリクスのメトリクス
メトリクス: otel.sdk.exporter.metric_data_point.inflight
このメトリクスはrecommendedです。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
otel.sdk.exporter.metric_data_point.inflight | UpDownCounter | {data_point} | エクスポーターに渡されたが、まだエクスポートされていない(成功も失敗もしていない)メトリクスデータポイント数。[1] |
[1]: メトリクスデータポイントは、エクスポーターに渡された時点からexport操作が完了するまでの間、inflightとして数えられます。エクスポーターが失敗したエクスポート試行をリトライする場合、メトリクスデータポイントはすべてのリトライ試行とその間のバックオフの間、inflightのままです。
Attributes:
| Key | Stability | Requirement Level | Value Type | Description | Example Values |
|---|---|---|---|---|---|
otel.component.name | Recommended | string | OpenTelemetryコンポーネントのインスタンスを、それを含むSDKインスタンス内で一意に識別する名前。[1] | otlp_grpc_span_exporter/0; custom-name | |
otel.component.type | Recommended | string | OpenTelemetryコンポーネントの種別を識別する名前。[2] | batching_span_processor; com.example.MySpanExporter | |
server.address | Recommended when applicable | string | 逆引きDNSルックアップなしで利用可能な場合のサーバーのドメイン名。そうでない場合はIPアドレスまたはUNIXドメインソケット名。[3] | example.com; 10.1.2.80; /tmp/my.sock | |
server.port | Recommended when applicable | int | サーバーのポート番号。[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.nameはbatching_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)。
| Value | Description | Stability |
|---|---|---|
batching_log_processor | 組み込みのSDKバッチ処理ログレコードプロセッサー | |
batching_span_processor | 組み込みのSDKバッチ処理スパンプロセッサー | |
otlp_grpc_log_exporter | protobufシリアライゼーションを使ったgRPC経由のOTLPログレコードエクスポーター | |
otlp_grpc_metric_exporter | protobufシリアライゼーションを使ったgRPC経由のOTLPメトリクスエクスポーター | |
otlp_grpc_span_exporter | protobufシリアライゼーションを使ったgRPC経由のOTLPスパンエクスポーター | |
otlp_http_json_log_exporter | JSONシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーター | |
otlp_http_json_metric_exporter | JSONシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーター | |
otlp_http_json_span_exporter | JSONシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーター | |
otlp_http_log_exporter | protobufシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーター | |
otlp_http_metric_exporter | protobufシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーター | |
otlp_http_span_exporter | protobufシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーター | |
periodic_metric_reader | 組み込みのSDK定期エクスポート型メトリクスリーダー | |
prometheus_http_text_metric_exporter | デフォルトのテキスト形式を使ったHTTP経由のPrometheusメトリクスエクスポーター | |
simple_log_processor | 組み込みのSDKシンプルログレコードプロセッサー | |
simple_span_processor | 組み込みのSDKシンプルスパンプロセッサー | |
zipkin_http_span_exporter | HTTP経由のZipkinスパンエクスポーター |
メトリクス: otel.sdk.exporter.metric_data_point.exported
このメトリクスはrecommendedです。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
otel.sdk.exporter.metric_data_point.exported | Counter | {data_point} | エクスポートが(成功または失敗のいずれかで)完了したメトリクスデータポイント数。[1] |
[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:
| Key | Stability | Requirement Level | Value Type | Description | Example Values |
|---|---|---|---|---|---|
error.type | Recommended | string | 操作が終了したエラーのクラスを記述します。[1] | rejected; timeout; 500; java.net.UnknownHostException | |
otel.component.name | Recommended | string | OpenTelemetryコンポーネントのインスタンスを、それを含むSDKインスタンス内で一意に識別する名前。[2] | otlp_grpc_span_exporter/0; custom-name | |
otel.component.type | Recommended | string | OpenTelemetryコンポーネントの種別を識別する名前。[3] | batching_span_processor; com.example.MySpanExporter | |
server.address | Recommended when applicable | string | 逆引きDNSルックアップなしで利用可能な場合のサーバーのドメイン名。そうでない場合はIPアドレスまたはUNIXドメインソケット名。[4] | example.com; 10.1.2.80; /tmp/my.sock | |
server.port | Recommended when applicable | int | サーバーのポート番号。[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.nameはbatching_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)。
| Value | Description | Stability |
|---|---|---|
_OTHER | 計装が独自の値を定義していない場合に使用するフォールバック用のエラー値。 |
otel.component.typeには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。
| Value | Description | Stability |
|---|---|---|
batching_log_processor | 組み込みのSDKバッチ処理ログレコードプロセッサー | |
batching_span_processor | 組み込みのSDKバッチ処理スパンプロセッサー | |
otlp_grpc_log_exporter | protobufシリアライゼーションを使ったgRPC経由のOTLPログレコードエクスポーター | |
otlp_grpc_metric_exporter | protobufシリアライゼーションを使ったgRPC経由のOTLPメトリクスエクスポーター | |
otlp_grpc_span_exporter | protobufシリアライゼーションを使ったgRPC経由のOTLPスパンエクスポーター | |
otlp_http_json_log_exporter | JSONシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーター | |
otlp_http_json_metric_exporter | JSONシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーター | |
otlp_http_json_span_exporter | JSONシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーター | |
otlp_http_log_exporter | protobufシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーター | |
otlp_http_metric_exporter | protobufシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーター | |
otlp_http_span_exporter | protobufシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーター | |
periodic_metric_reader | 組み込みのSDK定期エクスポート型メトリクスリーダー | |
prometheus_http_text_metric_exporter | デフォルトのテキスト形式を使ったHTTP経由のPrometheusメトリクスエクスポーター | |
simple_log_processor | 組み込みのSDKシンプルログレコードプロセッサー | |
simple_span_processor | 組み込みのSDKシンプルスパンプロセッサー | |
zipkin_http_span_exporter | HTTP経由のZipkinスパンエクスポーター |
操作メトリクス
メトリクス: otel.sdk.metric_reader.collection.duration
このメトリクスはrecommendedです。
このメトリクスは、境界を持たない単一のバケットのExplicitBucketBoundaries advisoryパラメータを指定すべきです(SHOULD)。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
otel.sdk.metric_reader.collection.duration | Histogram | s | メトリクスリーダーのcollect操作の実行時間。[1] |
[1]: 収集が成功した場合、error.typeを設定してはなりません(MUST NOT)。収集が失敗した場合、error.typeには失敗の原因を含めるべきです(SHOULD)。
一部のMetricProducerでは収集が成功し、他では失敗する場合があります。その場合、error.typeは失敗原因のいずれかに設定されるべきです(SHOULD)。
Attributes:
| Key | Stability | Requirement Level | Value Type | Description | Example Values |
|---|---|---|---|---|---|
error.type | Recommended | string | 操作が終了したエラーのクラスを記述します。[1] | timeout; java.net.UnknownHostException; server_certificate_invalid; 500 | |
otel.component.name | Recommended | string | OpenTelemetryコンポーネントのインスタンスを、それを含むSDKインスタンス内で一意に識別する名前。[2] | otlp_grpc_span_exporter/0; custom-name | |
otel.component.type | Recommended | string | OpenTelemetryコンポーネントの種別を識別する名前。[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.nameはbatching_span_processor/0となり、2番目はbatching_span_processor/1となります。したがって、これらの値はアプリケーションの再起動時に再利用されます。
[3] otel.component.type: 標準化された値のいずれも当てはまらない場合、実装は、その言語で定義された型の名前を使用すべきです(SHOULD)。たとえばJavaでは、この場合に完全修飾クラス名を使用すべきです(SHOULD)。
error.typeには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。
| Value | Description | Stability |
|---|---|---|
_OTHER | 計装が独自の値を定義していない場合に使用するフォールバック用のエラー値。 |
otel.component.typeには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。
| Value | Description | Stability |
|---|---|---|
batching_log_processor | 組み込みのSDKバッチ処理ログレコードプロセッサー | |
batching_span_processor | 組み込みのSDKバッチ処理スパンプロセッサー | |
otlp_grpc_log_exporter | protobufシリアライゼーションを使ったgRPC経由のOTLPログレコードエクスポーター | |
otlp_grpc_metric_exporter | protobufシリアライゼーションを使ったgRPC経由のOTLPメトリクスエクスポーター | |
otlp_grpc_span_exporter | protobufシリアライゼーションを使ったgRPC経由のOTLPスパンエクスポーター | |
otlp_http_json_log_exporter | JSONシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーター | |
otlp_http_json_metric_exporter | JSONシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーター | |
otlp_http_json_span_exporter | JSONシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーター | |
otlp_http_log_exporter | protobufシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーター | |
otlp_http_metric_exporter | protobufシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーター | |
otlp_http_span_exporter | protobufシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーター | |
periodic_metric_reader | 組み込みのSDK定期エクスポート型メトリクスリーダー | |
prometheus_http_text_metric_exporter | デフォルトのテキスト形式を使ったHTTP経由のPrometheusメトリクスエクスポーター | |
simple_log_processor | 組み込みのSDKシンプルログレコードプロセッサー | |
simple_span_processor | 組み込みのSDKシンプルスパンプロセッサー | |
zipkin_http_span_exporter | HTTP経由のZipkinスパンエクスポーター |
メトリクス: otel.sdk.exporter.operation.duration
このメトリクスはrecommendedです。
このメトリクスは、境界を持たない単一のバケットのExplicitBucketBoundaries advisoryパラメータを指定すべきです(SHOULD)。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
otel.sdk.exporter.operation.duration | Histogram | s | テレメトリーレコードのバッチをエクスポートする処理時間。[1] |
[1]: このメトリクスは、HTTPとgRPCの完全な成功の定義を使用して、成功した操作を定義します。それ以外はすべて失敗した操作として定義されます。成功した操作については、error.typeを設定してはなりません(MUST NOT)。失敗したエクスポート操作については、error.typeに関連する失敗原因を含めなければなりません(MUST)。
エクスポーターが失敗したエクスポート試行をリトライする場合、export操作ごとに正確に1つの観測値が記録されなければなりません(MUST)。これは、最初の試行の開始から最終試行の完了までの実時間(試行間のバックオフを含む)を対象とします。
error.typeは最終試行の原因を反映します。
Attributes:
| Key | Stability | Requirement Level | Value Type | Description | Example Values |
|---|---|---|---|---|---|
error.type | Conditionally Required If operation has ended with an error | string | 操作が終了したエラーのクラスを記述します。[1] | rejected; timeout; 500; java.net.UnknownHostException | |
http.response.status_code | Recommended when applicable | int | このexport呼び出しの範囲内で実行された最後のHTTPリクエストのHTTPステータスコード。 | 200 | |
otel.component.name | Recommended | string | OpenTelemetryコンポーネントのインスタンスを、それを含むSDKインスタンス内で一意に識別する名前。[2] | otlp_grpc_span_exporter/0; custom-name | |
otel.component.type | Recommended | string | OpenTelemetryコンポーネントの種別を識別する名前。[3] | otlp_grpc_span_exporter; com.example.MySpanExporter | |
rpc.response.status_code | Recommended when applicable | string | このexport呼び出しの範囲内で実行された最後のgRPCリクエストのgRPCステータスコード。[4] | OK; DEADLINE_EXCEEDED; -32602 | |
server.address | Recommended when applicable | string | 逆引きDNSルックアップなしで利用可能な場合のサーバーのドメイン名。そうでない場合はIPアドレスまたはUNIXドメインソケット名。[5] | example.com; 10.1.2.80; /tmp/my.sock | |
server.port | Recommended when applicable | int | サーバーのポート番号。[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.nameはbatching_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)。
| Value | Description | Stability |
|---|---|---|
_OTHER | 計装が独自の値を定義していない場合に使用するフォールバック用のエラー値。 |
otel.component.typeには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。
| Value | Description | Stability |
|---|---|---|
batching_log_processor | 組み込みのSDKバッチ処理ログレコードプロセッサー | |
batching_span_processor | 組み込みのSDKバッチ処理スパンプロセッサー | |
otlp_grpc_log_exporter | protobufシリアライゼーションを使ったgRPC経由のOTLPログレコードエクスポーター | |
otlp_grpc_metric_exporter | protobufシリアライゼーションを使ったgRPC経由のOTLPメトリクスエクスポーター | |
otlp_grpc_span_exporter | protobufシリアライゼーションを使ったgRPC経由のOTLPスパンエクスポーター | |
otlp_http_json_log_exporter | JSONシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーター | |
otlp_http_json_metric_exporter | JSONシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーター | |
otlp_http_json_span_exporter | JSONシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーター | |
otlp_http_log_exporter | protobufシリアライゼーションを使ったHTTP経由のOTLPログレコードエクスポーター | |
otlp_http_metric_exporter | protobufシリアライゼーションを使ったHTTP経由のOTLPメトリクスエクスポーター | |
otlp_http_span_exporter | protobufシリアライゼーションを使ったHTTP経由のOTLPスパンエクスポーター | |
periodic_metric_reader | 組み込みのSDK定期エクスポート型メトリクスリーダー | |
prometheus_http_text_metric_exporter | デフォルトのテキスト形式を使ったHTTP経由のPrometheusメトリクスエクスポーター | |
simple_log_processor | 組み込みのSDKシンプルログレコードプロセッサー | |
simple_span_processor | 組み込みのSDKシンプルスパンプロセッサー | |
zipkin_http_span_exporter | HTTP経由のZipkinスパンエクスポーター |