Mappings

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

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

ステータス: アルファ(Alpha)

この文書は、Mappingメッセージの必須属性を定義します。

属性

Mappingを表すメッセージは、以下のprocessに関する属性のうち少なくとも1つを持たなければなりません(MUST)。

  • process.executable.build_id.gnu
  • process.executable.build_id.go
  • process.executable.build_id.htlhash

可能であれば、上記に挙げたすべての属性がMappingに存在すべきです(SHOULD)。相互運用性を高めるため、すべてのMappingprocess.executable.build_id.htlhashが存在することが推奨されます(RECOMMENDED)。process.executable.build_id.goの用途と目的については、golang/go#68652を参照してください。

process.executable.build_id.htlhashのアルゴリズム

GNUやGoのbuild_idの値が取り除かれている、あるいは利用できない環境があります。例えば、Dockerのベースとしてよく使われるAlpine Linuxなどです。そのため、また相互運用性を高めるため、ファイルの先頭と末尾のページをそのファイルの長さと合わせてハッシュ化する、決定的なbuild_id生成アルゴリズムが以下のように定義されています。

Input   ← Concat(File[:4096], File[-4096:], BigEndianUInt64(Len(File)))
Digest  ← SHA256(Input)
BuildID ← Digest[:16]

ここでInputは、ファイルの最初と最後の4096バイト(重複してもよく、パディングはしない)と、ファイル長のビッグエンディアン8バイトシリアライズを連結したものです。得られるBuildIDは、そのハッシュダイジェストを16バイト(128ビット)に切り詰めた16進文字列の形式です。