[AWS X-Ray]トレースをグループ化しCloud Watchメトリクスを自動作成する機能が追加されました

AWS X-Rayに、トレースをグループ化しCloud Watchメトリクスを自動作成する機能が追加されましたので、レポートします。
2018.11.30

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、岩城です。
同僚の皆さんがre:Inventで不在の中、私ははじめてフルタイムでリモートワークしています。
家で集中できるのか不安でしたが、以外にも集中して仕事に取り組めており、安心しています。

はじめに

AWSの更新履歴を眺めていましたら、少し前にAWS X-Rayのアップデートがアナウンスされていましたのでレポートします。
AWS X-Ray Adds the Ability to Group Traces

AWS X-Rayとは

AWS X-Ray

開発者は、AWS X-Ray を使用して、本番環境や分散アプリケーション (マイクロサービスアーキテクチャを使用して構築されたアプリケーションなど) を分析およびデバッグできます。X-Ray を使用すると、アプリケーションやその基盤となるサービスの実行状況を把握し、パフォーマンスの問題やエラーの根本原因を特定して、トラブルシューティングを行えます。X-Ray では、アプリケーション内で転送されるリクエストがエンドツーエンドで表示され、アプリケーションの基盤となるコンポーネントのマップも表示されます。X-Ray を使用すると、開発中か本番環境かにかかわらず、シンプルな 3 層アプリケーションから数千のサービスで構成される複雑なマイクロサービスアプリケーションまで、さまざまなアプリケーションを分析できます。

アップデート内容

AWS X-Ray Adds the Ability to Group Traces

You can now group traces to match a filter expression. In addition, X-Ray will automatically create Amazon CloudWatch metrics for traces that match a particular group. This allows you to view service graphs and create CloudWatch alarms by the group, enhancing your ability to quickly understand and fix application issues.

フィルタ式に一致するようにトレースをグループ化できるようになりました。 さらに、X-Rayは、特定のグループに一致するトレースのAmazon CloudWatchメトリックを自動的に作成します。 これにより、グループによるサービスグラフの表示とCloudWatchアラームの作成が可能になり、アプリケーションの問題をすばやく理解して修正できるようになります。(Google翻訳まま)

やってみた

前提

動作確認するためのアプリケーションとX-RAYの環境構築の手順は、以下のドキュメントに用意されているため、本稿では扱いません。「X-Ray コンソールでサービスマップを表示する」まで取り組んでください。ElasticBeanstalkでの環境構築となり10分ほどで完了します。
AWS X-Ray の開始方法

それではやってきます!

グループを作成する

はじめに、X-RayのService Map画面からグループを作成します。デフォルトと記載されたプルダウンからグループの作成をクリックします。  

グループ名は自由で構いません。フィルタ式については、Scorekeepというサービスにおいて、障害が発生した場合をトレースするように設定しました。

ここで設定したフィルタは、グループ作成以降のトレースに反映されます。過去のトレースには反映されませんので注意してください。

アプリケーションを操作しエラーを発生させる

次に、アプリケーションを操作してエラーを発生させます。

グループを選択する

Service Map上で赤くなっている箇所がエラーです。先程作成したグループを選択するとエラーに関連するサービスに絞り込まれます。 エラー原因を探るときに便利です。

Cloud Watchメトリクスを確認する

最後に、続いてグループを作成すると自動で作成されるCloud Watchメトリクスを確認します。グループの詳細からメトリクス表示をクリックします。

メトリクスが表示されていることを確認できました。

さいごに

今回追加された機能を使って、エラーの発生やレスポンスタイムがX秒以上のトレースを抽出し、容易にCloud Watchで監視できるようになりました。個人的には素晴らしいアップデートなのではないかと思います。

このブログが誰かの役に立てれば幸いです。