dora-team/fourkeysを使ってFour Keysを測定する環境を構築した
業務委託で入っている開発現場に dora-team/fourkeys を導入したという話を書きます。
https://github.com/dora-team/fourkeys
dora-team/fourkeys でよくできていると思った点は、terraformで管理されている点と、「webhookを受け取るサーバ」と「受け取ったwebhookを加工するサーバ」と「ダッシュボード」がそれぞれ別のアプリケーションとして作られているあたりだ。また、データストアにBigQueryを使っているのもよい。データ量の増加によるパフォーマンスの劣化がよく起きるのでそれを考えなくてよい。
dora-team/fourkeysのどこを改修して現場の運用にフィットさせるかは、https://speakerdeck.com/ouchi2501/fourkeysji-pan-wogou-zhu-sitahua に書いている内容を大いに参考した。
手を加えた箇所は次の通り
- BigQueryのviewの変更
- 測定対象のリポジトリのviewを作った
- デプロイメントの定義を「masterブランチのマージ」にした
- 障害の入力を「特定のリポジトリで作られるissueの本文内に含まれる文字列」にした
- terraformのバックエンドをCloud Storageにした
- grafanaの認証(googleログイン)を有効にした
- Cloud Bulidの定義ファイルでシークレットを扱う変更を入れる必要がある
- ダッシュボードの見た目の更新
- 巨大なjsonを編集した
数週間運用してみてどうだったか
- 「障害」の定義を明確にするべし
- fourkeysに関する資料を見ていると、障害の定義について曖昧な現場は多いようだった
- メトリクスに一貫性を持たせるためにメンバー間で定義を明確にする必要があり、スッと導入して終わりではない
- リポジトリがterraformで管理されているとはいえ、CI/CDの整備がされていないので、ダッシュボードの修正をどうやって適用するかは多少のGCP力が必要だった
- とはいえ、運用にフィットさせる変更は、grafanaとterraformのコード(BigQueryのview)の変更に限られるはず
以上。
-
category:
- 日記 tags: