DevOps Research and Assessment(DORA) 主要メトリクス API

  • GitLab 13.10で導入されました
  • { "<date>" => "<value>" } time_to_restore_service メトリックはGitLab 14.9で導入されました。

DORAメトリクスは GraphQL APIでも取得できます。

すべてのメソッドには少なくともレポーターロールが必要です。

プロジェクト・レベルのDORAメトリクスを取得します。

プロジェクト・レベルのDORAメトリクスを取得します。

GET /projects/:id/dora/metrics
属性種類必須説明
id整数/文字列yes認証ユーザーがアクセスできるプロジェクトのIDまたはURLエンコードされたパス
metric文字列です。yes deployment_frequency,lead_time_for_changes,time_to_restore_service,change_failure_rate のいずれか。
end_date文字列です。いいえ終了する日付範囲。ISO 8601の日付形式、例えば2021-03-01 。デフォルトは現在の日付です。
environment_tiers文字列の配列。いいえ 環境の階層。デフォルトはproduction です。
interval文字列です。いいえバ ケ ッ テ ィ ン グ間隔。all,monthly またはdaily.デフォルトは daily.
start_date文字列です。いいえ開始する日付範囲。ISO 8601 日付形式、例えば2021-03-01 。デフォルトは3ヶ月前です。

リクエストの例

curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/dora/metrics?metric=deployment_frequency"

応答例

[
  { "date": "2021-03-01", "value": 3 },
  { "date": "2021-03-02", "value": 6 },
  { "date": "2021-03-03", "value": 0 },
  { "date": "2021-03-04", "value": 0 },
  { "date": "2021-03-05", "value": 0 },
  { "date": "2021-03-06", "value": 0 },
  { "date": "2021-03-07", "value": 0 },
  { "date": "2021-03-08", "value": 4 }
]

グループ・レベルのDORAメトリクスを取得します。

GitLab 13.10で導入されました

グループレベルのDORAメトリクスを取得します。

GET /groups/:id/dora/metrics
属性種類必須説明
id整数/文字列yes認証ユーザーがアクセスできるプロジェクトのIDまたはURLエンコードされたパス
metric文字列です。yes deployment_frequency,lead_time_for_changes,time_to_restore_service,change_failure_rate のいずれか。
end_date文字列です。いいえ終了する日付範囲。ISO 8601の日付形式、例えば2021-03-01 。デフォルトは現在の日付です。
environment_tiers文字列の配列。いいえ 環境の階層。デフォルトはproduction です。
interval文字列です。いいえバ ケ ッ テ ィ ン グ間隔。all,monthly またはdaily.デフォルトは daily.
start_date文字列です。いいえ開始する日付範囲。ISO 8601 日付形式、例えば2021-03-01 。デフォルトは3ヶ月前です。

リクエストの例

curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/1/dora/metrics?metric=deployment_frequency"

応答例

[
  { "date": "2021-03-01", "value": 3 },
  { "date": "2021-03-02", "value": 6 },
  { "date": "2021-03-03", "value": 0 },
  { "date": "2021-03-04", "value": 0 },
  { "date": "2021-03-05", "value": 0 },
  { "date": "2021-03-06", "value": 0 },
  { "date": "2021-03-07", "value": 0 },
  { "date": "2021-03-08", "value": 4 }
]

value フィールド

上記のプロジェクト・レベルおよびグループ・レベルのエンドポイントでは、API レスポンスのvalue フィールドは、指定されたmetric クエリ・パラメータによって意味が異なります:

metric クエリ・パラメータレスポンス内のvalue の説明
deployment_frequencyAPI は期間中に成功したデプロイの合計数を返します。イシュー 371271では、API を更新して合計数の代わりに日平均を返すようにすることを提案しています。
change_failure_rateインシデント数を期間中のデプロイ数で割った値です。本番環境でのみ利用可能です。
lead_time_for_changes期間中にデプロイされたすべての MR について、マージリクエスト(MR) のマージから MR コミットのデプロイまでの秒数の中央値。
time_to_restore_service期間中にインシデントがオープンされていた秒数の中央値。本番環境でのみ使用できます。
note
APIは、毎日の中央値の中央値を計算することにより、monthly およびall 間隔を返します。このため、返されるデータに若干の不正確さが生じることがあります。