アラートの原因調査を AI にお任せ
1年ちょっと前からNew Relicを採用して、社内のシステムのパフォーマンス監視を行っています。その中でアラートも設定して、エラー時にはSlackに通知させて異変に気付けるようにしています。
とはいえ、毎回アラートの度に原因調査するのも地味に面倒ですし、システムによっては属人化している部分もあったりします…
今回、New Relic MCPがプレビュー機能としてリリースされましたので、原因調査をAIに任せてみるべく、簡単にシステムを構築してみました!
今回構築したシステム
アーキテクチャはこんな感じです。コストを抑えるため完全サーバーレスで構築してみました。

ちなみに、アーキテクチャ図も前記事で紹介したMCPで自動生成しています。(ですので細かい点はご容赦ください…)
ざっくりの流れとしては、
-
New RelicからSlackにアラート通知
-
Slack AppのEvent Subscriptionsに登録されているLambdaの関数URLに対して、アラート通知内容をPOST
-
Lambdaがアラート通知内容をSQSに渡してキューイング
-
SQSをトリガーにLambdaがClaude APIに分析リクエスト(New Relic MCPと連携)
-
Lambdaが分析結果をSlackに投稿
といった形で、Slackにアラートが通知されると自動で原因調査の結果が投稿されます。
使ってみる
Slack Appをアラート通知先のチャンネルに追加すればOKです。
アラート通知から1~2分後に返信の形で調査結果が投稿されます。

表示される項目はアラート種別によって、それぞれ異なります。
例えば、
-
エラー/例外系アラート:関連エラーログと発生頻度を取得、エラートランザクションの詳細を確認
-
レスポンス遅延/スループット系アラート:スループットとレスポンスタイムを確認、遅いトランザクションを特定
といった感じになります。
実装にあたってハマった点
実際に構築する中でハマった箇所がいくつかあるので、紹介します。
その1:Claude APIとNew Relic MCPの連携
現在Claude APIのMCP Connectorでサポートされている認証方式はOAuth Bearer Tokenのみですが、New Relic MCPの方はドキュメントを見ると、OAuth方式もしくはAPIキー方式しか対応していません。
今回は対策として、プロキシLambda関数を用意して、Claude APIからのBearerトークンをapi-keyヘッダーに変換してNew Relic MCPに転送しております。
これで両者の認証方式の違いをクリアできました!
その2:Slack上でうまく表示されない
SlackではMarkdown記法は対応しておらず、独自のmrkdwnフォーマットを使用しています。そのため、強調の仕方や書式の認識方法などをMarkdown記法で出力しているとうまく変換されずにそのまま * だったりが表示されてしまいます…
今回は、プロンプト内でmrkdwnフォーマットのルールを詳細に定義しておく形で、通常のMarkdownと記法の違いをカバーしました。
その3:429 (Rate Limit) エラーの発生
上記の表記についてのルールもそうですが、なるべく期待に沿った回答を得ようと思うと、どんどんプロンプトが長くなってしまいます。
そして、時折429エラーが発生するようになってしまいました…
anthropic.RateLimitError: Error code: 429 - {'type': 'error', 'error': {'type': 'rate_limit_error', 'message': 'This request would exceed the rate limit for your organization (*****) of 30,000 input tokens per minute. For details, ...
対策として、トークン使用量削減のためプロンプトの最適化を行いました。
情報量を落としすぎて品質が落ちないようにテストしながら、レスポンステンプレートとユーザーメッセージを大幅に簡潔化しております。
また、それでも429エラーが発生した場合には、自動的に軽量モデルにフォールバックして再試行するように実装しております。
まとめ
New Relic MCPを使う事で、AIにシステムのメトリクスを連携できて、原因調査をある程度自動化できました。
MCPによって、New Relicに不慣れであったり、詳しくないシステムのアラートだったりしても、障害対応のハードルがかなり下がった印象です。
今回のようにサーバーレスで構築できると、コストもほとんど発生しませんので、どんどん活用していければと思います!
