OTEP-0038: バージョンセマンティック属性
標準的な version セマンティック属性を追加します。
動機
トレースデータやメトリクスを作成するとき、参照しているスパンや測定値のイオタを送出した特定のバージョンを知ることは非常に有用です。
しかし、バージョンはシステムやユーザーによって異なる意味を持つことがあります。
さらに、下流の分析システムは、バージョンの種類に関連する機能(バージョンの新旧を検出するなど)を公開したい場合があります。
これをサポートするために、バージョンの種類を示すオプションのヒントを備えた version 属性を標準化するべきです。
解説
version は、Service、Component、Library、Device、Platform などの他のリソースに適用できるセマンティック属性です。
version 属性はオプションですが、推奨されます。
version の定義は string から string へのキーバリュー属性ペアであり、次のようにバージョンの種類を示すために利用できる命名スキーマを備えています。
version=semver:1.2.3(セマンティックバージョン)
version=git:8ae73a(Gitのshaハッシュ)
version=0.0.4.2.20190921(型を持たないバージョン)
内部の詳細
これは単なる属性ペアにすぎないため、特別な処理は必要ありませんが、SDKはスキーマに適した値を構築するためのヘルパーメソッドを提供してもよいでしょう。
先行技術と代替技術
サービスリソースにそのバージョンでタグ付けすることは、分析ツールによって一般的に提案されています。例としてJAEGER_TAGSを参照してください。しかし、標準化はされていません。