AWS Lambda のモニター
Instana のUIで AWS Lambda に関連するメトリクスを表示するには、 Instana AWS エージェントをインストールして設定する必要があります。これは、専用の AWS モードで動作する Instana ホストエージェントです。
詳細については、 「 AWS エージェント」 を参照してください。
Instana のUIでLambdaトレースを表示するには、 AWS Lambda 関数に Instana のLambdaトレーサーを追加する必要があります。
AWS Lambda を監視するには、 AWS 環境に Instana AWS エージェントをインストールし、 Instana のLambdaトレーサーを AWS Lambda の関数と統合する必要があります。
Instana ( AWS )エージェントは、 AWS アカウントおよびリージョンごとに1回インストールされ、そのアカウントおよびリージョン内のすべての AWS Lambda 機能に加え、その他の AWS サービスを監視します。 詳細については、 「 Amazon Web Services ( AWS )エージェントを使用した Amazon Web Services ( AWS )の監視 」を参照してください。 このセンサーは、 AWS Lambda 関数のインフラストラクチャメトリクスを収集します。 また、関数からトレースを収集するために、 AWS Lambda 関数に Instana のLambdaトレーサーを追加する必要があります。 Lambda関数のランタイムに応じて、トレーサーは AWS Lambda 関数にレイヤーとしてインストールされるか、手動でインスツルメントされます。
サポートされるランタイム
AWS エージェント
Lambda モニター用の AWS エージェントは、ランタイムに関係なく、すべての Lambda 関数のバージョンの詳細とメトリックを収集します。
AWS Lambda ネイティブトレース
AWS Lambda モニターの構成
「 Instana 」を使用して「 AWS Lambda 」の機能を監視するには、以下の手順を実行してください:
Lambdaの監視用に AWS エージェントを設定する
AWS エージェントを構成するには、以下の手順を実行します。
- AWS Lambda の監視用に AWS エージェントを設定します。
- 必要に応じて、 プロキシー構成を使用します。
詳細については、 「Lambda モニタリング用の AWS エージェントの設定」 を参照してください。
AWS Lambda 関数への Instana Lambdaトレーサーのインストール
オプション: Instana のLambdaトレーサーに関する追加設定
以下の表に示すように、ネイティブ Lambda トレースで一般的にサポートされるオプションの環境変数を構成できます。
INSTANA_DISABLE_CA_CHECK 数を true に設定しないでください。 この変数を有効にすると、この接続においてLambdaが中間者攻撃( MITM )の被害を受ける可能性があります。| 環境変数 | 説明 |
|---|---|
INSTANA_TIMEOUT |
Instana バックエンドにデータを報告する HTTP リクエストのタイムアウトを設定します。 |
INSTANA_ENDPOINT_PROXY |
この変数を または http://my-proxy.tld に設定すると、 HTTP または http://user:password@my-proxy.tldHTTPS プロキシを経由して、 Instana バックエンドへデータを送信するようになります( Node.js ではサポートされていますが、 Python ではサポートされていません)。 |
INSTANA_EXTRA_HTTP_HEADERS |
この変数に、 HTTP ヘッダー名のセミコロン区切りのリストを設定します(トリガータイプが「 API ゲートウェイ(Lambdaプロキシ統合)」または「アプリケーションロードバランサー」の場合)。これにより、 HTTP ヘッダーが取得されます。 |
INSTANA_SERVICE_NAME |
カスタム・サービス名を定義します。 |
INSTANA_LOG_LEVEL |
Instana パッケージのログレベルを設定します。 可能な値は、 debug、 info、 warn、および error (デフォルト: info) です。 |
INSTANA_DEBUG |
ログ・レベルを debugに設定するには、この変数を任意の値に設定します。 |
INSTANA_DISABLE_CA_CHECK |
この変数を に設定すると true 、 Instana バックエンドに接続する際、Lambdaランタイムに含まれる認証局(CA)リストに対するサーバー証明書の検証が無効になります。 ( @instana/aws-lambda@1.93.0/レイヤー・バージョン 25 以降で使用可能) |
Lambda関数の設定、メトリクス、バージョン、トリガーの確認
Instana を通じて、Lambda 関数に関するすべての情報を確認できます。
Lambda 関数の「 HTTP 」の属性、トリガー、メトリクス、およびバージョンの詳細を確認するには、以下の手順を実行してください:
- Instana のUIのサイドバーで、 「インフラストラクチャ」 を選択します。
- モニター対象の特定のラムダ関数をクリックします。
収集されたすべてのメトリックと Lambda バージョンを含むホスト・ダッシュボードを表示できます。 詳細については、 「Lambdaの設定、メトリクス、バージョン、およびトリガー」 を参照してください。
コールドスタートまたはタイムアウト時のアラートを有効にする
Lambda関数における過度なコールドスタートやタイムアウトに対して、 スマートアラートを設定できます。
| ランタイム | コールド・スタート | タイムアウト | Comment |
|---|---|---|---|
| Go | ✅ | ✅ | |
| Node.js | ✅ | ✅ | タイムアウト検出はデフォルトでは無効になっている。 タイムアウト検出を有効にするには、環境変数の追加を参照してください。 |
| .NET または .NET Core | ✅ | ❌ | |
| Java | ❌ | ❌ | |
| Python | ❌ | ❌ | |
| Ruby | ❌ | ❌ |
スマートアラートを設定するには、 アラ ートを設定したいLambda関数が含まれるアプリケーション・パースペクティブのドキュメントに移動し、スマートアラートを追加します:
- Instana のUIにあるナビゲーションパネルから、 「アプリケーション」 をクリックします。
- アプリケーションを選択します。
- スマート・アラートの追加をクリックします。
- 「拡張モードに切り替え」をクリックします。
- 「スコープ」 セクションの 「サービス/エンドポイントの選択」 フィールドに、以下のいずれかのフィルターを追加します。
Cloud Function As A Service > Cold Start is trueCloud Function As A Service > Suspected Timeout is true
- 「トリガー」 セクションの 「選択されたブループリント」 フィールドで、 「スループット」を選択します。
- 「しきい値」 セクションで、ユース・ケースに合った しきい値 を選択します。 すべてのオカレンスを含めるには 1 を使用し、特定の数のコールド・スタートまたはタイムアウトに対してルールを違反させるには、より大きい値を使用します。
- 「時間しきい値」 設定を使用して、アラートの動作を微調整します。

Lambda拡張機能の使用
NodeJS バージョン71以降のLayerには、Lambda拡張機能が含まれています。
この拡張機能は、 Instana バックエンドへのデータ送信プロセスを他のLambda関数の処理から分離することで、監視対象のLambda関数のパフォーマンスを向上させることができます。 これらのパフォーマンス改善を利用するには、Instana レイヤーを拡張機能を含むバージョンにアップグレードします。
内部的には、この拡張機能は言語ライブラリと連携して、 Instana バックエンドへのすべてのリクエストをバッファリングし、プロキシ処理を行います。 通常の操作では、拡張によってラムダ関数の存続期間が延長されることはありません。 存続時間は、以下のインスタンスの間のみ延長されます。
- バックエンドへのバッファーに保持されているすべてのデータを確実にクリアするためのシャットダウン要求。
- Lambda 関数が失敗し、スパンの送信が停止する状態。 3 秒間待機して、ルート・スパンが送信されたかどうかを確認してから、次の呼び出しを待機します。
この拡張機能の使用を無効にするには、関数の環境変数 TRUE を INSTANA_DISABLE_LAMBDA_EXTENSION に設定してください。
Lambdaの監視に関するパフォーマンスと実行時間の考慮事項
成果物のサイズ
Instana のLambdaモニタリングを追加すると、デプロイされたLambda関数のサイズが大きくなります。 追加のサイズは、言語固有のレイヤーまたはライブラリーによって異なります。 特定の Instana Lambdaレイヤーバージョンのサイズを確認するには、次のシェルコマンドを使用します:
aws lambda get-layer-version --layer-name <layer_arn> --version-number <target_version> | jq .Content.Location | xargs -L 1 curl --output layer.zip
unzip -l layer.zip
パフォーマンスへの影響
Instana を使用して Lambda 関数を監視する場合、パフォーマンスへの影響は主に、Lambda 関数が Instana のバックエンドと通信するのにかかる時間によって決まります。 各実行の終了時に、 Instana が提供するライブラリは、実行結果を報告するために、 Instana、 AWS Lambda 拡張機能、または Instana テナントユニットのいずれかに対してブロッキング呼び出しを行います。
Lambda 拡張機能を使用する関数の場合、このプロセスはバックグラウンドで実行され、モニター対象の関数は、モニター対象のコードの準備ができるとすぐに応答を返すことができます。
Lambda 拡張機能を使用していない関数の場合、このプロセスでは、データがテナント・ユニットに送信された場合にのみ、実行の結果をレポートできます。