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 Type | Unit (UCUM) | 描述 | Stability | 实体关联 |
|---|---|---|---|---|---|
cicd.pipeline.run.duration | Histogram | s | 按管道、状态和结果分组的管道运行的持续时间。 | cicd.pipeline |
Attributes
| 键 | Stability | 需求级别 | Value Type | 描述 | Example Values |
|---|---|---|---|---|---|
cicd.pipeline.name | 必需 | 字符串 | CI/CD 系统中流水线的可读名称。 | 构建和测试; Lint; 部署 Go 项目; deploy_to_environment | |
cicd.pipeline.run.state | 必需 | 字符串 | 管道运行在其生命周期中会经历这些状态。 | pending;executing;finalizing | |
cicd.pipeline.result | 有条件地必需 [1] | 字符串 | 流水线运行的结果。 | success; failure; timeout; skipped | |
error.type | 有条件要求 仅当管道运行失败时。 | 字符串 | 描述操作结束时发生的错误类型。[2] | timeout;java.net.UnknownHostException;server_certificate_invalid;500 |
[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 | 流水线运行被取消,例如,由用户手动取消流水线运行。 | |
错误 | 流水线运行因 CICD 系统中的错误而失败,例如,由于工作者被终止。 | |
failure | 流水线运行未成功完成,例如,由于编译错误或测试失败。此类失败通常由流水线运行中执行的工具的非零退出码检测到。 | |
skip | 流水线运行被跳过,例如,由于未满足先决条件。 | |
success | 流水线运行已成功完成。 | |
timeout | 超时导致流水线运行被中断。 |
cicd.pipeline.run.state 具有以下已知值列表。如果其中一个适用,则必须使用相应的选项;否则,可以改用自定义选项。
| 值 | 描述 | Stability |
|---|---|---|
executing | 执行状态涵盖任何运行任务(例如,构建、测试)的执行。 | |
finalizing | 最终确定状态涵盖从运行完成执行(例如,清理运行资源)开始。 | |
pending | 运行挂起状态涵盖从触发管道运行的事件到运行执行开始(例如,在队列中花费的时间、预配代理、创建运行资源)。 |
error.type 具有以下已知值列表。如果其中一个适用,则必须使用相应的值;否则,可以使用自定义值。
| 值 | 描述 | Stability |
|---|---|---|
_OTHER | 当检测不到自定义值时使用的回退错误值。 |
指标: cicd.pipeline.run.active
此指标是推荐的。
| 名称 | Instrument Type | Unit (UCUM) | 描述 | Stability | 实体关联 |
|---|---|---|---|---|---|
cicd.pipeline.run.active | UpDownCounter | {run} | 系统中当前活动的管道运行数量,按状态分类。 | cicd.pipeline |
Attributes
| 键 | Stability | 需求级别 | Value Type | 描述 | Example Values |
|---|---|---|---|---|---|
cicd.pipeline.name | 必需 | 字符串 | CI/CD 系统中流水线的可读名称。 | 构建和测试; Lint; 部署 Go 项目; deploy_to_environment | |
cicd.pipeline.run.state | 必需 | 字符串 | 管道运行在其生命周期中会经历这些状态。 | pending;executing;finalizing |
cicd.pipeline.run.state 具有以下已知值列表。如果其中一个适用,则必须使用相应的选项;否则,可以改用自定义选项。
| 值 | 描述 | Stability |
|---|---|---|
executing | 执行状态涵盖任何运行任务(例如,构建、测试)的执行。 | |
finalizing | 最终确定状态涵盖从运行完成执行(例如,清理运行资源)开始。 | |
pending | 运行挂起状态涵盖从触发管道运行的事件到运行执行开始(例如,在队列中花费的时间、预配代理、创建运行资源)。 |
指标: cicd.worker.count
此指标是推荐的。
| 名称 | Instrument Type | Unit (UCUM) | 描述 | Stability | 实体关联 |
|---|---|---|---|---|---|
cicd.worker.count | UpDownCounter | {count} | CI/CD 系统上的工作程序数量,按状态分类。 |
Attributes
| 键 | Stability | 需求级别 | Value Type | 描述 | Example Values |
|---|---|---|---|---|---|
cicd.worker.state | 必需 | 字符串 | CI/CD 工作程序/代理的状态。 | idle;busy;down |
cicd.worker.state 具有以下已知值列表。如果其中一个适用,则必须使用相应的选项;否则,可以改用自定义选项。
| 值 | 描述 | Stability |
|---|---|---|
available | 工作程序未为 CI/CD 系统执行工作。它可供 CI/CD 系统执行工作(在线/空闲)。[1] | |
busy | 工作程序正在为 CI/CD 系统执行工作。 | |
offline | 工作程序不可供 CI/CD 系统使用(断开连接/关闭)。 |
[1]: 管道可能存在运行它们能够运行的工作程序的条件,因此并非所有工作程序都可能适用于所有管道。
指标: cicd.pipeline.run.errors
此指标是推荐的。
| 名称 | Instrument Type | Unit (UCUM) | 描述 | Stability | 实体关联 |
|---|---|---|---|---|---|
cicd.pipeline.run.errors | Counter | {error} | 管道运行中遇到的错误数量(例如,编译、测试失败)。[1] | cicd.pipeline |
[1]: 管道运行中可能存在非致命错误(例如,它们被抑制),或者在并行阶段,多个阶段可能存在致命错误。这意味着此错误计数可能不等于结果为failure的指标cicd.pipeline.run.duration的计数。
Attributes
| 键 | Stability | 需求级别 | Value Type | 描述 | Example Values |
|---|---|---|---|---|---|
cicd.pipeline.name | 必需 | 字符串 | CI/CD 系统中流水线的可读名称。 | 构建和测试; Lint; 部署 Go 项目; deploy_to_environment | |
error.type | 必需 | 字符串 | 描述操作最终结束的一类错误。[1] | timeout;java.net.UnknownHostException;server_certificate_invalid;500 |
[1] error.type: error.type 应该可预测,并且应该具有低基数性。
当 error.type 设置为某个类型(例如,异常类型)时,应该使用该工件内识别类型的规范类名。
Instrumentations 应该记录它们报告的错误列表。
一个仪器库内的 error.type 基数性应该低。从多个仪器库和应用程序聚合数据的遥测消费者,在没有额外过滤时,应准备好 error.type 在查询时具有高基数性。
如果操作已成功完成,Instrumentations 不应设置 error.type。
如果特定域定义了自己的一组错误标识符(例如 HTTP 或 gRPC 状态码),则建议
- 使用特定于域的属性
- 设置
error.type以捕获所有错误,无论它们是否包含在特定于域的集合中。
error.type 具有以下已知值列表。如果其中一个适用,则必须使用相应的值;否则,可以使用自定义值。
| 值 | 描述 | Stability |
|---|---|---|
_OTHER | 当检测不到自定义值时使用的回退错误值。 |
指标: cicd.system.errors
此指标是推荐的。
| 名称 | Instrument Type | Unit (UCUM) | 描述 | Stability | 实体关联 |
|---|---|---|---|---|---|
cicd.system.errors | Counter | {error} | CI/CD 系统组件(例如,控制器、调度程序、代理)中的错误数量。[1] |
[1]: 明确排除了管道运行执行中的错误。例如,测试失败不计入此指标。
Attributes
| 键 | Stability | 需求级别 | Value Type | 描述 | Example Values |
|---|---|---|---|---|---|
cicd.system.component | 必需 | 字符串 | CI/CD 系统组件的名称。 | controller;scheduler;agent | |
error.type | 必需 | 字符串 | 描述操作最终结束的一类错误。[1] | timeout;java.net.UnknownHostException;server_certificate_invalid;500 |
[1] error.type: error.type 应该可预测,并且应该具有低基数性。
当 error.type 设置为某个类型(例如,异常类型)时,应该使用该工件内识别类型的规范类名。
Instrumentations 应该记录它们报告的错误列表。
一个仪器库内的 error.type 基数性应该低。从多个仪器库和应用程序聚合数据的遥测消费者,在没有额外过滤时,应准备好 error.type 在查询时具有高基数性。
如果操作已成功完成,Instrumentations 不应设置 error.type。
如果特定域定义了自己的一组错误标识符(例如 HTTP 或 gRPC 状态码),则建议
- 使用特定于域的属性
- 设置
error.type以捕获所有错误,无论它们是否包含在特定于域的集合中。
error.type 具有以下已知值列表。如果其中一个适用,则必须使用相应的值;否则,可以使用自定义值。
| 值 | 描述 | Stability |
|---|---|---|
_OTHER | 当检测不到自定义值时使用的回退错误值。 |
VCS 指标
本节描述的约定特定于版本控制系统。
免责声明: 这些是最初的 VCS 指标和属性,但未来可能会添加更多。
指标: vcs.change.count
此指标是推荐的。
| 名称 | Instrument Type | Unit (UCUM) | 描述 | Stability | 实体关联 |
|---|---|---|---|---|---|
vcs.change.count | UpDownCounter | {change} | 存储库中的更改(拉取请求/合并请求/变更列表)数量,按其状态(例如,打开或已合并)进行分类。 | vcs.repo |
Attributes
| 键 | Stability | 需求级别 | Value Type | 描述 | Example Values |
|---|---|---|---|---|---|
vcs.change.state | 必需 | 字符串 | 更改(拉取请求/合并请求/变更列表)的状态。 | open;closed;merged | |
vcs.repository.url.full | 必需 | 字符串 | 提供存储库的完整 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 | 推荐 | 字符串 | 版本控制系统内的组所有者。 | my-org;myteam;business-unit | |
vcs.repository.name | 推荐 | 字符串 | 存储库的人类可读名称。它不应包含任何额外的标识符,例如 GitLab 中的 Group/SubGroup 或 GitHub 中的 organization。[2] | semantic-conventions; my-cool-repo | |
vcs.provider.name | 选择加入 | 字符串 | 版本控制系统提供商的名称。 | github;gitlab;gitea;bitbucket |
[1] vcs.repository.url.full: 在 Git 版本控制系统中,规范 URL 不应包含 .git 扩展名。
[2] vcs.repository.name: 由于它只是名称,因此在同一后端收集跨多个组织或组的遥测数据时,它可能会与同一存储库的分支发生冲突。
vcs.change.state 具有以下已知值列表。如果其中一个适用,则必须使用相应的选项;否则,可以改用自定义选项。
| 值 | 描述 | Stability |
|---|---|---|
closed | Closed 表示合并请求在未合并的情况下被关闭。这可能出于多种原因,例如更改被认为不必要、问题以其他方式得到解决,或作者决定撤回请求。 | |
merged | Merged 表示更改已成功集成到目标代码库中。 | |
open | Open 表示更改当前处于活动状态并正在接受审查。它尚未合并到目标分支中,仍然可以进行更改或添加注释。 | |
wip | WIP(进行中,草稿)表示更改仍在进行中,尚未准备好进行全面审查。它可能仍会进行重大更改。 |
vcs.provider.name 具有以下已知值列表。如果其中一个适用,则必须使用相应的选项;否则,可以改用自定义选项。
| 值 | 描述 | Stability |
|---|---|---|
bitbucket | Bitbucket | |
gitea | Gitea | |
github | GitHub | |
gitlab | GitLab |
指标: vcs.change.duration
此指标是推荐的。
| 名称 | Instrument Type | Unit (UCUM) | 描述 | Stability | 实体关联 |
|---|---|---|---|---|---|
vcs.change.duration | Gauge | s | 更改(拉取请求/合并请求/变更列表)处于给定状态的时间持续时间。 | vcs.repo |
Attributes
| 键 | Stability | 需求级别 | Value Type | 描述 | Example Values |
|---|---|---|---|---|---|
vcs.change.state | 必需 | 字符串 | 更改(拉取请求/合并请求/变更列表)的状态。 | open;closed;merged | |
vcs.ref.head.name | 必需 | 字符串 | 存储库中的引用的名称,例如**分支**或**标签**。[1] | my-feature-branch; tag-1-test | |
vcs.repository.url.full | 必需 | 字符串 | 提供存储库的完整 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 | 推荐 | 字符串 | 版本控制系统内的组所有者。 | my-org;myteam;business-unit | |
vcs.repository.name | 推荐 | 字符串 | 存储库的人类可读名称。它不应包含任何额外的标识符,例如 GitLab 中的 Group/SubGroup 或 GitHub 中的 organization。[3] | semantic-conventions; my-cool-repo | |
vcs.provider.name | 选择加入 | 字符串 | 版本控制系统提供商的名称。 | github;gitlab;gitea;bitbucket |
[1] vcs.ref.head.name: head 指的是你当前的位置;在给定时间点的当前引用。
[2] vcs.repository.url.full: 在 Git 版本控制系统中,规范 URL 不应包含 .git 扩展名。
[3] vcs.repository.name: 由于它只是名称,因此在同一后端收集跨多个组织或组的遥测数据时,它可能会与同一存储库的分支发生冲突。
vcs.change.state 具有以下已知值列表。如果其中一个适用,则必须使用相应的选项;否则,可以改用自定义选项。
| 值 | 描述 | Stability |
|---|---|---|
closed | Closed 表示合并请求在未合并的情况下被关闭。这可能出于多种原因,例如更改被认为不必要、问题以其他方式得到解决,或作者决定撤回请求。 | |
merged | Merged 表示更改已成功集成到目标代码库中。 | |
open | Open 表示更改当前处于活动状态并正在接受审查。它尚未合并到目标分支中,仍然可以进行更改或添加注释。 | |
wip | WIP(进行中,草稿)表示更改仍在进行中,尚未准备好进行全面审查。它可能仍会进行重大更改。 |
vcs.provider.name 具有以下已知值列表。如果其中一个适用,则必须使用相应的选项;否则,可以改用自定义选项。
| 值 | 描述 | Stability |
|---|---|---|
bitbucket | Bitbucket | |
gitea | Gitea | |
github | GitHub | |
gitlab | GitLab |
指标: vcs.change.time_to_approval
此指标是推荐的。
| 名称 | Instrument Type | Unit (UCUM) | 描述 | Stability | 实体关联 |
|---|---|---|---|---|---|
vcs.change.time_to_approval | Gauge | s | 更改(拉取请求/合并请求/变更列表)自创建以来获得第一次批准所需的时间。 | vcs.repo;vcs.ref |
Attributes
| 键 | Stability | 需求级别 | Value Type | 描述 | Example Values |
|---|---|---|---|---|---|
vcs.ref.head.name | 必需 | 字符串 | 存储库中的引用的名称,例如**分支**或**标签**。[1] | my-feature-branch; tag-1-test | |
vcs.repository.url.full | 必需 | 字符串 | 提供存储库的完整 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 | 推荐 | 字符串 | 版本控制系统内的组所有者。 | my-org;myteam;business-unit | |
vcs.ref.base.name | 推荐 | 字符串 | 存储库中引用的名称,例如分支或标签。[3] | my-feature-branch; tag-1-test | |
vcs.repository.name | 推荐 | 字符串 | 存储库的人类可读名称。它不应包含任何额外的标识符,例如 GitLab 中的 Group/SubGroup 或 GitHub 中的 organization。[4] | semantic-conventions; my-cool-repo | |
vcs.provider.name | 选择加入 | 字符串 | 版本控制系统提供商的名称。 | github;gitlab;gitea;bitbucket | |
vcs.ref.base.revision | 选择加入 | 字符串 | 修订版,字面意思是修订版本。修订版最常指 Git 中的提交对象,或 SVN 中的修订号。[5] | 9d59409acf479dfa0df1aa568182e43e43df8bbe28d60fcf2bc52e30068802cc; main; 123; HEAD | |
vcs.ref.head.revision | 选择加入 | 字符串 | 修订版,字面意思是修订版本。修订版最常指 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 |
|---|---|---|
bitbucket | Bitbucket | |
gitea | Gitea | |
github | GitHub | |
gitlab | GitLab |
指标: vcs.change.time_to_merge
此指标是推荐的。
| 名称 | Instrument Type | Unit (UCUM) | 描述 | Stability | 实体关联 |
|---|---|---|---|---|---|
vcs.change.time_to_merge | Gauge | s | 更改(拉取请求/合并请求/变更列表)合并到目标(基准)引用所需的时间。 | vcs.repo;vcs.ref |
Attributes
| 键 | Stability | 需求级别 | Value Type | 描述 | Example Values |
|---|---|---|---|---|---|
vcs.ref.head.name | 必需 | 字符串 | 存储库中的引用的名称,例如**分支**或**标签**。[1] | my-feature-branch; tag-1-test | |
vcs.repository.url.full | 必需 | 字符串 | 提供存储库的完整 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 | 推荐 | 字符串 | 版本控制系统内的组所有者。 | my-org;myteam;business-unit | |
vcs.ref.base.name | 推荐 | 字符串 | 存储库中引用的名称,例如分支或标签。[3] | my-feature-branch; tag-1-test | |
vcs.repository.name | 推荐 | 字符串 | 存储库的人类可读名称。它不应包含任何额外的标识符,例如 GitLab 中的 Group/SubGroup 或 GitHub 中的 organization。[4] | semantic-conventions; my-cool-repo | |
vcs.provider.name | 选择加入 | 字符串 | 版本控制系统提供商的名称。 | github;gitlab;gitea;bitbucket | |
vcs.ref.base.revision | 选择加入 | 字符串 | 修订版,字面意思是修订版本。修订版最常指 Git 中的提交对象,或 SVN 中的修订号。[5] | 9d59409acf479dfa0df1aa568182e43e43df8bbe28d60fcf2bc52e30068802cc; main; 123; HEAD | |
vcs.ref.head.revision | 选择加入 | 字符串 | 修订版,字面意思是修订版本。修订版最常指 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 |
|---|---|---|
bitbucket | Bitbucket | |
gitea | Gitea | |
github | GitHub | |
gitlab | GitLab |
指标: vcs.repository.count
此指标是推荐的。
| 名称 | Instrument Type | Unit (UCUM) | 描述 | Stability | 实体关联 |
|---|---|---|---|---|---|
vcs.repository.count | UpDownCounter | {repository} | 组织中的存储库数量。 |
Attributes
| 键 | Stability | 需求级别 | Value Type | 描述 | Example Values |
|---|---|---|---|---|---|
vcs.owner.name | 推荐 | 字符串 | 版本控制系统内的组所有者。 | my-org;myteam;business-unit | |
vcs.provider.name | 选择加入 | 字符串 | 版本控制系统提供商的名称。 | github;gitlab;gitea;bitbucket |
vcs.provider.name 具有以下已知值列表。如果其中一个适用,则必须使用相应的选项;否则,可以改用自定义选项。
| 值 | 描述 | Stability |
|---|---|---|
bitbucket | Bitbucket | |
gitea | Gitea | |
github | GitHub | |
gitlab | GitLab |
指标: vcs.ref.count
此指标是推荐的。
| 名称 | Instrument Type | Unit (UCUM) | 描述 | Stability | 实体关联 |
|---|---|---|---|---|---|
vcs.ref.count | UpDownCounter | {ref} | 存储库中分支或标签的引用数量。 | vcs.repo |
Attributes
| 键 | Stability | 需求级别 | Value Type | 描述 | Example Values |
|---|---|---|---|---|---|
vcs.ref.type | 必需 | 字符串 | 存储库中引用的类型。 | branch; tag | |
vcs.repository.url.full | 必需 | 字符串 | 提供存储库的完整 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 | 推荐 | 字符串 | 版本控制系统内的组所有者。 | my-org;myteam;business-unit | |
vcs.repository.name | 推荐 | 字符串 | 存储库的人类可读名称。它不应包含任何额外的标识符,例如 GitLab 中的 Group/SubGroup 或 GitHub 中的 organization。[2] | semantic-conventions; my-cool-repo | |
vcs.provider.name | 选择加入 | 字符串 | 版本控制系统提供商的名称。 | github;gitlab;gitea;bitbucket |
[1] vcs.repository.url.full: 在 Git 版本控制系统中,规范 URL 不应包含 .git 扩展名。
[2] vcs.repository.name: 由于它只是名称,因此在同一后端收集跨多个组织或组的遥测数据时,它可能会与同一存储库的分支发生冲突。
vcs.provider.name 具有以下已知值列表。如果其中一个适用,则必须使用相应的选项;否则,可以改用自定义选项。
| 值 | 描述 | Stability |
|---|---|---|
bitbucket | Bitbucket | |
gitea | Gitea | |
github | GitHub | |
gitlab | GitLab |
vcs.ref.type 具有以下一系列已知值。如果适用其中一项,则必须使用相应的值;否则,可以改用自定义值。
| 值 | 描述 | Stability |
|---|---|---|
branch | branch | |
tag | tag |
指标: vcs.ref.lines_delta
此指标是推荐的。
| 名称 | Instrument Type | Unit (UCUM) | 描述 | Stability | 实体关联 |
|---|---|---|---|---|---|
vcs.ref.lines_delta | Gauge | {line} | 相对于 vcs.ref.base.name 属性中的引用,ref(分支)中添加/删除的行数。[1] | vcs.repo |
[1]: 此指标应为每个 vcs.line_change.type 值报告。例如,如果一个分支添加了 3 行并删除了 2 行,则仪表化应报告两次测量:3 和 2(均为正数)。如果行数添加/删除应从头开始计算,则 vcs.ref.base.name 应设置为空字符串。
Attributes
| 键 | Stability | 需求级别 | Value Type | 描述 | Example Values |
|---|---|---|---|---|---|
vcs.line_change.type | 必需 | 字符串 | 在分支或更改上测量的行更改的类型。 | added;removed | |
vcs.ref.base.name | 必需 | 字符串 | 存储库中的引用的名称,例如**分支**或**标签**。[1] | my-feature-branch; tag-1-test | |
vcs.ref.base.type | 必需 | 字符串 | 存储库中引用的类型。[2] | branch; tag | |
vcs.ref.head.name | 必需 | 字符串 | 存储库中引用的名称,例如分支或标签。[3] | my-feature-branch; tag-1-test | |
vcs.ref.head.type | 必需 | 字符串 | 存储库中引用的类型。[4] | branch; tag | |
vcs.repository.url.full | 必需 | 字符串 | 提供存储库的完整 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 | 如果与引用关联,则有条件要求。 | 字符串 | 如果适用,更改(拉取请求/合并请求/变更列表)的 ID。这通常是 VCS 系统生成的存储库内的唯一标识符。 | 123 | |
vcs.owner.name | 推荐 | 字符串 | 版本控制系统内的组所有者。 | my-org;myteam;business-unit | |
vcs.repository.name | 推荐 | 字符串 | 存储库的人类可读名称。它不应包含任何额外的标识符,例如 GitLab 中的 Group/SubGroup 或 GitHub 中的 organization。[6] | semantic-conventions; my-cool-repo | |
vcs.provider.name | 选择加入 | 字符串 | 版本控制系统提供商的名称。 | github;gitlab;gitea;bitbucket |
[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 | 添加了多少行。 | |
removed | 删除了多少行。 |
vcs.provider.name 具有以下已知值列表。如果其中一个适用,则必须使用相应的选项;否则,可以改用自定义选项。
| 值 | 描述 | Stability |
|---|---|---|
bitbucket | Bitbucket | |
gitea | Gitea | |
github | GitHub | |
gitlab | GitLab |
vcs.ref.base.type 具有以下已知值列表。如果其中一个适用,则必须使用相应的选项;否则,可以改用自定义选项。
| 值 | 描述 | Stability |
|---|---|---|
branch | branch | |
tag | tag |
vcs.ref.head.type 具有以下已知值列表。如果其中一个适用,则必须使用相应的选项;否则,可以改用自定义选项。
| 值 | 描述 | Stability |
|---|---|---|
branch | branch | |
tag | tag |
指标: vcs.ref.revisions_delta
此指标是推荐的。
| 名称 | Instrument Type | Unit (UCUM) | 描述 | Stability | 实体关联 |
|---|---|---|---|---|---|
vcs.ref.revisions_delta | Gauge | {revision} | ref(分支)相对于 vcs.ref.base.name 属性中的分支,超前/滞后的修订(提交)数量。[1] | vcs.repo |
[1]: 此指标应为每个 vcs.revision_delta.direction 值报告。例如,如果分支 a 比 trunk 落后 3 个提交且领先 2 个提交,则仪表化应报告两次测量:3 和 2(均为正数),并且 vcs.ref.base.name 设置为 trunk。
Attributes
| 键 | Stability | 需求级别 | Value Type | 描述 | Example Values |
|---|---|---|---|---|---|
vcs.ref.base.name | 必需 | 字符串 | 存储库中的引用的名称,例如**分支**或**标签**。[1] | my-feature-branch; tag-1-test | |
vcs.ref.base.type | 必需 | 字符串 | 存储库中引用的类型。[2] | branch; tag | |
vcs.ref.head.name | 必需 | 字符串 | 存储库中引用的名称,例如分支或标签。[3] | my-feature-branch; tag-1-test | |
vcs.ref.head.type | 必需 | 字符串 | 存储库中引用的类型。[4] | branch; tag | |
vcs.repository.url.full | 必需 | 字符串 | 提供存储库的完整 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 | 必需 | 字符串 | 修订比较的类型。 | ahead;behind | |
vcs.change.id | 如果与引用关联,则有条件要求。 | 字符串 | 如果适用,更改(拉取请求/合并请求/变更列表)的 ID。这通常是 VCS 系统生成的存储库内的唯一标识符。 | 123 | |
vcs.owner.name | 推荐 | 字符串 | 版本控制系统内的组所有者。 | my-org;myteam;business-unit | |
vcs.repository.name | 推荐 | 字符串 | 存储库的人类可读名称。它不应包含任何额外的标识符,例如 GitLab 中的 Group/SubGroup 或 GitHub 中的 organization。[6] | semantic-conventions; my-cool-repo | |
vcs.provider.name | 选择加入 | 字符串 | 版本控制系统提供商的名称。 | github;gitlab;gitea;bitbucket |
[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 |
|---|---|---|
bitbucket | Bitbucket | |
gitea | Gitea | |
github | GitHub | |
gitlab | GitLab |
vcs.ref.base.type 具有以下已知值列表。如果其中一个适用,则必须使用相应的选项;否则,可以改用自定义选项。
| 值 | 描述 | Stability |
|---|---|---|
branch | branch | |
tag | tag |
vcs.ref.head.type 具有以下已知值列表。如果其中一个适用,则必须使用相应的选项;否则,可以改用自定义选项。
| 值 | 描述 | Stability |
|---|---|---|
branch | branch | |
tag | tag |
vcs.revision_delta.direction 具有以下已知值列表。如果其中一个适用,则必须使用相应的选项;否则,可以改用自定义选项。
| 值 | 描述 | Stability |
|---|---|---|
ahead | 更改领先目标引用的修订数量。 | |
behind | 更改滞后目标引用的修订数量。 |
指标: vcs.ref.time
此指标是推荐的。
| 名称 | Instrument Type | Unit (UCUM) | 描述 | Stability | 实体关联 |
|---|---|---|---|---|---|
vcs.ref.time | Gauge | s | 从默认分支(trunk)创建的 ref(分支)存在的时间。ref.type 属性始终为branch。 | vcs.repo |
Attributes
| 键 | Stability | 需求级别 | Value Type | 描述 | Example Values |
|---|---|---|---|---|---|
vcs.ref.head.name | 必需 | 字符串 | 存储库中的引用的名称,例如**分支**或**标签**。[1] | my-feature-branch; tag-1-test | |
vcs.ref.head.type | 必需 | 字符串 | 存储库中引用的类型。[2] | branch; tag | |
vcs.repository.url.full | 必需 | 字符串 | 提供存储库的完整 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 | 推荐 | 字符串 | 版本控制系统内的组所有者。 | my-org;myteam;business-unit | |
vcs.repository.name | 推荐 | 字符串 | 存储库的人类可读名称。它不应包含任何额外的标识符,例如 GitLab 中的 Group/SubGroup 或 GitHub 中的 organization。[4] | semantic-conventions; my-cool-repo | |
vcs.provider.name | 选择加入 | 字符串 | 版本控制系统提供商的名称。 | github;gitlab;gitea;bitbucket |
[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 |
|---|---|---|
bitbucket | Bitbucket | |
gitea | Gitea | |
github | GitHub | |
gitlab | GitLab |
vcs.ref.head.type 具有以下已知值列表。如果其中一个适用,则必须使用相应的选项;否则,可以改用自定义选项。
| 值 | 描述 | Stability |
|---|---|---|
branch | branch | |
tag | tag |
指标: vcs.contributor.count
此指标为 opt-in。
| 名称 | Instrument Type | Unit (UCUM) | 描述 | Stability | 实体关联 |
|---|---|---|---|---|---|
vcs.contributor.count | Gauge | {contributor} | 存储库的唯一贡献者数量。 | vcs.repo |
Attributes
| 键 | Stability | 需求级别 | Value Type | 描述 | Example Values |
|---|---|---|---|---|---|
vcs.repository.url.full | 必需 | 字符串 | 提供存储库的完整 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 | 推荐 | 字符串 | 版本控制系统内的组所有者。 | my-org;myteam;business-unit | |
vcs.repository.name | 推荐 | 字符串 | 存储库的人类可读名称。它不应包含任何额外的标识符,例如 GitLab 中的 Group/SubGroup 或 GitHub 中的 organization。[2] | semantic-conventions; my-cool-repo | |
vcs.provider.name | 选择加入 | 字符串 | 版本控制系统提供商的名称。 | github;gitlab;gitea;bitbucket |
[1] vcs.repository.url.full: 在 Git 版本控制系统中,规范 URL 不应包含 .git 扩展名。
[2] vcs.repository.name: 由于它只是名称,因此在同一后端收集跨多个组织或组的遥测数据时,它可能会与同一存储库的分支发生冲突。
vcs.provider.name 具有以下已知值列表。如果其中一个适用,则必须使用相应的选项;否则,可以改用自定义选项。
| 值 | 描述 | Stability |
|---|---|---|
bitbucket | Bitbucket | |
gitea | Gitea | |
github | GitHub | |
gitlab | GitLab |