DevOps DORA 指标 API
- Tier: 旗舰版
- Offering: JihuLab.com, 私有化部署
您还可以使用 GraphQL API 检索 DORA 指标。
所有方法至少需要 Reporter 角色。
获取项目级别的 DORA 指标
获取项目级别的 DORA 指标。
plaintextGET /projects/:id/dora/metrics
| 属性 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| id | integer/string | 是 | 可以通过经过身份验证的用户访问的项目的 ID 或 URL 编码路径。 |
| metric | string | 是 | deployment_frequency, lead_time_for_changes, time_to_restore_service 或 change_failure_rate 之一。 |
| end_date | string | 否 | 结束日期范围。ISO 8601 日期格式,例如 2021-03-01。默认是当前日期。 |
| environment_tiers | array of strings | 否 | 环境的层级。默认是 production。 |
| interval | string | 否 | 分组间隔。all, monthly 或 daily 之一。默认是 daily。 |
| start_date | string | 否 | 开始日期范围。ISO 8601 日期格式,例如 2021-03-01。默认是 3 个月前。 |
示例请求:
shellcurl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/dora/metrics?metric=deployment_frequency"
示例响应:
json1[ 2 { "date": "2021-03-01", "value": 3 }, 3 { "date": "2021-03-02", "value": 6 }, 4 { "date": "2021-03-03", "value": 0 }, 5 { "date": "2021-03-04", "value": 0 }, 6 { "date": "2021-03-05", "value": 0 }, 7 { "date": "2021-03-06", "value": 0 }, 8 { "date": "2021-03-07", "value": 0 }, 9 { "date": "2021-03-08", "value": 4 } 10]
获取群组级别的 DORA 指标
获取群组级别的 DORA 指标。
plaintextGET /groups/:id/dora/metrics
| 属性 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| id | integer/string | 是 | 可以通过经过身份验证的用户访问的项目的 ID 或 URL 编码路径。 |
| metric | string | 是 | deployment_frequency, lead_time_for_changes, time_to_restore_service 或 change_failure_rate 之一。 |
| end_date | string | 否 | 结束日期范围。ISO 8601 日期格式,例如 2021-03-01。默认是当前日期。 |
| environment_tiers | array of strings | 否 | 环境的层级。默认是 production。 |
| interval | string | 否 | 分组间隔。all, monthly 或 daily 之一。默认是 daily。 |
| start_date | string | 否 | 开始日期范围。ISO 8601 日期格式,例如 2021-03-01。默认是 3 个月前。 |
示例请求:
shellcurl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/1/dora/metrics?metric=deployment_frequency"
示例响应:
json1[ 2 { "date": "2021-03-01", "value": 3 }, 3 { "date": "2021-03-02", "value": 6 }, 4 { "date": "2021-03-03", "value": 0 }, 5 { "date": "2021-03-04", "value": 0 }, 6 { "date": "2021-03-05", "value": 0 }, 7 { "date": "2021-03-06", "value": 0 }, 8 { "date": "2021-03-07", "value": 0 }, 9 { "date": "2021-03-08", "value": 4 } 10]
value 字段
对于上面项目和群组级别的端点,API 响应中的 value 字段根据提供的 metric 查询参数具有不同的含义:
| metric 查询参数 | 响应中 value 的描述 |
|---|---|
| deployment_frequency | API 返回时间段内成功部署的总数。 |
| change_failure_rate | 时间段内的事故数量除以部署数量。仅适用于生产环境。 |
| lead_time_for_changes | 时间段内所有已部署的合并请求(MR)的合并和 MR 提交的部署之间的秒数中位数。 |
| time_to_restore_service | 时间段内事故开放的秒数中位数。仅适用于生产环境。 |
API 通过计算每日中值的中值来返回 `monthly` 和 `all` 间隔。这可能会导致返回数据中出现轻微误差。