Google Cloud Platform

Stackdriver で Ruby アプリのモニタリング、デバッグ、ロギングが可能に

Google Cloud Platform(GCP)で動く Ruby アプリケーションのサポート拡充を進めている Google Cloud Ruby チームに合わせる形で、私たちは Stackdriver に対応した gem(Ruby ライブラリ)のベータ版をリリースしました。

Stackdriver は、モニタリング、ロギング、および診断機能を提供する管理ツール スイートです。今回の gem により、GCP だけでなく AWS やお客様のデータセンターでも、Ruby プロジェクトで Stackdriver を利用できるようになりました。Stackdriver gem の詳細は GitHub でご覧になれます。

他の Ruby ライブラリと同様に、私たちは Stackdriver ライブラリが Ruby ユーザーにとって理にかない、作業をより簡単に行えるよう手助けすることに重点を置いています。

gem のインストールは簡単です。Rails では、Gemfile に “stackdriver” gem を追加するだけで、Stackdriver 全体が自動的にロードされます。Sinatra など他の Rack ベースのウェブ フレームワークの場合は gem が必要なほか、提供されるミドルウェアを使うことになります。

Stackdriver Debugger は、私のお気に入りの Stackdriver プロダクトです。アプリケーションを再デプロイすることなく、本番環境におけるコードの動作を調査し、デバッグを行えるようにします。

アプリケーションに gem を組み込んだら、Cloud Console に移動し、コードをアップロードします(または、Stackdriver Debugger でリポジトリ内のコードを指定します)。すると、実行中のアプリケーションの変数値とスタックトレースを含むスナップショットを取得できます。

アプリケーションを再デプロイすることなく、実行中のアプリケーションに任意のログ文を追加することも可能です。しかも、Stackdriver Debugger はこうした情報をすべて 1 回のリクエストでキャプチャし、実行中のアプリケーションへの影響を最小限に抑えます。

Stackdriver Error Reporting は、例外を検出して報告する Google Cloud ツールです。アプリケーションのクラッシュを捉え、それを論理的にグループ化し、お客様に通知して(通知取り消しも適切に行います)、UI(エラー管理インターフェース)に整理してわかりやすく表示します。

UI には、エラーのスタックトレースや、各クラッシュのログおよび分散トレースへのリンクが表示されます。エラーを認識し、グループ化されたエラーをバグ データベース内のバグと関連づけることができるので、何が起こっているかを的確に追跡できます。

また、Stackdriver Error Reporting はエラーを自動的に検出するだけではありません。目的のアプリケーションに 1 行のコードを追加すれば、Stackdriver Error Reporting にアプリケーションのエラーを検出、報告させることができます。

7DcDZvL_WVm02Mz6zXhEgLuiYGdsAPRvQmXjhIrcBA8hEaRpH2Os8sQuthdll4yBHdXNBAwa0Am-UwiTYIHw8_36UGGAixppEpteFvwUXQv1xpeWMe6iC7OCfE7VjoRbr3P3-_4Yoc28.PNG

Stackdriver Trace は、アプリケーションのパフォーマンス モニタリングと分散トレーシングを行う Google ツールです。Rails では、リクエストがデータベースに到達し、ビューがレンダリングされ、アプリケーション ロジックの実行に要した時間が自動的に表示されます。

また、リクエストがマイクロサービス アーキテクチャでどのように処理されるかを表示し、レイテンシの時系列の傾向に関する詳細レポートも提供します。これにより、「最新リリースへの更新後、アプリケーションに遅延はないか」といった質問に明確に答えることができます。

OEL1f5doA6iW35qwcba34J0yQ2Y3o5QP2YOLeCNBXxIAYDx0njZmcs5WJGmmvJ1wVVdSlmfcjp4GA9mJVrB_gu8N7U07T8jkDoLs3IpSvt_Qug70lgT0eUEXHeHSkKJ7oOVDxwZD6izx.PNG

Stackdriver Logging の Ruby ライブラリはすでに正式リリース(GA)されており、Container Engine を使用するお客様の多くが fluentd ロギング エージェントとともに利用しています。

このロギング ライブラリは、Container Engine を使っていなくても利用できます。Ruby Logger や Rails Logger の代わりに簡単に導入することが可能です。Stackdriver gem を Rails アプリケーションに組み込めば、リクエストのレイテンシのような情報が自動的に Stackdriver Logging にもプッシュされます。

IEsa5sGeA-K6j9QdaSbi-ZffqjyGyVUDRLMwR_zo0D7T_peVDrStuvqxzex6NdiLRWsOh3NiEWPE52rq34H0SHSYQt0gqrM1ouaqVeN_nQA2V0btKZG6Yr5pqHr11nI2ckRYzyS3crc0.PNG

Stackdriver gem を初めて使用するときは GitHub のドキュメントが参考になります。Stackdriver gem は現在ベータの段階にあるので、ぜひ試していただき、GCP Slack の Ruby チャンネルや GitHub にフィードバックをお寄せください。このライブラリを Ruby コミュニティにとってできるだけ便利で有益なものにするために、参考にさせていただきます。

* この投稿は米国時間 10 月 16 日、Developer Advocate である Aja Hammerly によって投稿されたもの(投稿はこちら)の抄訳です。

- By Aja Hammerly, Developer Advocate