APC 技術ブログ

株式会社エーピーコミュニケーションズの技術ブログです。

株式会社 エーピーコミュニケーションズの技術ブログです。

DataDog無料トライアルでLambda関数と連携してみた

目次

はじめに

こんにちは!クラウド事業部の野村です(*゚ー゚) Datadogの2週間無料トライアルに申し込み、AWS Lambdaの監視を試してみたので、その方法について紹介いたします。

こんな方におすすめ

  • AWSは少しわかる
  • Datadogを触った経験がない
  • Dataddogを無料でサクッと試してみたい

手順

早速手順を紹介します。

0. 前提条件

  • 学習に利用可能なAWSアカウントがあること
  • AWS Lambdaでテスト用の関数がデプロイされていること
  • AWS CLIを実行するための認証が得られる開発環境があること

2番目、3番目の条件に自信がない場合は、後述のサンプルアプリケーションを使うことも可能です。

1. Datadog無料トライアルに申し込む

Datadogの公式ページにアクセスし、「無料トライアル」ボタンをクリックすると、さっそく情報入力画面が開きます。

Datadog無料トライアル申し込み画面

必須項目を入力し、「サインアップ」をクリックします。

クレジットカードの登録が不要なので、気持ち的にも手順的にもハードルが低いですね。

2. Datadogエージェントのセットアップ

情報登録の画面から以下のようなエージェントセットアップの画面に遷移するので、左ペインより AWS Lambdaを選択し、上部のタブでLambdaで使用する言語を選択(今回はPythonを選択)します。

DataDog Agent Setup画面

表示される①~③の手順をAWS CLIの認証がある環境のターミナルにて実施していきます。

①で環境Datadog CLIをインストールした後、に②のコマンドを実行すると、対話形式でいくつかの情報が聞かれるので、答えていきます。

[!] Configure AWS region.
? Which AWS region (e.g., us-east-1) your Lambda functions are deployed?    # 連携したいLambda関数があるAWSリージョンを回答

[!] Configure Datadog settings.
? Select the Datadog site to send data.     # Agent Setupのページに記載されているDD_SITEの値を選択
Learn more at https://docs.datadoghq.com/getting_started/site/
? Which type of Datadog API Key you want to set?     # トライアルの場合は推奨のPlain text API Keyを選択
Learn more at https://app.ap1.datadoghq.com/organization-settings/api-keys
? API Key:    # Agent Setupのページに記載されているDD_API_KEYの値を回答

? Select the functions to modify    # 連携したいLambda関数の名前を回答

# 以下は自分なりに環境名、サービス名、バージョンを設定する(タグとして情報の検索や抽出などに利用できる)
? Enter a value for the environment variable DD_ENV (recommended)
? Enter a value for the environment variable DD_SERVICE (recommended)
? Enter a value for the environment variable DD_VERSION (recommended)

InstrumentされたLambda関数を覗きに行くと、関数のコード自体は変更されていなかったのですが、Datadog関連のレイヤが2つ入っており、ハンドラにもDatadog関連のものが設定されていました。

※ ハンドラはデフォルトでは「lambda_function.lambda_handler」だったはず

AWS Lambda関数の詳細画面から

(補足)テスト用のLambda関数がないがサクッと試したい方に、サンプルアプリケーションが用意されています

Agent Setup、③の最後の行でサンプルアプリケーションが紹介されています。

github.com

リンクのReadmeに従って操作することで、DataDogのサーバレスサンプルアプリとDataDogとの連携をCloudFormationで同時にデプロイできます。

3. Datadogコンソールにログイン

私の場合は、2.の手順が完了しても、DatadogはAgent Setupの画面から進めなかったので、一度右上の「logout」→再度ログインすることで自分のコンソールに入れました。

4.いじってみる

Lambda関数を適当に実行し、DataDogで収集されているデータを確認していきます。

Metrics

Summery

コンソールの左メニューからMetrics⇒Summeryと進むと、Lambda関数と連携することで収集されているメトリクスがこれだけあるよという一覧があります。

DataDogコンソール Metrics - Summery

上部の検索バー(Metrics用/Tag用)や中央より左のチェックボックスで絞り込み、確認したいメトリクスを探すことが出来ます。

Explorer

確認したいメトリクスが見つかったら、explorerで可視化します。

DataDogコンソール Metrics - Explorer

右上の「Past 1 hour」が選択されているバーで表示する時間範囲を変更できます。

またその下部中央側のA~Cまで3行あるMetricsを選択するバーで、実際に可視化するメトリクス名を指定します。

Metricsバーの真ん中の「from」となっているところは、可視化の時のスコープです。今回はInstrumentの時に名付けた環境名を選択しています。

Metricsバーの左側の「avg by」「resource_name」となっているところは、空間集計というもので、今回Aのメトリクスの出力は左下のグラフなのですが、リソース名で2本のグラフに分かれているのが読み取れます。「avg by」の部分も、メトリクスによってですが、集計方法として平均、最小、最大、合計から選べます。

※ サンプルアプリを手動でポチポチ動かした出力なので、変な形のグラフになっていることはご容赦ください、、。

他にもクエリをしたり、いろいろな機能があるのでぜひ調べて試してみてください。

Logs

ログの取得を開始するには、エージェントの導入に加えてもう一つ、AWS側で収集したログをDataDogに送信するための設定が必要になります。今回は、サッと確認できることだけ確認したかったので割愛します。

DataDogコンソール Logs

Traces

渡すイベントによってエラーが発生するようなLambda関数を成功パターン、エラーパターン両方を複数回実行してから、DataDogコンソールでトレースの結果を見てみました。

DataDogコンソール APM - Traces トレースのリスト

上記のように関数の実行ごとにトレースが作られ、リスト化して確認することが出来ます。

トレースの詳細も見れますし、エラーが起きているスパンをクリックすると、以下の通りエラーの内容も見ることが出来ます。

DataDogコンソール APM - Traces トレース・スパンの詳細

今回は単純な関数で試してし見たのですが、もっと複雑に関連し合ったサービスやイベントを理解したいときにトレースは便利ですよね。もし興味があれば、以下の公式リンクにも使い方が載っていて、利用するメリットが理解しやすいので、確認してみてください。

感想

事前にDataDog公式のLearning CenterでDataDogの基礎知識をつけてから臨んだので、さらに理解が進む形となり、いい機会になりました。

今回は代表的な機能に簡単に触れるだけだったのですが、クエリのかけ方やそれぞれの情報の紐づけ方など、とても奥深いようで、もっと勉強していきたいと思いました。