この記事は英語の原文を日本語に翻訳したものです。原文: https://opentelemetry.io/docs/specs/semconv/cicd/cicd-metrics/
翻訳元: open-telemetry/semantic-conventions v1.44.0(コミット e10a930)
CI/CDメトリクスに関するセマンティック規約
ステータス: Mixed
CI/CDメトリクス
この節で説明する規約は、継続的インテグレーション/継続的デプロイ(CI/CD)システムに固有のものです。
免責事項: これらは初期のCI/CDメトリクスと属性であり、将来さらに追加される可能性があります。
パイプライン実行ごとのメトリクスに関するガイダンス
パイプライン実行ごとに固有のメトリクスを収集することが有用な場合があります。
そのようなメトリクスの例には次のものがあります。
- パイプライン実行が実行されるワーカーのCPU、メモリ、ディスクなどのホストメトリクス
- CPU、メモリのリクエストやリミットなどのコンテナメトリクス
- パイプライン実行の一部として実行されるプロセスのランタイムメトリクス(JVMメトリクスなど)
これらのメトリクスは、ビルドの失敗を過負荷やメモリ不足といった環境上の問題と関連付けるために使用できます。また、パイプラインレベルの集計に使い、割り当てられたワーカーリソースの調整に役立てることもできます。
CI/CDパイプラインでホスト、コンテナ、ランタイム、その他のメトリクスを報告する際、計装の実装者とアプリケーション開発者は、適用可能なCI/CDおよびVCSのリソース規約を使用すべきです(SHOULD)。また、すべてのメトリクスまたは特定のメトリクスをcicd.pipeline.runと関連付けて、実行情報と関連付けてもかまいません(MAY)。
cicd.pipeline.run Entityは、パイプライン実行を識別します。これをメトリクスに関連付けると、本質的に高いカーディナリティが発生し、一部のメトリクス保存バックエンドではコストが増加する可能性があります。したがって、cicd.pipeline.run Entityはopt-inでなければなりません(MUST)。
メトリクス: cicd.pipeline.run.duration
このメトリクスはrecommendedです。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
cicd.pipeline.run.duration | Histogram | s | パイプライン、状態、結果でグループ化した、パイプライン実行の処理時間。 | cicd.pipeline |
Attributes:
| Key | Stability | Requirement Level | Value Type | Description | Example Values |
|---|---|---|---|---|---|
cicd.pipeline.name | Required | string | CI/CDシステム内のパイプラインの、人間が読める名前。 | Build and Test; Lint; Deploy Go Project; deploy_to_environment | |
cicd.pipeline.run.state | Required | string | パイプライン実行は、そのライフサイクルの中でこれらの状態を経ます。 | pending; executing; finalizing | |
cicd.pipeline.result | Conditionally Required [1] | string | パイプライン実行の結果。 | success; failure; timeout; skip | |
error.type | Conditionally Required If and only if the pipeline run failed. | string | 操作が終了したエラーのクラスを記述します。[2] | timeout; java.net.UnknownHostException; server_certificate_invalid; 500 |
[1] cicd.pipeline.result: その状態の間にパイプライン実行の結果が設定されている場合に限ります。
[2] 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を設定する。
cicd.pipeline.resultには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。
| Value | Description | Stability |
|---|---|---|
cancellation | パイプライン実行がキャンセルされました。たとえばユーザーが手動でキャンセルした場合。 | |
error | CI/CDシステムでのエラー(ワーカーが強制終了された場合など)により、パイプライン実行が失敗しました。 | |
failure | コンパイルエラーやテスト失敗などにより、パイプライン実行が正常に終了しませんでした。このような失敗は通常、パイプライン実行中に実行されたツールの非0の終了コードによって検出されます。 | |
skip | 前提条件が満たされなかったなどの理由で、パイプライン実行がスキップされました。 | |
success | パイプライン実行が正常に終了しました。 | |
timeout | タイムアウトによってパイプライン実行が中断されました。 |
cicd.pipeline.run.stateには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。
| Value | Description | Stability |
|---|---|---|
executing | executing状態は、(ビルドやテストなどの)実行タスクの実行にわたります。 | |
finalizing | finalizing状態は、実行が完了した時点から(実行リソースのクリーンアップなど)にわたります。 | |
pending | pending状態は、パイプライン実行を起動するイベントから、実行の開始までにわたります(キューでの待機時間、エージェントのプロビジョニング、実行リソースの作成などが含まれます)。 |
error.typeには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。
| Value | Description | Stability |
|---|---|---|
_OTHER | 計装が独自の値を定義していない場合に使用するフォールバック用のエラー値。 |
メトリクス: cicd.pipeline.run.active
このメトリクスはrecommendedです。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
cicd.pipeline.run.active | UpDownCounter | {run} | 状態別の、システム内で現在アクティブなパイプライン実行数。 | cicd.pipeline |
Attributes:
| Key | Stability | Requirement Level | Value Type | Description | Example Values |
|---|---|---|---|---|---|
cicd.pipeline.name | Required | string | CI/CDシステム内のパイプラインの、人間が読める名前。 | Build and Test; Lint; Deploy Go Project; deploy_to_environment | |
cicd.pipeline.run.state | Required | string | パイプライン実行は、そのライフサイクルの中でこれらの状態を経ます。 | pending; executing; finalizing |
cicd.pipeline.run.stateには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。
| Value | Description | Stability |
|---|---|---|
executing | executing状態は、(ビルドやテストなどの)実行タスクの実行にわたります。 | |
finalizing | finalizing状態は、実行が完了した時点から(実行リソースのクリーンアップなど)にわたります。 | |
pending | pending状態は、パイプライン実行を起動するイベントから、実行の開始までにわたります(キューでの待機時間、エージェントのプロビジョニング、実行リソースの作成などが含まれます)。 |
メトリクス: cicd.worker.count
このメトリクスはrecommendedです。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
cicd.worker.count | UpDownCounter | {worker} | 状態別の、CI/CDシステム上のワーカー数。 |
Attributes:
| Key | Stability | Requirement Level | Value Type | Description | Example Values |
|---|---|---|---|---|---|
cicd.worker.state | Required | string | CI/CDワーカー・エージェントの状態。 | available; busy; offline |
cicd.worker.stateには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。
| Value | Description | Stability |
|---|---|---|
available | ワーカーはCI/CDシステムのために作業を実行していません。CI/CDシステムが作業を実行できる状態にあります(オンライン・アイドル)。[1] | |
busy | ワーカーはCI/CDシステムのために作業を実行しています。 | |
offline | ワーカーはCI/CDシステムから利用できません(切断・停止)。 |
[1]: パイプラインには、実行可能なワーカーに関する条件が設定されている場合があるため、すべてのワーカーがすべてのパイプラインで利用可能とは限りません。
メトリクス: cicd.pipeline.run.errors
このメトリクスはrecommendedです。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
cicd.pipeline.run.errors | Counter | {error} | パイプライン実行中に遭遇したエラー数(コンパイルエラー、テスト失敗など)。[1] | cicd.pipeline |
[1]: パイプライン実行には、致命的でないエラー(抑制されるものなど)が存在する場合や、並列ステージにおいて複数のステージが致命的なエラーを持つ場合があります。
このため、このエラー数は、実行結果failureを持つメトリクスcicd.pipeline.run.durationの件数と一致しない場合があります。
Attributes:
| Key | Stability | Requirement Level | Value Type | Description | Example Values |
|---|---|---|---|---|---|
cicd.pipeline.name | Required | string | CI/CDシステム内のパイプラインの、人間が読める名前。 | Build and Test; Lint; Deploy Go Project; deploy_to_environment | |
error.type | Required | string | 操作が終了したエラーのクラスを記述します。[1] | timeout; java.net.UnknownHostException; server_certificate_invalid; 500 |
[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を設定する。
error.typeには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。
| Value | Description | Stability |
|---|---|---|
_OTHER | 計装が独自の値を定義していない場合に使用するフォールバック用のエラー値。 |
メトリクス: cicd.system.errors
このメトリクスはrecommendedです。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
cicd.system.errors | Counter | {error} | CI/CDシステムのコンポーネント(コントローラー、スケジューラー、エージェントなど)で発生したエラー数。[1] |
[1]: パイプライン実行の実行過程で発生するエラーは、明示的に除外されます。つまり、テストの失敗はこのメトリクスには含まれません。
Attributes:
| Key | Stability | Requirement Level | Value Type | Description | Example Values |
|---|---|---|---|---|---|
cicd.system.component | Required | string | CI/CDシステムのコンポーネントの名前。 | controller; scheduler; agent | |
error.type | Required | string | 操作が終了したエラーのクラスを記述します。[1] | timeout; java.net.UnknownHostException; server_certificate_invalid; 500 |
[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を設定する。
error.typeには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。
| Value | Description | Stability |
|---|---|---|
_OTHER | 計装が独自の値を定義していない場合に使用するフォールバック用のエラー値。 |
VCSメトリクス
この節で説明する規約は、バージョン管理システムに固有のものです。
免責事項: これらは初期のVCSメトリクスと属性であり、将来さらに追加される可能性があります。
メトリクス: vcs.change.count
このメトリクスはrecommendedです。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
vcs.change.count | UpDownCounter | {change} | リポジトリ内の変更(プルリクエスト・マージリクエスト・チェンジリスト)の数を、その状態(openやmergedなど)別に分類したもの。 | vcs.repository |
Attributes:
| Key | Stability | Requirement Level | Value Type | Description | Example Values |
|---|---|---|---|---|---|
vcs.change.state | Required | string | 変更(プルリクエスト・マージリクエスト・チェンジリスト)の状態。 | open; closed; merged | |
vcs.repository.url.full | Required | string | ブラウザでリポジトリを特定・識別するための完全なHTTP(S)アドレスを提供する、リポジトリの正規URL。[1] | https://github.com/opentelemetry/open-telemetry-collector-contrib; https://gitlab.com/my-org/my-project/my-projects-project/repo | |
vcs.owner.name | Recommended | string | バージョン管理システム内のグループの所有者。 | my-org; myteam; business-unit | |
vcs.repository.name | Recommended | string | リポジトリの人間が読める名前。GitLabのGroup/SubGroupやGitHubのorganizationのような追加の識別子を含めるべきではありません(SHOULD NOT)。[2] | semantic-conventions; my-cool-repo | |
vcs.provider.name | Opt-In | string | バージョン管理システムのプロバイダー名。 | github; gitlab; gitea; bitbucket |
[1] vcs.repository.url.full: Gitのバージョンコントロールシステムにおいて、正規URLに.git拡張子を含めるべきではありません(SHOULD NOT)。
[2] vcs.repository.name: 名前だけであるため、複数の組織やグループにわたってテレメトリーを収集する場合、同じバックエンド内で同じリポジトリのフォークと衝突する可能性があります。
vcs.change.stateには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。
| Value | Description | Stability |
|---|---|---|
closed | closedとは、マージリクエストがマージされずにクローズされたことを意味します。これは、変更が不要と判断された、別の方法で問題が解決された、作成者がリクエストを取り下げることを決めたなど、さまざまな理由で発生する可能性があります。 | |
merged | mergedは、変更が対象のコードベースに正常に統合されたことを示します。 | |
open | openとは、変更が現在アクティブでレビュー中であることを意味します。対象のブランチにまだマージされておらず、変更やコメントの追加がまだ可能です。 | |
wip | WIP(work-in-progress、ドラフト)とは、変更がまだ進行中であり、まだ十分なレビューの準備ができていないことを意味します。今後も大きく変更される可能性があります。 |
vcs.provider.nameには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。
| Value | Description | Stability |
|---|---|---|
bitbucket | Bitbucket | |
gitea | Gitea | |
github | GitHub | |
gitlab | GitLab |
メトリクス: vcs.change.duration
このメトリクスはrecommendedです。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
vcs.change.duration | Gauge | s | 変更(プルリクエスト・マージリクエスト・チェンジリスト)が、ある状態に留まっている時間。 | vcs.repository |
Attributes:
| Key | Stability | Requirement Level | Value Type | Description | Example Values |
|---|---|---|---|---|---|
vcs.change.state | Required | string | 変更(プルリクエスト・マージリクエスト・チェンジリスト)の状態。 | open; closed; merged | |
vcs.ref.head.name | Required | string | リポジトリ内のbranchやtagなどのreferenceの名前。[1] | my-feature-branch; tag-1-test | |
vcs.repository.url.full | Required | string | ブラウザでリポジトリを特定・識別するための完全なHTTP(S)アドレスを提供する、リポジトリの正規URL。[2] | https://github.com/opentelemetry/open-telemetry-collector-contrib; https://gitlab.com/my-org/my-project/my-projects-project/repo | |
vcs.owner.name | Recommended | string | バージョン管理システム内のグループの所有者。 | my-org; myteam; business-unit | |
vcs.repository.name | Recommended | string | リポジトリの人間が読める名前。GitLabのGroup/SubGroupやGitHubのorganizationのような追加の識別子を含めるべきではありません(SHOULD NOT)。[3] | semantic-conventions; my-cool-repo | |
vcs.provider.name | Opt-In | string | バージョン管理システムのプロバイダー名。 | github; gitlab; gitea; bitbucket |
[1] vcs.ref.head.name: headは、まさに今いる場所、ある時点における現在のreferenceを指します。
[2] vcs.repository.url.full: Gitのバージョンコントロールシステムにおいて、正規URLに.git拡張子を含めるべきではありません(SHOULD NOT)。
[3] vcs.repository.name: 名前だけであるため、複数の組織やグループにわたってテレメトリーを収集する場合、同じバックエンド内で同じリポジトリのフォークと衝突する可能性があります。
vcs.change.stateには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。
| Value | Description | Stability |
|---|---|---|
closed | closedとは、マージリクエストがマージされずにクローズされたことを意味します。これは、変更が不要と判断された、別の方法で問題が解決された、作成者がリクエストを取り下げることを決めたなど、さまざまな理由で発生する可能性があります。 | |
merged | mergedは、変更が対象のコードベースに正常に統合されたことを示します。 | |
open | openとは、変更が現在アクティブでレビュー中であることを意味します。対象のブランチにまだマージされておらず、変更やコメントの追加がまだ可能です。 | |
wip | WIP(work-in-progress、ドラフト)とは、変更がまだ進行中であり、まだ十分なレビューの準備ができていないことを意味します。今後も大きく変更される可能性があります。 |
vcs.provider.nameには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。
| Value | Description | Stability |
|---|---|---|
bitbucket | Bitbucket | |
gitea | Gitea | |
github | GitHub | |
gitlab | GitLab |
メトリクス: vcs.change.time_to_approval
このメトリクスはrecommendedです。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
vcs.change.time_to_approval | Gauge | s | 変更(プルリクエスト・マージリクエスト・チェンジリスト)が作成されてから最初の承認を得るまでにかかった時間。 | vcs.repository; vcs.ref |
Attributes:
| Key | Stability | Requirement Level | Value Type | Description | Example Values |
|---|---|---|---|---|---|
vcs.ref.head.name | Required | string | リポジトリ内のbranchやtagなどのreferenceの名前。[1] | my-feature-branch; tag-1-test | |
vcs.repository.url.full | Required | string | ブラウザでリポジトリを特定・識別するための完全なHTTP(S)アドレスを提供する、リポジトリの正規URL。[2] | https://github.com/opentelemetry/open-telemetry-collector-contrib; https://gitlab.com/my-org/my-project/my-projects-project/repo | |
vcs.owner.name | Recommended | string | バージョン管理システム内のグループの所有者。 | my-org; myteam; business-unit | |
vcs.ref.base.name | Recommended | string | リポジトリ内のbranchやtagなどのreferenceの名前。[3] | my-feature-branch; tag-1-test | |
vcs.repository.name | Recommended | string | リポジトリの人間が読める名前。GitLabのGroup/SubGroupやGitHubのorganizationのような追加の識別子を含めるべきではありません(SHOULD NOT)。[4] | semantic-conventions; my-cool-repo | |
vcs.provider.name | Opt-In | string | バージョン管理システムのプロバイダー名。 | github; gitlab; gitea; bitbucket | |
vcs.ref.base.revision | Opt-In | string | リビジョン、文字通り改訂版。リビジョンは、Gitではコミットオブジェクトを、SVNではリビジョン番号を指すことが最も多いです。[5] | 9d59409acf479dfa0df1aa568182e43e43df8bbe28d60fcf2bc52e30068802cc; main; 123; HEAD | |
vcs.ref.head.revision | Opt-In | string | リビジョン、文字通り改訂版。リビジョンは、Gitではコミットオブジェクトを、SVNではリビジョン番号を指すことが最も多いです。[6] | 9d59409acf479dfa0df1aa568182e43e43df8bbe28d60fcf2bc52e30068802cc; main; 123; HEAD |
[1] vcs.ref.head.name: headは、まさに今いる場所、ある時点における現在のreferenceを指します。
[2] vcs.repository.url.full: Gitのバージョンコントロールシステムにおいて、正規URLに.git拡張子を含めるべきではありません(SHOULD NOT)。
[3] vcs.ref.base.name: baseは、変更の起点を指します。たとえば、mainからbranch型の新しいreferenceを作成し、新しいコミットを作成した場合、mainはbranch型のbase referenceになります。
[4] vcs.repository.name: 名前だけであるため、複数の組織やグループにわたってテレメトリーを収集する場合、同じバックエンド内で同じリポジトリのフォークと衝突する可能性があります。
[5] vcs.ref.base.revision: baseは、変更の起点を指します。たとえば、mainからbranch型の新しいreferenceを作成し、新しいコミットを作成した場合、mainはbranch型のbase referenceになります。リビジョンは、リポジトリ内のrefへの記録された変更を指す、コミットcommitオブジェクトへの完全なハッシュ値(用語集を参照)であってもかまいません。必ずしもハッシュである必要はなく、単調増加する整数であるリビジョン番号を単純に定義してもかまいません。ref.base.nameと同一である場合でも、含めるべきです(SHOULD)。VCSシステムと状況に応じたコンテキストに基づいて、どの値をリビジョンとして設定するかは、実装者の判断に委ねられます。
[6] vcs.ref.head.revision: headは、まさに今いる場所、ある時点における現在のreferenceを指します。リビジョンは、リポジトリ内のrefへの記録された変更を指す、コミットcommitオブジェクトへの完全なハッシュ値(用語集を参照)であってもかまいません。必ずしもハッシュである必要はなく、単調増加する整数であるリビジョン番号を単純に定義してもかまいません。ref.head.nameと同一である場合でも、含めるべきです(SHOULD)。VCSシステムと状況に応じたコンテキストに基づいて、どの値をリビジョンとして設定するかは、実装者の判断に委ねられます。
vcs.provider.nameには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。
| Value | Description | Stability |
|---|---|---|
bitbucket | Bitbucket | |
gitea | Gitea | |
github | GitHub | |
gitlab | GitLab |
メトリクス: vcs.change.time_to_merge
このメトリクスはrecommendedです。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
vcs.change.time_to_merge | Gauge | s | 変更(プルリクエスト・マージリクエスト・チェンジリスト)が作成されてから、対象(base)のrefにマージされるまでにかかった時間。 | vcs.repository; vcs.ref |
Attributes:
| Key | Stability | Requirement Level | Value Type | Description | Example Values |
|---|---|---|---|---|---|
vcs.ref.head.name | Required | string | リポジトリ内のbranchやtagなどのreferenceの名前。[1] | my-feature-branch; tag-1-test | |
vcs.repository.url.full | Required | string | ブラウザでリポジトリを特定・識別するための完全なHTTP(S)アドレスを提供する、リポジトリの正規URL。[2] | https://github.com/opentelemetry/open-telemetry-collector-contrib; https://gitlab.com/my-org/my-project/my-projects-project/repo | |
vcs.owner.name | Recommended | string | バージョン管理システム内のグループの所有者。 | my-org; myteam; business-unit | |
vcs.ref.base.name | Recommended | string | リポジトリ内のbranchやtagなどのreferenceの名前。[3] | my-feature-branch; tag-1-test | |
vcs.repository.name | Recommended | string | リポジトリの人間が読める名前。GitLabのGroup/SubGroupやGitHubのorganizationのような追加の識別子を含めるべきではありません(SHOULD NOT)。[4] | semantic-conventions; my-cool-repo | |
vcs.provider.name | Opt-In | string | バージョン管理システムのプロバイダー名。 | github; gitlab; gitea; bitbucket | |
vcs.ref.base.revision | Opt-In | string | リビジョン、文字通り改訂版。リビジョンは、Gitではコミットオブジェクトを、SVNではリビジョン番号を指すことが最も多いです。[5] | 9d59409acf479dfa0df1aa568182e43e43df8bbe28d60fcf2bc52e30068802cc; main; 123; HEAD | |
vcs.ref.head.revision | Opt-In | string | リビジョン、文字通り改訂版。リビジョンは、Gitではコミットオブジェクトを、SVNではリビジョン番号を指すことが最も多いです。[6] | 9d59409acf479dfa0df1aa568182e43e43df8bbe28d60fcf2bc52e30068802cc; main; 123; HEAD |
[1] vcs.ref.head.name: headは、まさに今いる場所、ある時点における現在のreferenceを指します。
[2] vcs.repository.url.full: Gitのバージョンコントロールシステムにおいて、正規URLに.git拡張子を含めるべきではありません(SHOULD NOT)。
[3] vcs.ref.base.name: baseは、変更の起点を指します。たとえば、mainからbranch型の新しいreferenceを作成し、新しいコミットを作成した場合、mainはbranch型のbase referenceになります。
[4] vcs.repository.name: 名前だけであるため、複数の組織やグループにわたってテレメトリーを収集する場合、同じバックエンド内で同じリポジトリのフォークと衝突する可能性があります。
[5] vcs.ref.base.revision: baseは、変更の起点を指します。たとえば、mainからbranch型の新しいreferenceを作成し、新しいコミットを作成した場合、mainはbranch型のbase referenceになります。リビジョンは、リポジトリ内のrefへの記録された変更を指す、コミットcommitオブジェクトへの完全なハッシュ値(用語集を参照)であってもかまいません。必ずしもハッシュである必要はなく、単調増加する整数であるリビジョン番号を単純に定義してもかまいません。ref.base.nameと同一である場合でも、含めるべきです(SHOULD)。VCSシステムと状況に応じたコンテキストに基づいて、どの値をリビジョンとして設定するかは、実装者の判断に委ねられます。
[6] vcs.ref.head.revision: headは、まさに今いる場所、ある時点における現在のreferenceを指します。リビジョンは、リポジトリ内のrefへの記録された変更を指す、コミットcommitオブジェクトへの完全なハッシュ値(用語集を参照)であってもかまいません。必ずしもハッシュである必要はなく、単調増加する整数であるリビジョン番号を単純に定義してもかまいません。ref.head.nameと同一である場合でも、含めるべきです(SHOULD)。VCSシステムと状況に応じたコンテキストに基づいて、どの値をリビジョンとして設定するかは、実装者の判断に委ねられます。
vcs.provider.nameには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。
| Value | Description | Stability |
|---|---|---|
bitbucket | Bitbucket | |
gitea | Gitea | |
github | GitHub | |
gitlab | GitLab |
メトリクス: vcs.repository.count
このメトリクスはrecommendedです。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
vcs.repository.count | UpDownCounter | {repository} | 組織内のリポジトリ数。 |
Attributes:
| Key | Stability | Requirement Level | Value Type | Description | Example Values |
|---|---|---|---|---|---|
vcs.owner.name | Recommended | string | バージョン管理システム内のグループの所有者。 | my-org; myteam; business-unit | |
vcs.provider.name | Opt-In | string | バージョン管理システムのプロバイダー名。 | github; gitlab; gitea; bitbucket |
vcs.provider.nameには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。
| Value | Description | Stability |
|---|---|---|
bitbucket | Bitbucket | |
gitea | Gitea | |
github | GitHub | |
gitlab | GitLab |
メトリクス: vcs.ref.count
このメトリクスはrecommendedです。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
vcs.ref.count | UpDownCounter | {ref} | リポジトリ内のbranch型またはtag型のref数。 | vcs.repository |
Attributes:
| Key | Stability | Requirement Level | Value Type | Description | Example Values |
|---|---|---|---|---|---|
vcs.ref.type | Required | string | リポジトリ内のreferenceの種類。 | branch; tag | |
vcs.repository.url.full | Required | string | ブラウザでリポジトリを特定・識別するための完全なHTTP(S)アドレスを提供する、リポジトリの正規URL。[1] | https://github.com/opentelemetry/open-telemetry-collector-contrib; https://gitlab.com/my-org/my-project/my-projects-project/repo | |
vcs.owner.name | Recommended | string | バージョン管理システム内のグループの所有者。 | my-org; myteam; business-unit | |
vcs.repository.name | Recommended | string | リポジトリの人間が読める名前。GitLabのGroup/SubGroupやGitHubのorganizationのような追加の識別子を含めるべきではありません(SHOULD NOT)。[2] | semantic-conventions; my-cool-repo | |
vcs.provider.name | Opt-In | string | バージョン管理システムのプロバイダー名。 | github; gitlab; gitea; bitbucket |
[1] vcs.repository.url.full: Gitのバージョンコントロールシステムにおいて、正規URLに.git拡張子を含めるべきではありません(SHOULD NOT)。
[2] vcs.repository.name: 名前だけであるため、複数の組織やグループにわたってテレメトリーを収集する場合、同じバックエンド内で同じリポジトリのフォークと衝突する可能性があります。
vcs.provider.nameには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。
| Value | Description | Stability |
|---|---|---|
bitbucket | Bitbucket | |
gitea | Gitea | |
github | GitHub | |
gitlab | GitLab |
vcs.ref.typeには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。
| Value | Description | Stability |
|---|---|---|
branch | branch | |
tag | tag |
メトリクス: vcs.ref.lines_delta
このメトリクスはrecommendedです。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
vcs.ref.lines_delta | Gauge | {line} | vcs.ref.base.name属性が示すrefと比較した、あるref(branch)で追加・削除された行数。[1] | vcs.repository |
[1]: このメトリクスは、vcs.line_change.typeの値ごとに報告されるべきです(should)。たとえば、あるrefで3行が追加され2行が削除された場合、計装は2つの計測値(3と2、いずれも正の数)を報告すべきです(SHOULD)。
追加・削除された行数を最初の時点から計算する場合、vcs.ref.base.nameは空文字列に設定されるべきです(SHOULD)。
Attributes:
| Key | Stability | Requirement Level | Value Type | Description | Example Values |
|---|---|---|---|---|---|
vcs.line_change.type | Required | string | branchや変更について計測される行変更の種類。 | added; removed | |
vcs.ref.base.name | Required | string | リポジトリ内のbranchやtagなどのreferenceの名前。[1] | my-feature-branch; tag-1-test | |
vcs.ref.base.type | Required | string | リポジトリ内のreferenceの種類。[2] | branch; tag | |
vcs.ref.head.name | Required | string | リポジトリ内のbranchやtagなどのreferenceの名前。[3] | my-feature-branch; tag-1-test | |
vcs.ref.head.type | Required | string | リポジトリ内のreferenceの種類。[4] | branch; tag | |
vcs.repository.url.full | Required | string | ブラウザでリポジトリを特定・識別するための完全なHTTP(S)アドレスを提供する、リポジトリの正規URL。[5] | https://github.com/opentelemetry/open-telemetry-collector-contrib; https://gitlab.com/my-org/my-project/my-projects-project/repo | |
vcs.change.id | Conditionally Required if a change is associated with the ref. | string | 該当する場合の、変更(プルリクエスト・マージリクエスト・チェンジリスト)のID。これは通常、VCSシステムが生成する(リポジトリ内で一意な)識別子です。 | 123 | |
vcs.owner.name | Recommended | string | バージョン管理システム内のグループの所有者。 | my-org; myteam; business-unit | |
vcs.repository.name | Recommended | string | リポジトリの人間が読める名前。GitLabのGroup/SubGroupやGitHubのorganizationのような追加の識別子を含めるべきではありません(SHOULD NOT)。[6] | semantic-conventions; my-cool-repo | |
vcs.provider.name | Opt-In | string | バージョン管理システムのプロバイダー名。 | github; gitlab; gitea; bitbucket |
[1] vcs.ref.base.name: baseは、変更の起点を指します。たとえば、mainからbranch型の新しいreferenceを作成し、新しいコミットを作成した場合、mainはbranch型のbase referenceになります。
[2] vcs.ref.base.type: baseは、変更の起点を指します。たとえば、mainからbranch型の新しいreferenceを作成し、新しいコミットを作成した場合、mainはbranch型のbase referenceになります。
[3] vcs.ref.head.name: headは、まさに今いる場所、ある時点における現在のreferenceを指します。
[4] vcs.ref.head.type: headは、まさに今いる場所、ある時点における現在のreferenceを指します。
[5] vcs.repository.url.full: Gitのバージョンコントロールシステムにおいて、正規URLに.git拡張子を含めるべきではありません(SHOULD NOT)。
[6] vcs.repository.name: 名前だけであるため、複数の組織やグループにわたってテレメトリーを収集する場合、同じバックエンド内で同じリポジトリのフォークと衝突する可能性があります。
vcs.line_change.typeには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。
| Value | Description | Stability |
|---|---|---|
added | 追加された行数。 | |
removed | 削除された行数。 |
vcs.provider.nameには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。
| Value | Description | Stability |
|---|---|---|
bitbucket | Bitbucket | |
gitea | Gitea | |
github | GitHub | |
gitlab | GitLab |
vcs.ref.base.typeには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。
| Value | Description | Stability |
|---|---|---|
branch | branch | |
tag | tag |
vcs.ref.head.typeには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。
| Value | Description | Stability |
|---|---|---|
branch | branch | |
tag | tag |
メトリクス: vcs.ref.revisions_delta
このメトリクスはrecommendedです。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
vcs.ref.revisions_delta | Gauge | {revision} | vcs.ref.base.name属性が示すbranchと比較して、あるref(branch)が進んでいる・遅れているリビジョン(コミット)数。[1] | vcs.repository |
[1]: このメトリクスは、vcs.revision_delta.directionの値ごとに報告されるべきです(should)。たとえば、branch aがtrunkに対して3コミット遅れ、2コミット進んでいる場合、計装は2つの計測値(3と2、いずれも正の数)を報告すべきであり(SHOULD)、vcs.ref.base.nameはtrunkに設定されます。
Attributes:
| Key | Stability | Requirement Level | Value Type | Description | Example Values |
|---|---|---|---|---|---|
vcs.ref.base.name | Required | string | リポジトリ内のbranchやtagなどのreferenceの名前。[1] | my-feature-branch; tag-1-test | |
vcs.ref.base.type | Required | string | リポジトリ内のreferenceの種類。[2] | branch; tag | |
vcs.ref.head.name | Required | string | リポジトリ内のbranchやtagなどのreferenceの名前。[3] | my-feature-branch; tag-1-test | |
vcs.ref.head.type | Required | string | リポジトリ内のreferenceの種類。[4] | branch; tag | |
vcs.repository.url.full | Required | string | ブラウザでリポジトリを特定・識別するための完全なHTTP(S)アドレスを提供する、リポジトリの正規URL。[5] | https://github.com/opentelemetry/open-telemetry-collector-contrib; https://gitlab.com/my-org/my-project/my-projects-project/repo | |
vcs.revision_delta.direction | Required | string | リビジョン比較の種類。 | ahead; behind | |
vcs.change.id | Conditionally Required if a change is associated with the ref. | string | 該当する場合の、変更(プルリクエスト・マージリクエスト・チェンジリスト)のID。これは通常、VCSシステムが生成する(リポジトリ内で一意な)識別子です。 | 123 | |
vcs.owner.name | Recommended | string | バージョン管理システム内のグループの所有者。 | my-org; myteam; business-unit | |
vcs.repository.name | Recommended | string | リポジトリの人間が読める名前。GitLabのGroup/SubGroupやGitHubのorganizationのような追加の識別子を含めるべきではありません(SHOULD NOT)。[6] | semantic-conventions; my-cool-repo | |
vcs.provider.name | Opt-In | string | バージョン管理システムのプロバイダー名。 | github; gitlab; gitea; bitbucket |
[1] vcs.ref.base.name: baseは、変更の起点を指します。たとえば、mainからbranch型の新しいreferenceを作成し、新しいコミットを作成した場合、mainはbranch型のbase referenceになります。
[2] vcs.ref.base.type: baseは、変更の起点を指します。たとえば、mainからbranch型の新しいreferenceを作成し、新しいコミットを作成した場合、mainはbranch型のbase referenceになります。
[3] vcs.ref.head.name: headは、まさに今いる場所、ある時点における現在のreferenceを指します。
[4] vcs.ref.head.type: headは、まさに今いる場所、ある時点における現在のreferenceを指します。
[5] vcs.repository.url.full: Gitのバージョンコントロールシステムにおいて、正規URLに.git拡張子を含めるべきではありません(SHOULD NOT)。
[6] vcs.repository.name: 名前だけであるため、複数の組織やグループにわたってテレメトリーを収集する場合、同じバックエンド内で同じリポジトリのフォークと衝突する可能性があります。
vcs.provider.nameには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。
| Value | Description | Stability |
|---|---|---|
bitbucket | Bitbucket | |
gitea | Gitea | |
github | GitHub | |
gitlab | GitLab |
vcs.ref.base.typeには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。
| Value | Description | Stability |
|---|---|---|
branch | branch | |
tag | tag |
vcs.ref.head.typeには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。
| Value | Description | Stability |
|---|---|---|
branch | branch | |
tag | tag |
vcs.revision_delta.directionには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。
| Value | Description | Stability |
|---|---|---|
ahead | 変更が対象のrefより進んでいるリビジョン数。 | |
behind | 変更が対象のrefより遅れているリビジョン数。 |
メトリクス: vcs.ref.time
このメトリクスはrecommendedです。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
vcs.ref.time | Gauge | s | デフォルトブランチ(trunk)から作成されたref(branch)が存在してきた時間。ref.type属性は常にbranchです。 | vcs.repository |
Attributes:
| Key | Stability | Requirement Level | Value Type | Description | Example Values |
|---|---|---|---|---|---|
vcs.ref.head.name | Required | string | リポジトリ内のbranchやtagなどのreferenceの名前。[1] | my-feature-branch; tag-1-test | |
vcs.ref.head.type | Required | string | リポジトリ内のreferenceの種類。[2] | branch; tag | |
vcs.repository.url.full | Required | string | ブラウザでリポジトリを特定・識別するための完全なHTTP(S)アドレスを提供する、リポジトリの正規URL。[3] | https://github.com/opentelemetry/open-telemetry-collector-contrib; https://gitlab.com/my-org/my-project/my-projects-project/repo | |
vcs.owner.name | Recommended | string | バージョン管理システム内のグループの所有者。 | my-org; myteam; business-unit | |
vcs.repository.name | Recommended | string | リポジトリの人間が読める名前。GitLabのGroup/SubGroupやGitHubのorganizationのような追加の識別子を含めるべきではありません(SHOULD NOT)。[4] | semantic-conventions; my-cool-repo | |
vcs.provider.name | Opt-In | string | バージョン管理システムのプロバイダー名。 | github; gitlab; gitea; bitbucket |
[1] vcs.ref.head.name: headは、まさに今いる場所、ある時点における現在のreferenceを指します。
[2] vcs.ref.head.type: headは、まさに今いる場所、ある時点における現在のreferenceを指します。
[3] vcs.repository.url.full: Gitのバージョンコントロールシステムにおいて、正規URLに.git拡張子を含めるべきではありません(SHOULD NOT)。
[4] vcs.repository.name: 名前だけであるため、複数の組織やグループにわたってテレメトリーを収集する場合、同じバックエンド内で同じリポジトリのフォークと衝突する可能性があります。
vcs.provider.nameには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。
| Value | Description | Stability |
|---|---|---|
bitbucket | Bitbucket | |
gitea | Gitea | |
github | GitHub | |
gitlab | GitLab |
vcs.ref.head.typeには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。
| Value | Description | Stability |
|---|---|---|
branch | branch | |
tag | tag |
メトリクス: vcs.contributor.count
このメトリクスはopt-inです。
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|---|---|---|---|---|---|
vcs.contributor.count | Gauge | {contributor} | リポジトリに対する一意な貢献者の数。 | vcs.repository |
Attributes:
| Key | Stability | Requirement Level | Value Type | Description | Example Values |
|---|---|---|---|---|---|
vcs.repository.url.full | Required | string | ブラウザでリポジトリを特定・識別するための完全なHTTP(S)アドレスを提供する、リポジトリの正規URL。[1] | https://github.com/opentelemetry/open-telemetry-collector-contrib; https://gitlab.com/my-org/my-project/my-projects-project/repo | |
vcs.owner.name | Recommended | string | バージョン管理システム内のグループの所有者。 | my-org; myteam; business-unit | |
vcs.repository.name | Recommended | string | リポジトリの人間が読める名前。GitLabのGroup/SubGroupやGitHubのorganizationのような追加の識別子を含めるべきではありません(SHOULD NOT)。[2] | semantic-conventions; my-cool-repo | |
vcs.provider.name | Opt-In | string | バージョン管理システムのプロバイダー名。 | github; gitlab; gitea; bitbucket |
[1] vcs.repository.url.full: Gitのバージョンコントロールシステムにおいて、正規URLに.git拡張子を含めるべきではありません(SHOULD NOT)。
[2] vcs.repository.name: 名前だけであるため、複数の組織やグループにわたってテレメトリーを収集する場合、同じバックエンド内で同じリポジトリのフォークと衝突する可能性があります。
vcs.provider.nameには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。
| Value | Description | Stability |
|---|---|---|
bitbucket | Bitbucket | |
gitea | Gitea | |
github | GitHub | |
gitlab | GitLab |