この記事は英語の原文を日本語に翻訳したものです。原文: 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です。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
cicd.pipeline.run.durationHistogramsパイプライン、状態、結果でグループ化した、パイプライン実行の処理時間。Release Candidatecicd.pipeline

Attributes:

KeyStabilityRequirement LevelValue TypeDescriptionExample Values
cicd.pipeline.nameRelease CandidateRequiredstringCI/CDシステム内のパイプラインの、人間が読める名前。Build and Test; Lint; Deploy Go Project; deploy_to_environment
cicd.pipeline.run.stateRelease CandidateRequiredstringパイプライン実行は、そのライフサイクルの中でこれらの状態を経ます。pending; executing; finalizing
cicd.pipeline.resultRelease CandidateConditionally Required [1]stringパイプライン実行の結果。success; failure; timeout; skip
error.typeStableConditionally 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)。

ValueDescriptionStability
cancellationパイプライン実行がキャンセルされました。たとえばユーザーが手動でキャンセルした場合。Release Candidate
errorCI/CDシステムでのエラー(ワーカーが強制終了された場合など)により、パイプライン実行が失敗しました。Release Candidate
failureコンパイルエラーやテスト失敗などにより、パイプライン実行が正常に終了しませんでした。このような失敗は通常、パイプライン実行中に実行されたツールの非0の終了コードによって検出されます。Release Candidate
skip前提条件が満たされなかったなどの理由で、パイプライン実行がスキップされました。Release Candidate
successパイプライン実行が正常に終了しました。Release Candidate
timeoutタイムアウトによってパイプライン実行が中断されました。Release Candidate

cicd.pipeline.run.stateには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。

ValueDescriptionStability
executingexecuting状態は、(ビルドやテストなどの)実行タスクの実行にわたります。Release Candidate
finalizingfinalizing状態は、実行が完了した時点から(実行リソースのクリーンアップなど)にわたります。Release Candidate
pendingpending状態は、パイプライン実行を起動するイベントから、実行の開始までにわたります(キューでの待機時間、エージェントのプロビジョニング、実行リソースの作成などが含まれます)。Release Candidate

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

ValueDescriptionStability
_OTHER計装が独自の値を定義していない場合に使用するフォールバック用のエラー値。Stable

メトリクス: cicd.pipeline.run.active

このメトリクスはrecommendedです。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
cicd.pipeline.run.activeUpDownCounter{run}状態別の、システム内で現在アクティブなパイプライン実行数。Release Candidatecicd.pipeline

Attributes:

KeyStabilityRequirement LevelValue TypeDescriptionExample Values
cicd.pipeline.nameRelease CandidateRequiredstringCI/CDシステム内のパイプラインの、人間が読める名前。Build and Test; Lint; Deploy Go Project; deploy_to_environment
cicd.pipeline.run.stateRelease CandidateRequiredstringパイプライン実行は、そのライフサイクルの中でこれらの状態を経ます。pending; executing; finalizing

cicd.pipeline.run.stateには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。

ValueDescriptionStability
executingexecuting状態は、(ビルドやテストなどの)実行タスクの実行にわたります。Release Candidate
finalizingfinalizing状態は、実行が完了した時点から(実行リソースのクリーンアップなど)にわたります。Release Candidate
pendingpending状態は、パイプライン実行を起動するイベントから、実行の開始までにわたります(キューでの待機時間、エージェントのプロビジョニング、実行リソースの作成などが含まれます)。Release Candidate

メトリクス: cicd.worker.count

このメトリクスはrecommendedです。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
cicd.worker.countUpDownCounter{worker}状態別の、CI/CDシステム上のワーカー数。Release Candidate

Attributes:

KeyStabilityRequirement LevelValue TypeDescriptionExample Values
cicd.worker.stateRelease CandidateRequiredstringCI/CDワーカー・エージェントの状態。available; busy; offline

cicd.worker.stateには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。

ValueDescriptionStability
availableワーカーはCI/CDシステムのために作業を実行していません。CI/CDシステムが作業を実行できる状態にあります(オンライン・アイドル)。[1]Release Candidate
busyワーカーはCI/CDシステムのために作業を実行しています。Release Candidate
offlineワーカーはCI/CDシステムから利用できません(切断・停止)。Release Candidate

[1]: パイプラインには、実行可能なワーカーに関する条件が設定されている場合があるため、すべてのワーカーがすべてのパイプラインで利用可能とは限りません。

メトリクス: cicd.pipeline.run.errors

このメトリクスはrecommendedです。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
cicd.pipeline.run.errorsCounter{error}パイプライン実行中に遭遇したエラー数(コンパイルエラー、テスト失敗など)。[1]Release Candidatecicd.pipeline

[1]: パイプライン実行には、致命的でないエラー(抑制されるものなど)が存在する場合や、並列ステージにおいて複数のステージが致命的なエラーを持つ場合があります。 このため、このエラー数は、実行結果failureを持つメトリクスcicd.pipeline.run.durationの件数と一致しない場合があります。

Attributes:

KeyStabilityRequirement LevelValue TypeDescriptionExample Values
cicd.pipeline.nameRelease CandidateRequiredstringCI/CDシステム内のパイプラインの、人間が読める名前。Build and Test; Lint; Deploy Go Project; deploy_to_environment
error.typeStableRequiredstring操作が終了したエラーのクラスを記述します。[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)。

ValueDescriptionStability
_OTHER計装が独自の値を定義していない場合に使用するフォールバック用のエラー値。Stable

メトリクス: cicd.system.errors

このメトリクスはrecommendedです。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
cicd.system.errorsCounter{error}CI/CDシステムのコンポーネント(コントローラー、スケジューラー、エージェントなど)で発生したエラー数。[1]Release Candidate

[1]: パイプライン実行の実行過程で発生するエラーは、明示的に除外されます。つまり、テストの失敗はこのメトリクスには含まれません。

Attributes:

KeyStabilityRequirement LevelValue TypeDescriptionExample Values
cicd.system.componentRelease CandidateRequiredstringCI/CDシステムのコンポーネントの名前。controller; scheduler; agent
error.typeStableRequiredstring操作が終了したエラーのクラスを記述します。[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)。

ValueDescriptionStability
_OTHER計装が独自の値を定義していない場合に使用するフォールバック用のエラー値。Stable

VCSメトリクス

この節で説明する規約は、バージョン管理システムに固有のものです。

免責事項: これらは初期のVCSメトリクスと属性であり、将来さらに追加される可能性があります。

メトリクス: vcs.change.count

このメトリクスはrecommendedです。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
vcs.change.countUpDownCounter{change}リポジトリ内の変更(プルリクエスト・マージリクエスト・チェンジリスト)の数を、その状態(openやmergedなど)別に分類したもの。Release Candidatevcs.repository

Attributes:

KeyStabilityRequirement LevelValue TypeDescriptionExample Values
vcs.change.stateRelease CandidateRequiredstring変更(プルリクエスト・マージリクエスト・チェンジリスト)の状態。open; closed; merged
vcs.repository.url.fullRelease CandidateRequiredstringブラウザでリポジトリを特定・識別するための完全な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.nameRelease CandidateRecommendedstringバージョン管理システム内のグループの所有者。my-org; myteam; business-unit
vcs.repository.nameRelease CandidateRecommendedstringリポジトリの人間が読める名前。GitLabのGroup/SubGroupやGitHubのorganizationのような追加の識別子を含めるべきではありません(SHOULD NOT)。[2]semantic-conventions; my-cool-repo
vcs.provider.nameRelease CandidateOpt-Instringバージョン管理システムのプロバイダー名。github; gitlab; gitea; bitbucket

[1] vcs.repository.url.full: Gitのバージョンコントロールシステムにおいて、正規URLに.git拡張子を含めるべきではありません(SHOULD NOT)。

[2] vcs.repository.name: 名前だけであるため、複数の組織やグループにわたってテレメトリーを収集する場合、同じバックエンド内で同じリポジトリのフォークと衝突する可能性があります。


vcs.change.stateには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。

ValueDescriptionStability
closedclosedとは、マージリクエストがマージされずにクローズされたことを意味します。これは、変更が不要と判断された、別の方法で問題が解決された、作成者がリクエストを取り下げることを決めたなど、さまざまな理由で発生する可能性があります。Release Candidate
mergedmergedは、変更が対象のコードベースに正常に統合されたことを示します。Release Candidate
openopenとは、変更が現在アクティブでレビュー中であることを意味します。対象のブランチにまだマージされておらず、変更やコメントの追加がまだ可能です。Release Candidate
wipWIP(work-in-progress、ドラフト)とは、変更がまだ進行中であり、まだ十分なレビューの準備ができていないことを意味します。今後も大きく変更される可能性があります。Release Candidate

vcs.provider.nameには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。

ValueDescriptionStability
bitbucketBitbucketRelease Candidate
giteaGiteaRelease Candidate
githubGitHubRelease Candidate
gitlabGitLabRelease Candidate

メトリクス: vcs.change.duration

このメトリクスはrecommendedです。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
vcs.change.durationGauges変更(プルリクエスト・マージリクエスト・チェンジリスト)が、ある状態に留まっている時間。Release Candidatevcs.repository

Attributes:

KeyStabilityRequirement LevelValue TypeDescriptionExample Values
vcs.change.stateRelease CandidateRequiredstring変更(プルリクエスト・マージリクエスト・チェンジリスト)の状態。open; closed; merged
vcs.ref.head.nameRelease CandidateRequiredstringリポジトリ内のbranchtagなどのreferenceの名前。[1]my-feature-branch; tag-1-test
vcs.repository.url.fullRelease CandidateRequiredstringブラウザでリポジトリを特定・識別するための完全な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.nameRelease CandidateRecommendedstringバージョン管理システム内のグループの所有者。my-org; myteam; business-unit
vcs.repository.nameRelease CandidateRecommendedstringリポジトリの人間が読める名前。GitLabのGroup/SubGroupやGitHubのorganizationのような追加の識別子を含めるべきではありません(SHOULD NOT)。[3]semantic-conventions; my-cool-repo
vcs.provider.nameRelease CandidateOpt-Instringバージョン管理システムのプロバイダー名。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)。

ValueDescriptionStability
closedclosedとは、マージリクエストがマージされずにクローズされたことを意味します。これは、変更が不要と判断された、別の方法で問題が解決された、作成者がリクエストを取り下げることを決めたなど、さまざまな理由で発生する可能性があります。Release Candidate
mergedmergedは、変更が対象のコードベースに正常に統合されたことを示します。Release Candidate
openopenとは、変更が現在アクティブでレビュー中であることを意味します。対象のブランチにまだマージされておらず、変更やコメントの追加がまだ可能です。Release Candidate
wipWIP(work-in-progress、ドラフト)とは、変更がまだ進行中であり、まだ十分なレビューの準備ができていないことを意味します。今後も大きく変更される可能性があります。Release Candidate

vcs.provider.nameには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。

ValueDescriptionStability
bitbucketBitbucketRelease Candidate
giteaGiteaRelease Candidate
githubGitHubRelease Candidate
gitlabGitLabRelease Candidate

メトリクス: vcs.change.time_to_approval

このメトリクスはrecommendedです。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
vcs.change.time_to_approvalGauges変更(プルリクエスト・マージリクエスト・チェンジリスト)が作成されてから最初の承認を得るまでにかかった時間。Developmentvcs.repository; vcs.ref

Attributes:

KeyStabilityRequirement LevelValue TypeDescriptionExample Values
vcs.ref.head.nameRelease CandidateRequiredstringリポジトリ内のbranchtagなどのreferenceの名前。[1]my-feature-branch; tag-1-test
vcs.repository.url.fullRelease CandidateRequiredstringブラウザでリポジトリを特定・識別するための完全な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.nameRelease CandidateRecommendedstringバージョン管理システム内のグループの所有者。my-org; myteam; business-unit
vcs.ref.base.nameRelease CandidateRecommendedstringリポジトリ内のbranchtagなどのreferenceの名前。[3]my-feature-branch; tag-1-test
vcs.repository.nameRelease CandidateRecommendedstringリポジトリの人間が読める名前。GitLabのGroup/SubGroupやGitHubのorganizationのような追加の識別子を含めるべきではありません(SHOULD NOT)。[4]semantic-conventions; my-cool-repo
vcs.provider.nameRelease CandidateOpt-Instringバージョン管理システムのプロバイダー名。github; gitlab; gitea; bitbucket
vcs.ref.base.revisionRelease CandidateOpt-Instringリビジョン、文字通り改訂版。リビジョンは、Gitではコミットオブジェクトを、SVNではリビジョン番号を指すことが最も多いです。[5]9d59409acf479dfa0df1aa568182e43e43df8bbe28d60fcf2bc52e30068802cc; main; 123; HEAD
vcs.ref.head.revisionRelease CandidateOpt-Instringリビジョン、文字通り改訂版。リビジョンは、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)。

ValueDescriptionStability
bitbucketBitbucketRelease Candidate
giteaGiteaRelease Candidate
githubGitHubRelease Candidate
gitlabGitLabRelease Candidate

メトリクス: vcs.change.time_to_merge

このメトリクスはrecommendedです。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
vcs.change.time_to_mergeGauges変更(プルリクエスト・マージリクエスト・チェンジリスト)が作成されてから、対象(base)のrefにマージされるまでにかかった時間。Developmentvcs.repository; vcs.ref

Attributes:

KeyStabilityRequirement LevelValue TypeDescriptionExample Values
vcs.ref.head.nameRelease CandidateRequiredstringリポジトリ内のbranchtagなどのreferenceの名前。[1]my-feature-branch; tag-1-test
vcs.repository.url.fullRelease CandidateRequiredstringブラウザでリポジトリを特定・識別するための完全な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.nameRelease CandidateRecommendedstringバージョン管理システム内のグループの所有者。my-org; myteam; business-unit
vcs.ref.base.nameRelease CandidateRecommendedstringリポジトリ内のbranchtagなどのreferenceの名前。[3]my-feature-branch; tag-1-test
vcs.repository.nameRelease CandidateRecommendedstringリポジトリの人間が読める名前。GitLabのGroup/SubGroupやGitHubのorganizationのような追加の識別子を含めるべきではありません(SHOULD NOT)。[4]semantic-conventions; my-cool-repo
vcs.provider.nameRelease CandidateOpt-Instringバージョン管理システムのプロバイダー名。github; gitlab; gitea; bitbucket
vcs.ref.base.revisionRelease CandidateOpt-Instringリビジョン、文字通り改訂版。リビジョンは、Gitではコミットオブジェクトを、SVNではリビジョン番号を指すことが最も多いです。[5]9d59409acf479dfa0df1aa568182e43e43df8bbe28d60fcf2bc52e30068802cc; main; 123; HEAD
vcs.ref.head.revisionRelease CandidateOpt-Instringリビジョン、文字通り改訂版。リビジョンは、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)。

ValueDescriptionStability
bitbucketBitbucketRelease Candidate
giteaGiteaRelease Candidate
githubGitHubRelease Candidate
gitlabGitLabRelease Candidate

メトリクス: vcs.repository.count

このメトリクスはrecommendedです。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
vcs.repository.countUpDownCounter{repository}組織内のリポジトリ数。Release Candidate

Attributes:

KeyStabilityRequirement LevelValue TypeDescriptionExample Values
vcs.owner.nameRelease CandidateRecommendedstringバージョン管理システム内のグループの所有者。my-org; myteam; business-unit
vcs.provider.nameRelease CandidateOpt-Instringバージョン管理システムのプロバイダー名。github; gitlab; gitea; bitbucket

vcs.provider.nameには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。

ValueDescriptionStability
bitbucketBitbucketRelease Candidate
giteaGiteaRelease Candidate
githubGitHubRelease Candidate
gitlabGitLabRelease Candidate

メトリクス: vcs.ref.count

このメトリクスはrecommendedです。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
vcs.ref.countUpDownCounter{ref}リポジトリ内のbranch型またはtag型のref数。Release Candidatevcs.repository

Attributes:

KeyStabilityRequirement LevelValue TypeDescriptionExample Values
vcs.ref.typeRelease CandidateRequiredstringリポジトリ内のreferenceの種類。branch; tag
vcs.repository.url.fullRelease CandidateRequiredstringブラウザでリポジトリを特定・識別するための完全な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.nameRelease CandidateRecommendedstringバージョン管理システム内のグループの所有者。my-org; myteam; business-unit
vcs.repository.nameRelease CandidateRecommendedstringリポジトリの人間が読める名前。GitLabのGroup/SubGroupやGitHubのorganizationのような追加の識別子を含めるべきではありません(SHOULD NOT)。[2]semantic-conventions; my-cool-repo
vcs.provider.nameRelease CandidateOpt-Instringバージョン管理システムのプロバイダー名。github; gitlab; gitea; bitbucket

[1] vcs.repository.url.full: Gitのバージョンコントロールシステムにおいて、正規URLに.git拡張子を含めるべきではありません(SHOULD NOT)。

[2] vcs.repository.name: 名前だけであるため、複数の組織やグループにわたってテレメトリーを収集する場合、同じバックエンド内で同じリポジトリのフォークと衝突する可能性があります。


vcs.provider.nameには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。

ValueDescriptionStability
bitbucketBitbucketRelease Candidate
giteaGiteaRelease Candidate
githubGitHubRelease Candidate
gitlabGitLabRelease Candidate

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

ValueDescriptionStability
branchbranchRelease Candidate
tagtagRelease Candidate

メトリクス: vcs.ref.lines_delta

このメトリクスはrecommendedです。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
vcs.ref.lines_deltaGauge{line}vcs.ref.base.name属性が示すrefと比較した、あるref(branch)で追加・削除された行数。[1]Release Candidatevcs.repository

[1]: このメトリクスは、vcs.line_change.typeの値ごとに報告されるべきです(should)。たとえば、あるrefで3行が追加され2行が削除された場合、計装は2つの計測値(3と2、いずれも正の数)を報告すべきです(SHOULD)。 追加・削除された行数を最初の時点から計算する場合、vcs.ref.base.nameは空文字列に設定されるべきです(SHOULD)。

Attributes:

KeyStabilityRequirement LevelValue TypeDescriptionExample Values
vcs.line_change.typeRelease CandidateRequiredstringbranchや変更について計測される行変更の種類。added; removed
vcs.ref.base.nameRelease CandidateRequiredstringリポジトリ内のbranchtagなどのreferenceの名前。[1]my-feature-branch; tag-1-test
vcs.ref.base.typeRelease CandidateRequiredstringリポジトリ内のreferenceの種類。[2]branch; tag
vcs.ref.head.nameRelease CandidateRequiredstringリポジトリ内のbranchtagなどのreferenceの名前。[3]my-feature-branch; tag-1-test
vcs.ref.head.typeRelease CandidateRequiredstringリポジトリ内のreferenceの種類。[4]branch; tag
vcs.repository.url.fullRelease CandidateRequiredstringブラウザでリポジトリを特定・識別するための完全な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.idRelease CandidateConditionally Required if a change is associated with the ref.string該当する場合の、変更(プルリクエスト・マージリクエスト・チェンジリスト)のID。これは通常、VCSシステムが生成する(リポジトリ内で一意な)識別子です。123
vcs.owner.nameRelease CandidateRecommendedstringバージョン管理システム内のグループの所有者。my-org; myteam; business-unit
vcs.repository.nameRelease CandidateRecommendedstringリポジトリの人間が読める名前。GitLabのGroup/SubGroupやGitHubのorganizationのような追加の識別子を含めるべきではありません(SHOULD NOT)。[6]semantic-conventions; my-cool-repo
vcs.provider.nameRelease CandidateOpt-Instringバージョン管理システムのプロバイダー名。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)。

ValueDescriptionStability
added追加された行数。Release Candidate
removed削除された行数。Release Candidate

vcs.provider.nameには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。

ValueDescriptionStability
bitbucketBitbucketRelease Candidate
giteaGiteaRelease Candidate
githubGitHubRelease Candidate
gitlabGitLabRelease Candidate

vcs.ref.base.typeには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。

ValueDescriptionStability
branchbranchRelease Candidate
tagtagRelease Candidate

vcs.ref.head.typeには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。

ValueDescriptionStability
branchbranchRelease Candidate
tagtagRelease Candidate

メトリクス: vcs.ref.revisions_delta

このメトリクスはrecommendedです。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
vcs.ref.revisions_deltaGauge{revision}vcs.ref.base.name属性が示すbranchと比較して、あるref(branch)が進んでいる・遅れているリビジョン(コミット)数。[1]Release Candidatevcs.repository

[1]: このメトリクスは、vcs.revision_delta.directionの値ごとに報告されるべきです(should)。たとえば、branch atrunkに対して3コミット遅れ、2コミット進んでいる場合、計装は2つの計測値(3と2、いずれも正の数)を報告すべきであり(SHOULD)、vcs.ref.base.nametrunkに設定されます。

Attributes:

KeyStabilityRequirement LevelValue TypeDescriptionExample Values
vcs.ref.base.nameRelease CandidateRequiredstringリポジトリ内のbranchtagなどのreferenceの名前。[1]my-feature-branch; tag-1-test
vcs.ref.base.typeRelease CandidateRequiredstringリポジトリ内のreferenceの種類。[2]branch; tag
vcs.ref.head.nameRelease CandidateRequiredstringリポジトリ内のbranchtagなどのreferenceの名前。[3]my-feature-branch; tag-1-test
vcs.ref.head.typeRelease CandidateRequiredstringリポジトリ内のreferenceの種類。[4]branch; tag
vcs.repository.url.fullRelease CandidateRequiredstringブラウザでリポジトリを特定・識別するための完全な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.directionRelease CandidateRequiredstringリビジョン比較の種類。ahead; behind
vcs.change.idRelease CandidateConditionally Required if a change is associated with the ref.string該当する場合の、変更(プルリクエスト・マージリクエスト・チェンジリスト)のID。これは通常、VCSシステムが生成する(リポジトリ内で一意な)識別子です。123
vcs.owner.nameRelease CandidateRecommendedstringバージョン管理システム内のグループの所有者。my-org; myteam; business-unit
vcs.repository.nameRelease CandidateRecommendedstringリポジトリの人間が読める名前。GitLabのGroup/SubGroupやGitHubのorganizationのような追加の識別子を含めるべきではありません(SHOULD NOT)。[6]semantic-conventions; my-cool-repo
vcs.provider.nameRelease CandidateOpt-Instringバージョン管理システムのプロバイダー名。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)。

ValueDescriptionStability
bitbucketBitbucketRelease Candidate
giteaGiteaRelease Candidate
githubGitHubRelease Candidate
gitlabGitLabRelease Candidate

vcs.ref.base.typeには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。

ValueDescriptionStability
branchbranchRelease Candidate
tagtagRelease Candidate

vcs.ref.head.typeには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。

ValueDescriptionStability
branchbranchRelease Candidate
tagtagRelease Candidate

vcs.revision_delta.directionには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。

ValueDescriptionStability
ahead変更が対象のrefより進んでいるリビジョン数。Release Candidate
behind変更が対象のrefより遅れているリビジョン数。Release Candidate

メトリクス: vcs.ref.time

このメトリクスはrecommendedです。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
vcs.ref.timeGaugesデフォルトブランチ(trunk)から作成されたref(branch)が存在してきた時間。ref.type属性は常にbranchです。Release Candidatevcs.repository

Attributes:

KeyStabilityRequirement LevelValue TypeDescriptionExample Values
vcs.ref.head.nameRelease CandidateRequiredstringリポジトリ内のbranchtagなどのreferenceの名前。[1]my-feature-branch; tag-1-test
vcs.ref.head.typeRelease CandidateRequiredstringリポジトリ内のreferenceの種類。[2]branch; tag
vcs.repository.url.fullRelease CandidateRequiredstringブラウザでリポジトリを特定・識別するための完全な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.nameRelease CandidateRecommendedstringバージョン管理システム内のグループの所有者。my-org; myteam; business-unit
vcs.repository.nameRelease CandidateRecommendedstringリポジトリの人間が読める名前。GitLabのGroup/SubGroupやGitHubのorganizationのような追加の識別子を含めるべきではありません(SHOULD NOT)。[4]semantic-conventions; my-cool-repo
vcs.provider.nameRelease CandidateOpt-Instringバージョン管理システムのプロバイダー名。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)。

ValueDescriptionStability
bitbucketBitbucketRelease Candidate
giteaGiteaRelease Candidate
githubGitHubRelease Candidate
gitlabGitLabRelease Candidate

vcs.ref.head.typeには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。

ValueDescriptionStability
branchbranchRelease Candidate
tagtagRelease Candidate

メトリクス: vcs.contributor.count

このメトリクスはopt-inです。

NameInstrument TypeUnit (UCUM)DescriptionStabilityEntity Associations
vcs.contributor.countGauge{contributor}リポジトリに対する一意な貢献者の数。Release Candidatevcs.repository

Attributes:

KeyStabilityRequirement LevelValue TypeDescriptionExample Values
vcs.repository.url.fullRelease CandidateRequiredstringブラウザでリポジトリを特定・識別するための完全な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.nameRelease CandidateRecommendedstringバージョン管理システム内のグループの所有者。my-org; myteam; business-unit
vcs.repository.nameRelease CandidateRecommendedstringリポジトリの人間が読める名前。GitLabのGroup/SubGroupやGitHubのorganizationのような追加の識別子を含めるべきではありません(SHOULD NOT)。[2]semantic-conventions; my-cool-repo
vcs.provider.nameRelease CandidateOpt-Instringバージョン管理システムのプロバイダー名。github; gitlab; gitea; bitbucket

[1] vcs.repository.url.full: Gitのバージョンコントロールシステムにおいて、正規URLに.git拡張子を含めるべきではありません(SHOULD NOT)。

[2] vcs.repository.name: 名前だけであるため、複数の組織やグループにわたってテレメトリーを収集する場合、同じバックエンド内で同じリポジトリのフォークと衝突する可能性があります。


vcs.provider.nameには、次のよく知られた値の一覧があります。これらのいずれかが該当する場合は、対応する値を使用しなければなりません(MUST)。そうでない場合は、独自の値を使用してもかまいません(MAY)。

ValueDescriptionStability
bitbucketBitbucketRelease Candidate
giteaGiteaRelease Candidate
githubGitHubRelease Candidate
gitlabGitLabRelease Candidate