Datadog Lambda Library for Node.js
Dash が新機能を発表!インシデントマネジメント、Continuous Profiler など多数の機能が追加されました! Dash イベントで発表された新機能!

Datadog Lambda Library for Node.js

CircleCI Code Coverage NPM Slack License

Datadog Lambda Library for Node.js は、拡張 Lambda メトリクス、分散型トレーシング、および AWS Lambda 関数からのカスタムメトリクス送信を可能にします。

インストール

インストール手順に従って、Datadog で関数の拡張メトリクス、トレース、ログを表示します。

カスタムメトリクス

インストールしたら、Lambda 関数からカスタムメトリクスを送信できるはずです。

AWS Lambda 関数からカスタムメトリクスを送信する手順を確認してください。

トレーシング

インストールしたら、関数のトレースを Datadog で表示できるはずです。

トレース収集の詳細については、AWS Lambda 関数からのトレースの収集をご覧ください。

トレースとログの接続の詳細については、Datadog トレースクライアントの公式ドキュメントをご覧ください。

トレースおよびログ相関

console または自動トレース ID 挿入でサポートされているロギングライブラリを使用している場合、デフォルトで、Datadog トレース ID は相関のためにログに自動的に挿入されます。他のロギングライブラリを使用している場合は、トレース ID を手動で挿入する必要があります。ログとトレースの接続で詳細をご覧ください。

この機能を無効にするには、環境変数 DD_LOGS_INJECTIONfalse に設定します。

カスタムロガー

デフォルトの console の使用法の代わりに、独自のロガーを使用してレイヤーエラーをログに記録し、ログをデバッグできます。

たとえば、Pino ロガーを使用する場合

const { datadog } = require("datadog-lambda-js");
const logger = require("pino")();

// メッセージ文字列をオブジェクトのメタデータとメッセージに変換します
const messageToObject = (stringMessage) => {
  const { message, status, ...metadata } = JSON.parse(stringMessage);

  return [metadata, message];
};

async function myHandler(event, context) {
  // ...
}

// 独自のロガーを使います
module.exports.myHandler = datadog(myHandler, {
  logger: {
    debug: (message) => logger.debug(...messageToObject(message)),
    error: (message) => logger.error(...messageToObject(message)),
  },
});

環境変数

DD_FLUSH_TO_LOG

Datadog Forwarder を利用して CloudWatch ログを介してカスタムメトリクスを非同期に (Lambda 関数の実行に追加のレイテンシーなしで) 送信するには、true に設定します (推奨)。デフォルトは false です。false に設定する場合、DD_API_KEYDD_SITE も設定する必要があります。

DD_API_KEY

DD_FLUSH_TO_LOGfalse に設定されている場合 (非推奨)、次のいずれかの環境変数を設定して Datadog API キーを定義する必要があります。

  • DD_API_KEY - プレーンテキストの Datadog API キー、非推奨
  • DD_KMS_API_KEY - KMS で暗号化された API キー。kms:Decrypt アクセス許可が必要です

DD_SITE

DD_FLUSH_TO_LOGfalse に設定されており (非推奨)、データを Datadog EU サイトに送信する必要がある場合は、DD_SITEdatadoghq.eu に設定する必要があります。デフォルトは datadoghq.com です。

DD_LOG_LEVEL

debug に設定すると、Datadog Lambda ライブラリからのデバッグログが有効になります。デフォルトは info です。

DD_ENHANCED_METRICS

aws.lambda.enhanced.invocationsaws.lambda.enhanced.errors などの拡張 Datadog Lambda インテグレーションメトリクスを生成します。デフォルトは true です。

DD_LAMBDA_HANDLER

オリジナルの Lambda ハンドラーの場所。

DD_TRACE_ENABLED

true に設定されている場合は、Datadog トレーサーを初期化します。デフォルトは false です。

DD_LOGS_INJECTION

相関のためにログに Datadog トレース ID を挿入します。デフォルトは true です。

DD_MERGE_XRAY_TRACES

X-Ray トレースと Datadog トレースの両方を使用するときに、X-Ray トレースと Datadog トレースをマージするには、true に設定します。デフォルトは false です。

未解決の問題

このパッケージでバグが発生した場合は、お知らせください。新しい問題を開く前に、重複を避けるために既存の問題を検索してください。

問題を開くときは、Datadog Lambda Layer のバージョン、Node のバージョン、および取得できる場合はスタックトレースを含めてください。さらに、必要に応じて再現手順を含めてください。

機能リクエストの問題を開くこともできます。

寄稿

このパッケージに問題が見つかり、修正された場合は、手順に従ってプルリクエストを開いてください。

ライセンス

特に明記されていない限り、このリポジトリ内のすべてのファイルは、Apache License Version 2.0 の下でライセンスされます。

この製品には、Datadog(https://www.datadoghq.com/) で開発されたソフトウェアが含まれています。Copyright 2019 Datadog, Inc.