はじめに
DatadogでLambdaの監視を検討する際、以下のような情報の管理を考えると思います。
(番号は本記事のために便宜的に付与したもの)
- 標準的なメトリクスの収集
- 拡張Lambdaメトリクスの収集
- ログの収集
- カスタムメトリクスの収集
- トレースの収集
本記事では、「2. 拡張Lambdaメトリクスの収集」と「3. ログの収集」の方法を紹介したいと思います。
拡張Lambdaメトリクスについて
DatadogではDatadog Forwarder(後述)を導入することで、Cloud Watchの標準メトリクス以外のメトリクスを収集可能です。
拡張Lambdaメトリクスについては以下のページに詳細の紹介があります。概要詳細部分を引用します。
拡張 Lambda メトリクスは、AWS Lambda インテグレーションで有効になっているデフォルトの Lambda メトリクスを超えるビューを提供します。これらのメトリクスは、aws.lambda.enhanced.* ネームスペースにあることで識別が可能で、サーバーレスアプリケーションの健全性をリアル地無二モニターするよう設定するためのベストプラクティスです。
いくつか対象のメトリクスがありますが、メモリの取得が出来ることは特にありがたいですね。
仕組み
拡張Lambdaメトリクスが収集される仕組みは、下図(Datadogの公式ドキュメント内より参照)の通りです。
対象のLambdaファンクションのあるリージョンにDatadog Forwaderをデプロイし、対象のファンクションのCloudWatch LogsをForwarderのトリガーにすることで、Forwarderがよしなに拡張LambdaメトリクスをDatadogに収集させてくれます。
手順
それでは、構成の手順を紹介します。
前提
以下は前提とします
- Datadog にAWS Lambdaインテグレーションがインストールされていること
- 対象のLambdaファンクションがデプロイされていること
手順
Datadog Forwarderのデプロイ
はじめにDatadog Forwarderをデプロイします。 デプロイ方法として以下の3つが公式ドキュメントには紹介されています。
- CloudFormation
- Terraform
- 手動
今回は簡単に行うためCloudFormationの手順で実施しました。
ドキュメント内の「Launch Stack」をクリックするとCloudFormationの画面に遷移しますので、DdApiKey
にDatadogのAPIキーを入力して、スタックを作成します。
CloudWatch Logsの設定
対象のファンクションの拡張メトリクスを収集するため、対象のファンクションのCloudWatch LogsをDatadog Forwarderのトリガーに設定します。
動作確認
以上です。簡単ですね! では、動作確認してみましょう。
拡張メトリクス
Datadogにデフォルトで AWS Lambda (Enhanced Metrics)
という名前で拡張メトリクスを利用したダッシュボードが用意されているので、そちらでメトリクスを確認してみます。
おお、メモリ等の拡張メトリクスの収集がされているのが分かりますね。
ログ
ログも収集が開始されるので確認してみます。DatadogのメニューからLogs->Live Tailしてみると、実行ログがリアルタイムで収集されていることが分かります。
おわりに
さて、そんなDatadogやRubyを活用しているAWSの運用自動化ツールCloud Automatorですが、オンラインセミナーを絶賛開催中です。 ご興味があれば覗いてみてください。
参考
紅林輝(くればやしあきら)(サービス開発部) 記事一覧
サービス開発部所属。2015年にサーバーワークスにJOIN。クラウドインテグレーション部を経て、現在はCloud Automatorの開発に従事。ドラクエ部。推しナンバーはⅤ、推しモンスターはクックルー。