CICD 指标的语义约定

状态: 开发中

CI/CD 指标

本节描述的约定特定于持续集成/持续部署 (CICD) 系统。

免责声明: 这些是最初的 CICD 指标和属性,但未来可能会添加更多。

关于每个管道运行指标的指南

收集每个管道运行的特定指标可能很有用。
此类指标的示例包括

  • 主机指标,例如管道运行执行所在工作程序的 CPU、内存、磁盘
  • 容器指标,例如 CPU、内存请求和限制
  • 作为管道运行一部分执行的任何进程的运行时指标,例如 JVM 指标

这些指标可用于将构建失败与环境问题(如过载或内存不足)相关联。它们也可用于管道级别聚合,以告知调整分配的工作程序资源。

在 CI/CD 管道中报告主机、容器、运行时和其他指标时,仪表化作者和应用程序开发人员应使用适用的 CICD 和 VCS 资源约定,并且还可以选择性地将所有或特定指标与 cicd.pipeline.run 关联,以将它们与运行信息进行关联。

cicd.pipeline.run 实体标识一个管道运行。将其与指标关联会自然导致高基数,并可能增加某些指标存储后端的使用成本。因此,cicd.pipeline.run 实体必须是选择加入的。

指标: cicd.pipeline.run.duration

此指标是推荐的。

名称Instrument TypeUnit (UCUM)描述Stability实体关联
cicd.pipeline.run.durationHistograms按管道、状态和结果分组的管道运行的持续时间。Developmentcicd.pipeline

Attributes

Stability需求级别Value Type描述Example Values
cicd.pipeline.nameDevelopment必需字符串CI/CD 系统中流水线的可读名称。构建和测试; Lint; 部署 Go 项目; deploy_to_environment
cicd.pipeline.run.stateDevelopment必需字符串管道运行在其生命周期中会经历这些状态。pendingexecutingfinalizing
cicd.pipeline.resultDevelopment有条件地必需 [1]字符串流水线运行的结果。success; failure; timeout; skipped
error.typeStable有条件要求 仅当管道运行失败时。字符串描述操作结束时发生的错误类型。[2]timeoutjava.net.UnknownHostExceptionserver_certificate_invalid500

[1] cicd.pipeline.result 仅当在该状态下设置了管道运行结果时。

[2] error.type: error.type 应可预测且具有低基数。

error.type 设置为某个类型(例如,异常类型)时,应该使用该工件内识别类型的规范类名。

Instrumentations 应该记录它们报告的错误列表。

一个仪器库内的 error.type 基数性应该低。从多个仪器库和应用程序聚合数据的遥测消费者,在没有额外过滤时,应准备好 error.type 在查询时具有高基数性。

如果操作已成功完成,Instrumentations 不应设置 error.type

如果特定域定义了自己的一组错误标识符(例如 HTTP 或 gRPC 状态码),则建议

  • 使用特定于域的属性
  • 设置 error.type 以捕获所有错误,无论它们是否包含在特定于域的集合中。

cicd.pipeline.result 具有以下已知值列表。如果适用其中一个,则必须使用相应的名称;否则,可以使用自定义名称。

描述Stability
cancellation流水线运行被取消,例如,由用户手动取消流水线运行。Development
错误流水线运行因 CICD 系统中的错误而失败,例如,由于工作者被终止。Development
failure流水线运行未成功完成,例如,由于编译错误或测试失败。此类失败通常由流水线运行中执行的工具的非零退出码检测到。Development
skip流水线运行被跳过,例如,由于未满足先决条件。Development
success流水线运行已成功完成。Development
timeout超时导致流水线运行被中断。Development

cicd.pipeline.run.state 具有以下已知值列表。如果其中一个适用,则必须使用相应的选项;否则,可以改用自定义选项。

描述Stability
executing执行状态涵盖任何运行任务(例如,构建、测试)的执行。Development
finalizing最终确定状态涵盖从运行完成执行(例如,清理运行资源)开始。Development
pending运行挂起状态涵盖从触发管道运行的事件到运行执行开始(例如,在队列中花费的时间、预配代理、创建运行资源)。Development

error.type 具有以下已知值列表。如果其中一个适用,则必须使用相应的值;否则,可以使用自定义值。

描述Stability
_OTHER当检测不到自定义值时使用的回退错误值。Stable

指标: cicd.pipeline.run.active

此指标是推荐的。

名称Instrument TypeUnit (UCUM)描述Stability实体关联
cicd.pipeline.run.activeUpDownCounter{run}系统中当前活动的管道运行数量,按状态分类。Developmentcicd.pipeline

Attributes

Stability需求级别Value Type描述Example Values
cicd.pipeline.nameDevelopment必需字符串CI/CD 系统中流水线的可读名称。构建和测试; Lint; 部署 Go 项目; deploy_to_environment
cicd.pipeline.run.stateDevelopment必需字符串管道运行在其生命周期中会经历这些状态。pendingexecutingfinalizing

cicd.pipeline.run.state 具有以下已知值列表。如果其中一个适用,则必须使用相应的选项;否则,可以改用自定义选项。

描述Stability
executing执行状态涵盖任何运行任务(例如,构建、测试)的执行。Development
finalizing最终确定状态涵盖从运行完成执行(例如,清理运行资源)开始。Development
pending运行挂起状态涵盖从触发管道运行的事件到运行执行开始(例如,在队列中花费的时间、预配代理、创建运行资源)。Development

指标: cicd.worker.count

此指标是推荐的。

名称Instrument TypeUnit (UCUM)描述Stability实体关联
cicd.worker.countUpDownCounter{count}CI/CD 系统上的工作程序数量,按状态分类。Development

Attributes

Stability需求级别Value Type描述Example Values
cicd.worker.stateDevelopment必需字符串CI/CD 工作程序/代理的状态。idlebusydown

cicd.worker.state 具有以下已知值列表。如果其中一个适用,则必须使用相应的选项;否则,可以改用自定义选项。

描述Stability
available工作程序未为 CI/CD 系统执行工作。它可供 CI/CD 系统执行工作(在线/空闲)。[1]Development
busy工作程序正在为 CI/CD 系统执行工作。Development
offline工作程序不可供 CI/CD 系统使用(断开连接/关闭)。Development

[1]: 管道可能存在运行它们能够运行的工作程序的条件,因此并非所有工作程序都可能适用于所有管道。

指标: cicd.pipeline.run.errors

此指标是推荐的。

名称Instrument TypeUnit (UCUM)描述Stability实体关联
cicd.pipeline.run.errorsCounter{error}管道运行中遇到的错误数量(例如,编译、测试失败)。[1]Developmentcicd.pipeline

[1]: 管道运行中可能存在非致命错误(例如,它们被抑制),或者在并行阶段,多个阶段可能存在致命错误。这意味着此错误计数可能不等于结果为failure的指标cicd.pipeline.run.duration的计数。

Attributes

Stability需求级别Value Type描述Example Values
cicd.pipeline.nameDevelopment必需字符串CI/CD 系统中流水线的可读名称。构建和测试; Lint; 部署 Go 项目; deploy_to_environment
error.typeStable必需字符串描述操作最终结束的一类错误。[1]timeoutjava.net.UnknownHostExceptionserver_certificate_invalid500

[1] error.type error.type 应该可预测,并且应该具有低基数性。

error.type 设置为某个类型(例如,异常类型)时,应该使用该工件内识别类型的规范类名。

Instrumentations 应该记录它们报告的错误列表。

一个仪器库内的 error.type 基数性应该低。从多个仪器库和应用程序聚合数据的遥测消费者,在没有额外过滤时,应准备好 error.type 在查询时具有高基数性。

如果操作已成功完成,Instrumentations 不应设置 error.type

如果特定域定义了自己的一组错误标识符(例如 HTTP 或 gRPC 状态码),则建议

  • 使用特定于域的属性
  • 设置 error.type 以捕获所有错误,无论它们是否包含在特定于域的集合中。

error.type 具有以下已知值列表。如果其中一个适用,则必须使用相应的值;否则,可以使用自定义值。

描述Stability
_OTHER当检测不到自定义值时使用的回退错误值。Stable

指标: cicd.system.errors

此指标是推荐的。

名称Instrument TypeUnit (UCUM)描述Stability实体关联
cicd.system.errorsCounter{error}CI/CD 系统组件(例如,控制器、调度程序、代理)中的错误数量。[1]Development

[1]: 明确排除了管道运行执行中的错误。例如,测试失败不计入此指标。

Attributes

Stability需求级别Value Type描述Example Values
cicd.system.componentDevelopment必需字符串CI/CD 系统组件的名称。controllerscheduleragent
error.typeStable必需字符串描述操作最终结束的一类错误。[1]timeoutjava.net.UnknownHostExceptionserver_certificate_invalid500

[1] error.type error.type 应该可预测,并且应该具有低基数性。

error.type 设置为某个类型(例如,异常类型)时,应该使用该工件内识别类型的规范类名。

Instrumentations 应该记录它们报告的错误列表。

一个仪器库内的 error.type 基数性应该低。从多个仪器库和应用程序聚合数据的遥测消费者,在没有额外过滤时,应准备好 error.type 在查询时具有高基数性。

如果操作已成功完成,Instrumentations 不应设置 error.type

如果特定域定义了自己的一组错误标识符(例如 HTTP 或 gRPC 状态码),则建议

  • 使用特定于域的属性
  • 设置 error.type 以捕获所有错误,无论它们是否包含在特定于域的集合中。

error.type 具有以下已知值列表。如果其中一个适用,则必须使用相应的值;否则,可以使用自定义值。

描述Stability
_OTHER当检测不到自定义值时使用的回退错误值。Stable

VCS 指标

本节描述的约定特定于版本控制系统。

免责声明: 这些是最初的 VCS 指标和属性,但未来可能会添加更多。

指标: vcs.change.count

此指标是推荐的。

名称Instrument TypeUnit (UCUM)描述Stability实体关联
vcs.change.countUpDownCounter{change}存储库中的更改(拉取请求/合并请求/变更列表)数量,按其状态(例如,打开或已合并)进行分类。Developmentvcs.repo

Attributes

Stability需求级别Value Type描述Example Values
vcs.change.stateDevelopment必需字符串更改(拉取请求/合并请求/变更列表)的状态。openclosedmerged
vcs.repository.url.fullDevelopment必需字符串提供存储库的完整 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.nameDevelopment推荐字符串版本控制系统内的组所有者。my-orgmyteambusiness-unit
vcs.repository.nameDevelopment推荐字符串存储库的人类可读名称。它不应包含任何额外的标识符,例如 GitLab 中的 Group/SubGroup 或 GitHub 中的 organization。[2]semantic-conventions; my-cool-repo
vcs.provider.nameDevelopment选择加入字符串版本控制系统提供商的名称。githubgitlabgiteabitbucket

[1] vcs.repository.url.full 在 Git 版本控制系统中,规范 URL 不应包含 .git 扩展名。

[2] vcs.repository.name 由于它只是名称,因此在同一后端收集跨多个组织或组的遥测数据时,它可能会与同一存储库的分支发生冲突。


vcs.change.state 具有以下已知值列表。如果其中一个适用,则必须使用相应的选项;否则,可以改用自定义选项。

描述Stability
closedClosed 表示合并请求在未合并的情况下被关闭。这可能出于多种原因,例如更改被认为不必要、问题以其他方式得到解决,或作者决定撤回请求。Development
mergedMerged 表示更改已成功集成到目标代码库中。Development
openOpen 表示更改当前处于活动状态并正在接受审查。它尚未合并到目标分支中,仍然可以进行更改或添加注释。Development
wipWIP(进行中,草稿)表示更改仍在进行中,尚未准备好进行全面审查。它可能仍会进行重大更改。Development

vcs.provider.name 具有以下已知值列表。如果其中一个适用,则必须使用相应的选项;否则,可以改用自定义选项。

描述Stability
bitbucketBitbucketDevelopment
giteaGiteaDevelopment
githubGitHubDevelopment
gitlabGitLabDevelopment

指标: vcs.change.duration

此指标是推荐的。

名称Instrument TypeUnit (UCUM)描述Stability实体关联
vcs.change.durationGauges更改(拉取请求/合并请求/变更列表)处于给定状态的时间持续时间。Developmentvcs.repo

Attributes

Stability需求级别Value Type描述Example Values
vcs.change.stateDevelopment必需字符串更改(拉取请求/合并请求/变更列表)的状态。openclosedmerged
vcs.ref.head.nameDevelopment必需字符串存储库中的引用的名称,例如**分支**或**标签**。[1]my-feature-branch; tag-1-test
vcs.repository.url.fullDevelopment必需字符串提供存储库的完整 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.nameDevelopment推荐字符串版本控制系统内的组所有者。my-orgmyteambusiness-unit
vcs.repository.nameDevelopment推荐字符串存储库的人类可读名称。它不应包含任何额外的标识符,例如 GitLab 中的 Group/SubGroup 或 GitHub 中的 organization。[3]semantic-conventions; my-cool-repo
vcs.provider.nameDevelopment选择加入字符串版本控制系统提供商的名称。githubgitlabgiteabitbucket

[1] vcs.ref.head.name: head 指的是你当前的位置;在给定时间点的当前引用。

[2] vcs.repository.url.full 在 Git 版本控制系统中,规范 URL 不应包含 .git 扩展名。

[3] vcs.repository.name 由于它只是名称,因此在同一后端收集跨多个组织或组的遥测数据时,它可能会与同一存储库的分支发生冲突。


vcs.change.state 具有以下已知值列表。如果其中一个适用,则必须使用相应的选项;否则,可以改用自定义选项。

描述Stability
closedClosed 表示合并请求在未合并的情况下被关闭。这可能出于多种原因,例如更改被认为不必要、问题以其他方式得到解决,或作者决定撤回请求。Development
mergedMerged 表示更改已成功集成到目标代码库中。Development
openOpen 表示更改当前处于活动状态并正在接受审查。它尚未合并到目标分支中,仍然可以进行更改或添加注释。Development
wipWIP(进行中,草稿)表示更改仍在进行中,尚未准备好进行全面审查。它可能仍会进行重大更改。Development

vcs.provider.name 具有以下已知值列表。如果其中一个适用,则必须使用相应的选项;否则,可以改用自定义选项。

描述Stability
bitbucketBitbucketDevelopment
giteaGiteaDevelopment
githubGitHubDevelopment
gitlabGitLabDevelopment

指标: vcs.change.time_to_approval

此指标是推荐的。

名称Instrument TypeUnit (UCUM)描述Stability实体关联
vcs.change.time_to_approvalGauges更改(拉取请求/合并请求/变更列表)自创建以来获得第一次批准所需的时间。Developmentvcs.repovcs.ref

Attributes

Stability需求级别Value Type描述Example Values
vcs.ref.head.nameDevelopment必需字符串存储库中的引用的名称,例如**分支**或**标签**。[1]my-feature-branch; tag-1-test
vcs.repository.url.fullDevelopment必需字符串提供存储库的完整 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.nameDevelopment推荐字符串版本控制系统内的组所有者。my-orgmyteambusiness-unit
vcs.ref.base.nameDevelopment推荐字符串存储库中引用的名称,例如分支标签。[3]my-feature-branch; tag-1-test
vcs.repository.nameDevelopment推荐字符串存储库的人类可读名称。它不应包含任何额外的标识符,例如 GitLab 中的 Group/SubGroup 或 GitHub 中的 organization。[4]semantic-conventions; my-cool-repo
vcs.provider.nameDevelopment选择加入字符串版本控制系统提供商的名称。githubgitlabgiteabitbucket
vcs.ref.base.revisionDevelopment选择加入字符串修订版,字面意思是修订版本。修订版最常指 Git 中的提交对象,或 SVN 中的修订号。[5]9d59409acf479dfa0df1aa568182e43e43df8bbe28d60fcf2bc52e30068802cc; main; 123; HEAD
vcs.ref.head.revisionDevelopment选择加入字符串修订版,字面意思是修订版本。修订版最常指 Git 中的提交对象,或 SVN 中的修订号。[6]9d59409acf479dfa0df1aa568182e43e43df8bbe28d60fcf2bc52e30068802cc; main; 123; HEAD

[1] vcs.ref.head.name: head 指的是你当前的位置;在给定时间点的当前引用。

[2] vcs.repository.url.full 在 Git 版本控制系统中,规范 URL 不应包含 .git 扩展名。

[3] vcs.ref.base.name base 指的是更改的起点。例如,如果您从 main 分支创建了一个新的分支引用并创建了新的提交,那么 main 将是类型为分支的基本引用。

[4] vcs.repository.name 由于它只是名称,因此在同一后端收集跨多个组织或组的遥测数据时,它可能会与同一存储库的分支发生冲突。

[5] vcs.ref.base.revision base 指的是更改的起点。例如,如果您从 main 分支创建了一个新的分支引用并创建了新的提交,那么 main 将是类型为分支的基本引用。修订版可以是存储库中引用的完整哈希值(请参阅词汇表),指向提交对象。它不一定必须是哈希值;它可以只是定义一个单调递增的整数修订号。在与 ref.base.name 相同的情况下,仍应包含它。由实现者决定基于 VCS 系统和具体情况设置哪个值作为修订版。

[6] vcs.ref.head.revision head 指的是您当前所处的位置;给定时间点的当前引用。修订版可以是存储库中引用的完整哈希值(请参阅词汇表),指向提交对象。它不一定必须是哈希值;它可以只是定义一个单调递增的整数修订号。在与 ref.head.name 相同的情况下,仍应包含它。由实现者决定基于 VCS 系统和具体情况设置哪个值作为修订版。


vcs.provider.name 具有以下已知值列表。如果其中一个适用,则必须使用相应的选项;否则,可以改用自定义选项。

描述Stability
bitbucketBitbucketDevelopment
giteaGiteaDevelopment
githubGitHubDevelopment
gitlabGitLabDevelopment

指标: vcs.change.time_to_merge

此指标是推荐的。

名称Instrument TypeUnit (UCUM)描述Stability实体关联
vcs.change.time_to_mergeGauges更改(拉取请求/合并请求/变更列表)合并到目标(基准)引用所需的时间。Developmentvcs.repovcs.ref

Attributes

Stability需求级别Value Type描述Example Values
vcs.ref.head.nameDevelopment必需字符串存储库中的引用的名称,例如**分支**或**标签**。[1]my-feature-branch; tag-1-test
vcs.repository.url.fullDevelopment必需字符串提供存储库的完整 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.nameDevelopment推荐字符串版本控制系统内的组所有者。my-orgmyteambusiness-unit
vcs.ref.base.nameDevelopment推荐字符串存储库中引用的名称,例如分支标签。[3]my-feature-branch; tag-1-test
vcs.repository.nameDevelopment推荐字符串存储库的人类可读名称。它不应包含任何额外的标识符,例如 GitLab 中的 Group/SubGroup 或 GitHub 中的 organization。[4]semantic-conventions; my-cool-repo
vcs.provider.nameDevelopment选择加入字符串版本控制系统提供商的名称。githubgitlabgiteabitbucket
vcs.ref.base.revisionDevelopment选择加入字符串修订版,字面意思是修订版本。修订版最常指 Git 中的提交对象,或 SVN 中的修订号。[5]9d59409acf479dfa0df1aa568182e43e43df8bbe28d60fcf2bc52e30068802cc; main; 123; HEAD
vcs.ref.head.revisionDevelopment选择加入字符串修订版,字面意思是修订版本。修订版最常指 Git 中的提交对象,或 SVN 中的修订号。[6]9d59409acf479dfa0df1aa568182e43e43df8bbe28d60fcf2bc52e30068802cc; main; 123; HEAD

[1] vcs.ref.head.name: head 指的是你当前的位置;在给定时间点的当前引用。

[2] vcs.repository.url.full 在 Git 版本控制系统中,规范 URL 不应包含 .git 扩展名。

[3] vcs.ref.base.name base 指的是更改的起点。例如,如果您从 main 分支创建了一个新的分支引用并创建了新的提交,那么 main 将是类型为分支的基本引用。

[4] vcs.repository.name 由于它只是名称,因此在同一后端收集跨多个组织或组的遥测数据时,它可能会与同一存储库的分支发生冲突。

[5] vcs.ref.base.revision base 指的是更改的起点。例如,如果您从 main 分支创建了一个新的分支引用并创建了新的提交,那么 main 将是类型为分支的基本引用。修订版可以是存储库中引用的完整哈希值(请参阅词汇表),指向提交对象。它不一定必须是哈希值;它可以只是定义一个单调递增的整数修订号。在与 ref.base.name 相同的情况下,仍应包含它。由实现者决定基于 VCS 系统和具体情况设置哪个值作为修订版。

[6] vcs.ref.head.revision head 指的是您当前所处的位置;给定时间点的当前引用。修订版可以是存储库中引用的完整哈希值(请参阅词汇表),指向提交对象。它不一定必须是哈希值;它可以只是定义一个单调递增的整数修订号。在与 ref.head.name 相同的情况下,仍应包含它。由实现者决定基于 VCS 系统和具体情况设置哪个值作为修订版。


vcs.provider.name 具有以下已知值列表。如果其中一个适用,则必须使用相应的选项;否则,可以改用自定义选项。

描述Stability
bitbucketBitbucketDevelopment
giteaGiteaDevelopment
githubGitHubDevelopment
gitlabGitLabDevelopment

指标: vcs.repository.count

此指标是推荐的。

名称Instrument TypeUnit (UCUM)描述Stability实体关联
vcs.repository.countUpDownCounter{repository}组织中的存储库数量。Development

Attributes

Stability需求级别Value Type描述Example Values
vcs.owner.nameDevelopment推荐字符串版本控制系统内的组所有者。my-orgmyteambusiness-unit
vcs.provider.nameDevelopment选择加入字符串版本控制系统提供商的名称。githubgitlabgiteabitbucket

vcs.provider.name 具有以下已知值列表。如果其中一个适用,则必须使用相应的选项;否则,可以改用自定义选项。

描述Stability
bitbucketBitbucketDevelopment
giteaGiteaDevelopment
githubGitHubDevelopment
gitlabGitLabDevelopment

指标: vcs.ref.count

此指标是推荐的。

名称Instrument TypeUnit (UCUM)描述Stability实体关联
vcs.ref.countUpDownCounter{ref}存储库中分支或标签的引用数量。Developmentvcs.repo

Attributes

Stability需求级别Value Type描述Example Values
vcs.ref.typeDevelopment必需字符串存储库中引用的类型。branch; tag
vcs.repository.url.fullDevelopment必需字符串提供存储库的完整 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.nameDevelopment推荐字符串版本控制系统内的组所有者。my-orgmyteambusiness-unit
vcs.repository.nameDevelopment推荐字符串存储库的人类可读名称。它不应包含任何额外的标识符,例如 GitLab 中的 Group/SubGroup 或 GitHub 中的 organization。[2]semantic-conventions; my-cool-repo
vcs.provider.nameDevelopment选择加入字符串版本控制系统提供商的名称。githubgitlabgiteabitbucket

[1] vcs.repository.url.full 在 Git 版本控制系统中,规范 URL 不应包含 .git 扩展名。

[2] vcs.repository.name 由于它只是名称,因此在同一后端收集跨多个组织或组的遥测数据时,它可能会与同一存储库的分支发生冲突。


vcs.provider.name 具有以下已知值列表。如果其中一个适用,则必须使用相应的选项;否则,可以改用自定义选项。

描述Stability
bitbucketBitbucketDevelopment
giteaGiteaDevelopment
githubGitHubDevelopment
gitlabGitLabDevelopment

vcs.ref.type 具有以下一系列已知值。如果适用其中一项,则必须使用相应的值;否则,可以改用自定义值。

描述Stability
branchbranchDevelopment
tagtagDevelopment

指标: vcs.ref.lines_delta

此指标是推荐的。

名称Instrument TypeUnit (UCUM)描述Stability实体关联
vcs.ref.lines_deltaGauge{line}相对于 vcs.ref.base.name 属性中的引用,ref(分支)中添加/删除的行数。[1]Developmentvcs.repo

[1]: 此指标应为每个 vcs.line_change.type 值报告。例如,如果一个分支添加了 3 行并删除了 2 行,则仪表化应报告两次测量:3 和 2(均为正数)。如果行数添加/删除应从头开始计算,则 vcs.ref.base.name 应设置为空字符串。

Attributes

Stability需求级别Value Type描述Example Values
vcs.line_change.typeDevelopment必需字符串在分支或更改上测量的行更改的类型。addedremoved
vcs.ref.base.nameDevelopment必需字符串存储库中的引用的名称,例如**分支**或**标签**。[1]my-feature-branch; tag-1-test
vcs.ref.base.typeDevelopment必需字符串存储库中引用的类型。[2]branch; tag
vcs.ref.head.nameDevelopment必需字符串存储库中引用的名称,例如分支标签。[3]my-feature-branch; tag-1-test
vcs.ref.head.typeDevelopment必需字符串存储库中引用的类型。[4]branch; tag
vcs.repository.url.fullDevelopment必需字符串提供存储库的完整 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.idDevelopment如果与引用关联,则有条件要求字符串如果适用,更改(拉取请求/合并请求/变更列表)的 ID。这通常是 VCS 系统生成的存储库内的唯一标识符。123
vcs.owner.nameDevelopment推荐字符串版本控制系统内的组所有者。my-orgmyteambusiness-unit
vcs.repository.nameDevelopment推荐字符串存储库的人类可读名称。它不应包含任何额外的标识符,例如 GitLab 中的 Group/SubGroup 或 GitHub 中的 organization。[6]semantic-conventions; my-cool-repo
vcs.provider.nameDevelopment选择加入字符串版本控制系统提供商的名称。githubgitlabgiteabitbucket

[1] vcs.ref.base.name base 指的是更改的起点。例如,如果您从 main 分支创建了一个新的分支引用并创建了新的提交,那么 main 将是类型为分支的基本引用。

[2] vcs.ref.base.type base 指的是更改的起点。例如,如果您从 main 分支创建了一个新的分支引用并创建了新的提交,那么 main 将是类型为分支的基本引用。

[3] vcs.ref.head.name head 指的是您当前所处的位置;给定时间点的当前引用。

[4] vcs.ref.head.type head 指的是您当前所处的位置;给定时间点的当前引用。

[5] vcs.repository.url.full 在 Git 版本控制系统中,规范 URL 不应包含 .git 扩展名。

[6] vcs.repository.name 由于它只是名称,因此在同一后端收集跨多个组织或组的遥测数据时,它可能会与同一存储库的分支发生冲突。


vcs.line_change.type 具有以下已知值列表。如果其中一个适用,则必须使用相应的选项;否则,可以改用自定义选项。

描述Stability
added添加了多少行。Development
removed删除了多少行。Development

vcs.provider.name 具有以下已知值列表。如果其中一个适用,则必须使用相应的选项;否则,可以改用自定义选项。

描述Stability
bitbucketBitbucketDevelopment
giteaGiteaDevelopment
githubGitHubDevelopment
gitlabGitLabDevelopment

vcs.ref.base.type 具有以下已知值列表。如果其中一个适用,则必须使用相应的选项;否则,可以改用自定义选项。

描述Stability
branchbranchDevelopment
tagtagDevelopment

vcs.ref.head.type 具有以下已知值列表。如果其中一个适用,则必须使用相应的选项;否则,可以改用自定义选项。

描述Stability
branchbranchDevelopment
tagtagDevelopment

指标: vcs.ref.revisions_delta

此指标是推荐的。

名称Instrument TypeUnit (UCUM)描述Stability实体关联
vcs.ref.revisions_deltaGauge{revision}ref(分支)相对于 vcs.ref.base.name 属性中的分支,超前/滞后的修订(提交)数量。[1]Developmentvcs.repo

[1]: 此指标应为每个 vcs.revision_delta.direction 值报告。例如,如果分支 atrunk 落后 3 个提交且领先 2 个提交,则仪表化应报告两次测量:3 和 2(均为正数),并且 vcs.ref.base.name 设置为 trunk

Attributes

Stability需求级别Value Type描述Example Values
vcs.ref.base.nameDevelopment必需字符串存储库中的引用的名称,例如**分支**或**标签**。[1]my-feature-branch; tag-1-test
vcs.ref.base.typeDevelopment必需字符串存储库中引用的类型。[2]branch; tag
vcs.ref.head.nameDevelopment必需字符串存储库中引用的名称,例如分支标签。[3]my-feature-branch; tag-1-test
vcs.ref.head.typeDevelopment必需字符串存储库中引用的类型。[4]branch; tag
vcs.repository.url.fullDevelopment必需字符串提供存储库的完整 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.directionDevelopment必需字符串修订比较的类型。aheadbehind
vcs.change.idDevelopment如果与引用关联,则有条件要求字符串如果适用,更改(拉取请求/合并请求/变更列表)的 ID。这通常是 VCS 系统生成的存储库内的唯一标识符。123
vcs.owner.nameDevelopment推荐字符串版本控制系统内的组所有者。my-orgmyteambusiness-unit
vcs.repository.nameDevelopment推荐字符串存储库的人类可读名称。它不应包含任何额外的标识符,例如 GitLab 中的 Group/SubGroup 或 GitHub 中的 organization。[6]semantic-conventions; my-cool-repo
vcs.provider.nameDevelopment选择加入字符串版本控制系统提供商的名称。githubgitlabgiteabitbucket

[1] vcs.ref.base.name base 指的是更改的起点。例如,如果您从 main 分支创建了一个新的分支引用并创建了新的提交,那么 main 将是类型为分支的基本引用。

[2] vcs.ref.base.type base 指的是更改的起点。例如,如果您从 main 分支创建了一个新的分支引用并创建了新的提交,那么 main 将是类型为分支的基本引用。

[3] vcs.ref.head.name head 指的是您当前所处的位置;给定时间点的当前引用。

[4] vcs.ref.head.type head 指的是您当前所处的位置;给定时间点的当前引用。

[5] vcs.repository.url.full 在 Git 版本控制系统中,规范 URL 不应包含 .git 扩展名。

[6] vcs.repository.name 由于它只是名称,因此在同一后端收集跨多个组织或组的遥测数据时,它可能会与同一存储库的分支发生冲突。


vcs.provider.name 具有以下已知值列表。如果其中一个适用,则必须使用相应的选项;否则,可以改用自定义选项。

描述Stability
bitbucketBitbucketDevelopment
giteaGiteaDevelopment
githubGitHubDevelopment
gitlabGitLabDevelopment

vcs.ref.base.type 具有以下已知值列表。如果其中一个适用,则必须使用相应的选项;否则,可以改用自定义选项。

描述Stability
branchbranchDevelopment
tagtagDevelopment

vcs.ref.head.type 具有以下已知值列表。如果其中一个适用,则必须使用相应的选项;否则,可以改用自定义选项。

描述Stability
branchbranchDevelopment
tagtagDevelopment

vcs.revision_delta.direction 具有以下已知值列表。如果其中一个适用,则必须使用相应的选项;否则,可以改用自定义选项。

描述Stability
ahead更改领先目标引用的修订数量。Development
behind更改滞后目标引用的修订数量。Development

指标: vcs.ref.time

此指标是推荐的。

名称Instrument TypeUnit (UCUM)描述Stability实体关联
vcs.ref.timeGauges从默认分支(trunk)创建的 ref(分支)存在的时间。ref.type 属性始终为branchDevelopmentvcs.repo

Attributes

Stability需求级别Value Type描述Example Values
vcs.ref.head.nameDevelopment必需字符串存储库中的引用的名称,例如**分支**或**标签**。[1]my-feature-branch; tag-1-test
vcs.ref.head.typeDevelopment必需字符串存储库中引用的类型。[2]branch; tag
vcs.repository.url.fullDevelopment必需字符串提供存储库的完整 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.nameDevelopment推荐字符串版本控制系统内的组所有者。my-orgmyteambusiness-unit
vcs.repository.nameDevelopment推荐字符串存储库的人类可读名称。它不应包含任何额外的标识符,例如 GitLab 中的 Group/SubGroup 或 GitHub 中的 organization。[4]semantic-conventions; my-cool-repo
vcs.provider.nameDevelopment选择加入字符串版本控制系统提供商的名称。githubgitlabgiteabitbucket

[1] vcs.ref.head.name: head 指的是你当前的位置;在给定时间点的当前引用。

[2] vcs.ref.head.type head 指的是您当前所处的位置;给定时间点的当前引用。

[3] vcs.repository.url.full 在 Git 版本控制系统中,规范 URL 不应包含 .git 扩展名。

[4] vcs.repository.name 由于它只是名称,因此在同一后端收集跨多个组织或组的遥测数据时,它可能会与同一存储库的分支发生冲突。


vcs.provider.name 具有以下已知值列表。如果其中一个适用,则必须使用相应的选项;否则,可以改用自定义选项。

描述Stability
bitbucketBitbucketDevelopment
giteaGiteaDevelopment
githubGitHubDevelopment
gitlabGitLabDevelopment

vcs.ref.head.type 具有以下已知值列表。如果其中一个适用,则必须使用相应的选项;否则,可以改用自定义选项。

描述Stability
branchbranchDevelopment
tagtagDevelopment

指标: vcs.contributor.count

此指标为 opt-in

名称Instrument TypeUnit (UCUM)描述Stability实体关联
vcs.contributor.countGauge{contributor}存储库的唯一贡献者数量。Developmentvcs.repo

Attributes

Stability需求级别Value Type描述Example Values
vcs.repository.url.fullDevelopment必需字符串提供存储库的完整 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.nameDevelopment推荐字符串版本控制系统内的组所有者。my-orgmyteambusiness-unit
vcs.repository.nameDevelopment推荐字符串存储库的人类可读名称。它不应包含任何额外的标识符,例如 GitLab 中的 Group/SubGroup 或 GitHub 中的 organization。[2]semantic-conventions; my-cool-repo
vcs.provider.nameDevelopment选择加入字符串版本控制系统提供商的名称。githubgitlabgiteabitbucket

[1] vcs.repository.url.full 在 Git 版本控制系统中,规范 URL 不应包含 .git 扩展名。

[2] vcs.repository.name 由于它只是名称,因此在同一后端收集跨多个组织或组的遥测数据时,它可能会与同一存储库的分支发生冲突。


vcs.provider.name 具有以下已知值列表。如果其中一个适用,则必须使用相应的选项;否则,可以改用自定义选项。

描述Stability
bitbucketBitbucketDevelopment
giteaGiteaDevelopment
githubGitHubDevelopment
gitlabGitLabDevelopment