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

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

プロファイルの属性

ステータス: Development

プロファイル識別に関する汎用属性

この節で説明する属性は、かなり汎用的なものです。これらは、適用可能な任意のプロファイルレコードで使用できます。

フレームの種類

説明: プロファイル内の単一フレームの由来を記述します。

Attributes:

KeyStabilityRequirement LevelValue TypeDescriptionExample Values
profile.frame.typeDevelopmentRecommendedstring単一フレームのインタプリタまたはコンパイラを記述します。cpython

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

ValueDescriptionStability
beamErlangDevelopment
cpythonPythonDevelopment
dotnet.NETDevelopment
goGoDevelopment
jvmJVMDevelopment
kernelKernelDevelopment
luajitLuaJITDevelopment
nativeCC++GoRustなどが該当しますが、これらに限定されません。可能であれば、より正確な値を使用しなければなりません(MUST)。Development
perlPerlDevelopment
phpPHPDevelopment
rubyRubyDevelopment
rustRustDevelopment
v8jsV8JSDevelopment

pprofとの互換性

既存のpprof形式は、このデータモデルへ一意に変換できます。このデータモデルからの逆方向の変換も、対象のプロファイル形式が同等の機能を持つ範囲において可能です。

この節で説明する属性は、この相互変換可能性をサポートすることに特化しています。これらは、適用可能な任意のプロファイルレコードで使用できます。

Attributes:

KeyStabilityRequirement LevelValue TypeDescriptionExample Values
pprof.location.is_foldedDevelopmentRecommendedboolean複数のシンボルがこの位置のアドレスに対応していることを示します。例えば、リンカーによる同一コードの折り込みによって発生します。その場合、行情報は複数のシンボルのうちの一つを表します。このフィールドは、プロファイルのシンボル化状態が変化した際に再計算しなければなりません(MUST)。
pprof.mapping.has_filenamesDevelopmentRecommendedbooleanこのマッピングに関連するファイル名が存在することを示します。
pprof.mapping.has_functionsDevelopmentRecommendedbooleanこのマッピングに関連する関数が存在することを示します。
pprof.mapping.has_inline_framesDevelopmentRecommendedbooleanこのマッピングに関連するインラインフレームが存在することを示します。
pprof.mapping.has_line_numbersDevelopmentRecommendedbooleanこのマッピングに関連する行番号が存在することを示します。
pprof.profile.commentDevelopmentRecommendedstring[]プロファイルに関連付けられた自由形式のテキスト。このフィールドは機械可読な情報を保存するために使うべきではなく、人間にとって分かりやすい内容のためだけに使われます。["hello world", "bazinga"]
pprof.profile.doc_urlDevelopmentRecommendedstringこのプロファイル種別のドキュメントリンク。 [1]http://pprof.example.com/cpu-profile.html
pprof.profile.drop_framesDevelopmentRecommendedstringFunction.function_nameがこの正規表現に完全一致するフレームは、後続のフレームとともにサンプルから除外されます。/foobar/
pprof.profile.keep_framesDevelopmentRecommendedstringFunction.function_nameがこの正規表現に完全一致するフレームは、drop_framesに一致していても保持されます。/bazinga/
pprof.scope.default_sample_typeDevelopmentRecommendedstring元のプロファイルにおけるpprofのdefault_sample_typeを記録します。元のデフォルトサンプル種別が存在しない場合は設定されません。 [2]cpu
pprof.scope.sample_type_orderDevelopmentRecommendedint[]元のプロファイルにおけるサンプル種別のインデックスを記録します。 [3][3, 0, 1, 2]

[1] pprof.profile.doc_url: URLは絶対URLでなければならず、リンクを提供しないコードによってプロファイルが生成された場合は欠落している可能性があります。

[2] pprof.scope.default_sample_type: この属性が存在する場合、スコープレベル(resource_profiles[].scope_profiles[].scope.attributes[])に設定しなければなりません(MUST)。

[3] pprof.scope.sample_type_order: この属性が存在する場合、スコープレベル(resource_profiles[].scope_profiles[].scope.attributes[])に設定しなければなりません(MUST)。