OTEP-0038: バージョンセマンティック属性

標準的な version セマンティック属性を追加します。

動機

トレースデータやメトリクスを作成するとき、参照しているスパンや測定値のイオタを送出した特定のバージョンを知ることは非常に有用です。 しかし、バージョンはシステムやユーザーによって異なる意味を持つことがあります。 さらに、下流の分析システムは、バージョンの種類に関連する機能(バージョンの新旧を検出するなど)を公開したい場合があります。 これをサポートするために、バージョンの種類を示すオプションのヒントを備えた version 属性を標準化するべきです。

解説

version は、ServiceComponentLibraryDevicePlatform などの他のリソースに適用できるセマンティック属性です。 version 属性はオプションですが、推奨されます。 version の定義は string から string へのキーバリュー属性ペアであり、次のようにバージョンの種類を示すために利用できる命名スキーマを備えています。

version=semver:1.2.3(セマンティックバージョン) version=git:8ae73a(Gitのshaハッシュ) version=0.0.4.2.20190921(型を持たないバージョン)

内部の詳細

これは単なる属性ペアにすぎないため、特別な処理は必要ありませんが、SDKはスキーマに適した値を構築するためのヘルパーメソッドを提供してもよいでしょう。

先行技術と代替技術

サービスリソースにそのバージョンでタグ付けすることは、分析ツールによって一般的に提案されています。例としてJAEGER_TAGSを参照してください。しかし、標準化はされていません。