メインコンテンツへスキップ
見出し画像

ワンクリック☝️Sentryのエラー通知は「ポチッ」で、すぐに直そう

    こんにちは!IVRyでソフトウェアエンジニアとして働いている石塚 大策です。入社して早くも3ヶ月が経ちました!IVRy入社前は、約3年間在宅勤務でしたが、入社後は、週3出社で皆と一緒にお昼ご飯を食べに行く機会も増え、オフィス出社の良さを改めて感じています。

    本記事は、IVRy Advent Calendar「AIブログリレー Part2」12日目の記事です。昨日は、日頃QAで大変お世話になっている Sekiさんの「AIが前提になった2025年、QAに起きた変化」でした。ぜひこちらもご覧ください。

    さて、今回のテーマは、Sentryエラーを自動修正する方法です!Webアプリ
    ケーションを運用するにあたり、エラー対応は避けて通れないですよね。もし、このエラーの調査から修正までボタン一つで直せたら…というエンジニアの要望にお答えして、Devinを使った自動修正の仕組みをご紹介します。

    画像
    AIブログリレーということで、Geminiに図を作ってもらいました。
    ちょっぴりダサい感じが気に入っています笑

    背景

    これまで、Sentryエラーの修正フローは、Slackに届くSentryのエラー通知を見てエンジニアが原因調査を行い修正するフローでした。その際、以下のような困り事がありました。

    • 調査・修正しようとしてもすぐに手が離せない

    • 知識があまりない機能の場合、詳しい人を探すか時間をかけて調査する

    • AIを使って修正するには、Sentryのエラー詳細の内容をエンジニアが要約してから依頼する必要がある

    Devinを使った新しい仕組みでは、Setnryのエラー通知を起点として、

    • Slack上で修正ボタンを押すだけ

    • Devinが、Githubのコードに加え、SentryのMCPサーバーからStack Traceなどの情報を取得してエラーの内容を調査・修正してくれる

    となるため、従来の課題を解消することができます。

    また、Devinがこなすタスクの精度も上がってきており、SentryのMCPサーバーにも対応していることから自動修正PRの仕組みを導入しました。

    設定方法

    具体的な設定方法をみていく前にこちらが完成品となります。Sentryのエラー通知にフックして修正ボタンを表示し、ボタンクリックでDevinが調査と修正を行ってくれます。

    画像
    ボタンひとつでDevinが調査・修正をしてくれます!

    それでは、どのようにこの仕組みを作ったのか Sentry、Devin、Slackでのそれぞれの設定を見ていきます。この3つのサービスで完結するので、簡単に設定できます 🔧

    注意⚠️:権限の設定は慎重に行ってください!

    Step1:Sentryの設定

    Sentryでは、エラーがSlackに通知されるように設定する必要があります。Sentryユーザーの方はすでに対応済みの方が多いかと思います。

    • Settings > integrationsからSlackを選択し連携する

    • Issues > AlertsからSlackへのアラート通知設定を追加する

    公式ドキュメントはこちら

    Step2:Devinの設定

    Devinでは、GithubとSlackとの連携に加えSentry MCPサーバーとの連携が必要になります。

    • こちらのURLからGithubとSlackを選択して連携する

    • こちらのURLからSentryのMCPサーバ連携を有効化する

    Step3:Slackの設定

    Slackでは、Sentryからの通知を受けて、Devinに依頼を投げるワークフロー処理を組みます。ワークフローの組み方は、LLMに相談しながら行えば大体できるため、ワークフローを組んだ時のTipsを共有します。

    • 完全な自動化はせず、エンジニアが修正が必要だと判断した時に実行できるようにする

      • Sentryのエラー通知が来たら、そのままDevinに指示を出すことも可能です。しかし、外部サービス起因の修正しようがないエラー通知などもあり、エンジニアがボタンを押す方式にしました。

    • Sentryのエラー通知用チャンネルが見にくくならないよう、別のチャンネルでDevinに指示をする

      • 当初、Sentryのエラー通知のスレッド内で”@Devin”を呼び、1つのスレッド内で全てを完結させようとしました。しかし、スレッドの中で ”@Devin”を呼んでタスクを依頼すると、新たに別スレッドを立てて実行してしまうようでした。(サポートに質問しても回避策は得られませんでした。)

      • Sentryのエラー通知用チャンネルで、Sentry通知とDevin実行のスレッドが入り乱れると視認性が下がってしまうため、Devinの実行は別のチャンネルにして、そのリンクを確認できるようにしました。

    • プロンプトは他のエンジニアが直せるように、編集権限を付与する

      • Devinのタスク精度はプロンプトによるところが大きいです。エンジニアが使っていく中でプロンプトが改善できるよう、編集権限を付与しています。

    他にも、Slackの分岐機能を使えば、「エラー解説」「修正PR作成」など用途に応じてボタンを生やして使うことも可能です!また、今回紹介はしませんでしたが、DevinではNotionのMCPにも対応しており、エンジニアの質問対応自動化や社内ナレッジの検索精度向上にも使うことができます。

    使ってみて

    自動修正ワークフローによってDevinが作成したPRのうち、およそ4割はエンジニアが修正指示を与えることで、マージまで持っていくことができていました。一方で、残り6割のPRはCloseされてしまうという結果でした。CloseされたPRの中身を分析すると、エラー発生箇所以外への影響が考慮しきれていないケースや、修正方針が想定と大きく異なり修正を断念するケースなどそれぞれ課題がありそうでした。現状は、PR作成依頼のプロンプトが統一されているので、改善案として、ファーストステップでは調査と修正方針の提示を行い、そこでエンジニアが判断するフローに変更すると精度が上がるかも知れません。また、Devin自体の精度向上にも期待です。引き続き精度向上に取り組んでいきたいと思います。


    おわりに

    ここまで読んでいただき、ありがとうございました。
    IVRyでは、Advent Calendarをもう1レーン「みんなが知らないIVRy」というテーマで走らせています。本日は、Georgeさんの「日本酒が繋ぐIVRy ― 入社1年の僕が見た「人が集まる」文化」が公開されています!ぜひご覧ください。

    また、IVRyでは「イベントや最新ニュース、新着ポジションの情報を受け取りたい」「会社について詳しく話を聞いてみたい」といった方に向けて、キャリア登録やカジュアル面談の機会をご用意しています。
    ご興味をお持ちいただけた方は、ぜひ以下のページよりご登録・お申し込みください。毎日色んな挑戦があって、本当に面白いですよ!!


    この記事が参加している募集

     
     
    IVRy ソフトウェアエンジニア ← Algoage ソフトウェア・ AIエンジニア ← 東京ガス AIエンジニア

    あなたへのおすすめ