モチベーション
Sentryで例外を検知する => Trelloでバグを管理する
↑ ここを一番楽にする方法を探す
各サービスから提供されている機能を使って何ができるか、という試行錯誤のまとめです。
登場人物
Sentry
Sentry: Track exceptions with modern error logging for JavaScript, Python, Ruby, Java, and Node.js
アプリケーションのクラッシュをリアルタイムに教えてくれる頼もしいサービス。OSSとして公開もされている。
対応言語はたくさん。
JavaScript, Node, Python, PHP, Ruby, Go, etc
Trello
タスク管理サービス。カードやリストについての移動・複製が柔軟でかゆいところに手が届く。
広報担当犬のTacoが可愛い。
Slack
言わずと知れたチャットツール。
Sentry x Trello
パターンA: SentryのTrello Pluginを使う
Trello連携プラグイン。(サービスの方の)Sentryではプラグインリストから設定できる。
DamianZaremba/sentry-trello: A plugin for Sentry that creates cards on a Trello board
設定するとSentryのissue(クラッシュイベント)に項目が追加される。
「Create Trello Card」を押すと、どのボードのどのリストに追加するか選ぶことができる。
Sentry側で勝手にTrelloに登録してくれるわけでは無い。
パターンB: Trello for Slackを使う
2016/06/21に公開された「Trello for Slack」
https://trello.com/platforms/slack
(リンク先に分かりやすい動画がある)
これを使って、Sentryから通知が来たら、Slackで
/trello 〜
と打ってバグを登録する。最初にカードを追加する際、Trello側からユーザ単位で許可を求められる。
比較
アプローチ | 長所 | 短所 |
---|---|---|
パターンA | 1. タイトルや本文の登録が楽 2. 一度登録するとそのissueからは「Create Trello Card」が消えるので二重登録しない |
Sentry issueをTrelloに登録したかどうかはSlackからは分からない |
パターンB | 1. Slackを見返すとTrelloのカードを追加したことがわかる 2. アサインや期限の設定もSlack上からそのままできる |
1. どのSentry issueを追加したのかは分からない 2. チャットツールがSlackでなければ使えない |
考察: 一長一短
「チャットツールにSlackを使っている。他のツール(サービス)は検知させるだけ。可能な限りSlackに集約する。」
という運用をするならパターンB。Trelloとのリッチな連携が使える。
一方、Sentryの良さは、例えばクラッシュがAPIであればBackTraceに加えて、
- どのサーバに
- どういうパラメータで
- どのエントリポイントが叩かれたか
という情報をまとめて見られるところだと思う。クラッシュ情報の詳細を確認した流れでカードの作成を行うのがパターンA。行ったり来たりが無くスムーズ。Trelloに作られるカードの品質も一定かつ十分高い。
結論
個人的にはパターンAが良いと思った。
クラッシュしたらクラッシュレポート見る。見たらそのまま登録。という流れシンプルで良い。
結論その2
身も蓋もない事を言えば、最終的にバグが適切に管理されて修正されればそれで良いと思うので、
AだのBだの言うことに意味は無い気がした。。
ただ、やり方が2つあると混乱することもあるので、長短を把握しておいて損はない。。と思うことにした。
余談: バグチケット作成の自動化
アプリケーションがクラッシュしたら、自動的にチケットが作られる仕組みができないものかとも考えたが、以下の理由から今は消極的。
- クラッシュレポートはちゃんと人が見て判断する方が良い
- なぜ壊れた?
- 修正の緊急性は?
- 発生の頻度は?
- もし自動化するほどクラッシュが多いとしたら、それ自体が問題
- ちゃんと直す
- さっさと直す
- それでもBotなら…Botならきっとなんとかしてくれる…か?
- Botは便利だが、バグチケットをどうこうするBotを作るくらいならさっさと直したほうが良い
- Botに頼るとそれが壊れた時にどうしようもない