Datadog を使用した AWS Lambda 関数の監視 | Datadog

Datadog を使用した AWS Lambda 関数の監視

Author Evan Mouzakitis
@vagelim

Published: 8月 10, 2016

“サーバーレス” の動きは [業界に旋風を巻き起こし] (http://thenewstack.io/serverless-computing-growing-quickly/)ています。Datadog を使用すれば AWS Lambda のサーバーレスなアプリケーションと関数を監視することが可能になります。

AWS Lambda のモニタリング - 革新的な AWS Lambda ダッシュボード

Lambda インテグレーションを有効にすると、上記のような設定不要のダッシュボードにメトリクスが表示されます。

Datadog を使用して、サーバーレスの AWS Lambda 関数をモニタリングしアラートを作成。

AWS Lambda は、基盤となるインフラストラクチャーを抽象化するイベント駆動型のコンピューティングサービスで、開発者は実行環境ではなくコードに集中することができるようになります。Lambda 関数は、API リクエストや、S3 バケットに新しいオブジェクトを追加したりするアプリ内のアクションや AWS イベントをトリガーとして実行されます。2014 年に登場して以来、Lambda は周辺 ツールフレームワーク数多く 開発されると共に広く普及し、NetflixNordstrom など大企業にも採用されています。

AWS の一部として、Lambda は、EC2ELBSESS3 など、おなじみの AWS サービスと統合します。手頃な価格、信頼性、利便性、他の AWS サービスとのネイティブインテグレーションにより、Lambda は主要なサービスとしてのコンピューティングプラットフォームになります。

AWS Lambda サーバーレス環境の監視

Lambda 関数の実行とパフォーマンスの監視は、従来のアプリケーションサーバーの監視とは少し異なります。従来で言う「ホスト」が存在しないため(つまり、スタンダードな診断や監視ツールを実行する場がない)、AWS マネジメントコンソールに搭載 せずに Lambda を監視することは難しいかもしれません。

すべてが白日の下に

AWS Lambda と Datadog のインテグレーションにより、Lambda メトリクスとログの [可視化] (/blog/timeseries-metric-graphs-101/) や [アラート] (/blog/monitoring-101-alerting/) を設定し、他のインフラストラクチャーからの運用データとの関連付けが可能になります。関数の実行メトリクスの AWS コンソールをクリックしなくても、一か所ですべてを確認することができるようになります。

メトリクスの表示

Lambda インテグレーションにより、次のような関数の実行に関する [メトリクス] (https://docs.datadoghq.com/integrations/amazon_lambda/?tab=awsconsole#data-collected) のアラート通知や可視化ができるようになります。

  • 実行時間
  • 呼び出し
  • エラー
  • スロットル関数

タグで詳細を入手

インテグレーションにより、Lambda 関数にタグが自動的に追加されるため、これらの新しいディメンションを使用して、お好みの方法でデータを分類できます。タグには次のものが含まれます。

  • functionname: Lambda 関数名
  • region: Lambda が “実行されている” リージョン
  • 関数に追加した カスタムタグ

Datadog は、Lambda ランタイム言語、割り当てメモリ、AWS アカウントのタグも自動的に追加します。

標準的なメトリクス以上のデータ

Datadog Lambda レイヤー を使用してカスタムメトリクスを収集、送信し、他のインフラストラクチャーのメトリクスと同時に関数別にメトリクスを監視することもできます。

独自のカスタムメトリクスの送信を開始するには、AWS コンソールの適切な Lambda 関数に Layer AWS を追加します。

arn:aws:lambda:<AWS_リージョン>:464622532012:layer:Datadog-<ランタイム>:<バージョン>

最新のレイヤーバージョンは、[ランタイム] の GitHub リリースページに表示されています。(https://docs.datadoghq.com/integrations/amazon_lambda/?tab=awsconsole#installing-and-using-the-datadog-lambda-layer

Datadog では、Python、Go、Node.js など 複数のプログラミング言語とランタイム 用の Lambda Layer を提供することで、必要な Lambda メソッドを既存のコードに簡単にインポートできます。カスタムメトリクスが Datadog に届くと、自動的に計算されたリアルタイムの集計(平均、合計、最大、最小、カウント、パーセンタイル値)を追跡することができます。

Datadog Lambda Layer を使用した カスタムメトリクスの送信とタグ付け の詳細については、Datadog のドキュメントを参照してください。

サーバーレストレースとログの収集

Datadog の AWS X-Ray インテグレーション を有効にして、AWS Lambda の トレースの収集 もできます。これにより、AWS Lambda 関数からホスト、コンテナ、サービスに至るまで、インフラストラクチャー全体のリクエストを可視化できます

AWS X-Ray でサーバーレスのトレースを視覚化

メトリクスとトレースの収集に加えて、Lambda ログを自動的に収集して Datadog に転送することもできます。これにより、(上記トレースの “ログ” タブをクリックすることなどで)Lambda メトリクスやトレースから関連ログに素早く移動できるようになり、Lambda アクティビティすべてを同じ画面で総合的に確認できます。Lambda ログを Datadog に転送する詳細については、Datadog の ドキュメント を参照してください。

アクセス許可の検証

AWS を Datadog にまだ統合していない場合は、続行する前にまず統合を行ってください

次に、Datadog IAM ポリシー に次のアクセス許可を追加して AWS Lambda メトリクスの収集を開始します。

  • lambda: リスト*
  • tag:GetResources

スイッチオン

Datadog を Amazon Web Services に統合すると、すぐに インテグレーションを有効にする ことができます。簡単に共同で監視できるテクノロジーとして続々と増加する リストに AWS Lambda を追加しましょう。Datadog を初めて使用する場合は、をご利用ください。