AWS Lambda のモニター
Instana UI で AWS Lambda に関連するメトリクスを表示するには、専用の AWS モードで実行される Instana ホスト エージェントである Instana AWS エージェントをインストールして構成する必要があります。
詳細は 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 Amazon Web Services ( AWS ) エージェントを使用した Amazon Web Amazon Web Services ( AWS ) の監視」 を参照してください。 このセンサーは AWS Lambda 関数のインフラメトリクスを収集します。 また、関数からトレースを収集するには、 AWS Lambda関数にInstana Lambdaトレーサーを追加する必要があります。 Lambda関数のランタイムに応じて、トレーサーは AWS Lambda関数のレイヤーとしてインストールされるか、手動でインスツルメンテーションされる。
サポートされるランタイム
AWS エージェント
Lambdaモニタリングのための AWS エージェントは、ランタイムに関係なく、すべてのLambda関数のバージョン詳細とメトリクスを収集します。
AWS ラムダ・ネイティブ・トレース
AWS Lambda モニターの構成
Instana で AWS Lambda 関数を監視するには、次の手順を実行します:
ラムダ監視のための AWS エージェントの設定
AWS エージェントを設定するには、以下の手順を実行する:
詳細については、 ラムダ監視のための AWS エージェントの設定を参照してください。
AWS Lambda関数にInstana Lambdaトレーサーをインストールする
オプションInstana Lambda トレーサーのその他の設定を行う
Lambdaのネイティブ・トレースで一般的にサポートされているオプションの環境変数は、以下の表のように設定することができます:
INSTANA_DISABLE_CA_CHECK true ただし、オンプレミスで Instana を使用し、既知のルート認証局 (CA) の証明書で Instana バックエンドを操作できない場合を除きます。 この変数を有効にすると、ラムダはこの接続に対してMITM(Man in the Middle)攻撃に対して脆弱になります。| 環境変数 | 説明 |
|---|---|
INSTANA_TIMEOUT |
Instana バックエンドにデータを報告する HTTP リクエストのタイムアウトを設定します。 |
INSTANA_ENDPOINT_PROXY |
この変数を http://my-proxy.tld または http://user:password@my-proxy.tld に設定すると、データの報告を HTTP または HTTPS プロキシ経由で Instana バックエンドにルーティングします ( Node.js ではサポートされますが、 Python ではサポートされません)。 |
INSTANA_EXTRA_HTTP_HEADERS |
この変数にセミコロンで区切られた HTTP ヘッダ名のリストを設定し、 HTTP ヘッダをキャプチャする(Lambda プロキシを統合した API ゲートウェイやアプリケーションロードバランサーをトリガーとする)。 |
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関数の HTTP 属性、トリガー、メトリクスおよびバージョンの詳細を表示するには、次の手順を実行します:
- Instana UI のサイドバーで、 インフラストラクチャを選択します。
- 特定の監視ラムダ関数をクリックする。
ホストのダッシュボードには、収集されたすべてのメトリクスとラムダのバージョンが表示されます。 詳細については、 ラムダの設定、メトリクス、バージョン、およびトリガを参照してください。
コールドスタートやタイムアウトのアラートを有効にする
Lambdaファンクションの過剰なコールドスタートやタイムアウトに対するスマートアラートを設定できます。
| ランタイム | コールド・スタート | タイムアウト | Comment |
|---|---|---|---|
| Go | ✅ | ✅ | |
| Node.js | ✅ | ✅ | タイムアウト検出はデフォルトでは無効になっている。 タイムアウト検出を有効にするには、 追加の環境変数を参照してください。 |
| .NETまたは.NET Core | ✅ | ❌ | |
| Java | ❌ | ❌ | |
| Python | ❌ | ❌ | |
| Ruby | ❌ | ❌ |
スマートアラートを設定するには、アラートが必要なLambda関数を含むアプリケーションパースペクティブのドキュメントにアクセスし、スマートアラートを追加します:
- Instana UI のナビゲーションパネルから、 アプリケーションをクリックします。
- アプリケーションを選択します。
- スマート・アラートの追加をクリックします。
- アドバンスモードに切り替える 」をクリックする。
- Scope」 セクションの 「Select Services/Endpoints」 フィールドに、以下のフィルタのいずれかを追加する:
Cloud Function As A Service > Cold Start is trueCloud Function As A Service > Suspected Timeout is true
- Trigger セクションの Selected blueprint フィールドで Throughput を選択します。
- 閾値セクションで、使用ケースに合った閾値を選択する。 コールドスタートまたはタイムアウトの特定の回数でルールを違反させるには、それ以上の値を使用する。
- 時間しきい値の設定を使用して、アラート動作を微調整します。

ラムダ・エクステンションの使用
NodeJS レイヤーのバージョン71以降には、 ラムダ・エクステンションが含まれている。
この拡張機能は、Instanaバックエンドにデータを送信するプロセスを他のLambda関数のプロセスから分離することで、監視対象のLambda関数のパフォーマンスを向上させることができます。 これらのパフォーマンス改善を利用するには、Instana レイヤーを拡張機能を含むバージョンにアップグレードします。
内部的には、エクステンションは言語ライブラリと連携して、Instanaバックエンドへのすべてのリクエストをバッファリングし、プロキシします。 通常の操作では、ラムダ機能の寿命は延長されない。 有効期限は以下の場合にのみ延長される:
- バックエンドへのバッファに保持されているすべてのデータがクリアされたことを確認するためのシャットダウン要求。
- ラムダ関数が失敗し、スパンの送信が停止する状況。 3 秒間待機して、ルート・スパンが送信されたかどうかを確認してから、次の呼び出しを待機します。
拡張機能の使用を無効にするには、あなたの関数の環境変数で INSTANA_DISABLE_LAMBDA_EXTENSION 変数を TRUE に設定してください。
ラムダ・モニタリングのパフォーマンスとランタイムに関する考察
成果物のサイズ
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エクステンションを使用していない関数の場合、この処理により、テナントユニットにデータが送信された場合にのみ、実行結果のレポートが可能になります。