Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 8922

マイクロサービス?(AWS Lambda)のログの運用監視する際のツール ※Node.jsの場合

$
0
0

マイクロサービス?(AWS Lambda)のログの運用監視する際のツール ※Node.jsの場合

便利なツールは以下の通り

  • DAZN Lambda Powertools

関連性のあるLambda同士を紐づけるIDをログに出力してくれます。
LambdaからLambdaの呼び出しが複雑になる場合に、関連性のあるログを一括して検索した場合に活用できます。

参考URL:https://dev.classmethod.jp/articles/dazn-lambda-powertools/

  • AWS X-Ray

AWSのサービス(Lambdaもできる)の関連性を可視化でき、分析もできます。
※画面イメージ的には、JP1とか、Jenkinsのパイプライン的な感じ。Lambdaのジョブフローが見える感じ。
※内部的には、上記で紹介した「DAZN Lambda Powertools」と同じようなことしてます。

参考URL:https://docs.aws.amazon.com/xray/index.html

DAZN Lambda Powertools&AWS X-Rayどちらも使う場合の実装サンプルは以下。

varAWSXRay=require('aws-xray-sdk-core');constclient=require('@dazn/lambda-powertools-lambda-client');varLambda=AWSXRay.captureAWSClient(client);constLog=require('@dazn/lambda-powertools-logger');constwrap=require('@dazn/lambda-powertools-pattern-basic');exports.handler=wrap(async(event,context)=>{Log.info('start');constrequest={FunctionName:'次の関数名',InvokeArgs:JSON.stringify({message:'hello lambda'})};awaitLambda.invokeAsync(request).promise();});

※アクティブトレースにチェック必要(X-RAY使う為)
※レイヤーに、xrayとdaznのライブラリ追加が必要
※起点のLambdaから複数のLambdaを非同期的に呼び出す場合は、AWSXRay.captureAsyncFuncを使った方が良さげ。
※本番環境で運用する場合は、エラーハンドリングはちゃんと書いてね。

なお、X-RAYの機能は、性能分析(Lambdaの実行時間分かる)に使えるのですが、
Lambdaの中の一部分の性能をはかりたい場合には、サブセグメント(beginとend)を決め、
サブセグメントの実行時間を計測できます。

詳細は以下URL
https://docs.aws.amazon.com/ja_jp/xray/latest/devguide/xray-sdk-nodejs-subsegments.html

概念的にはJavaの実装のが理解しやすい。以下の通り
https://docs.aws.amazon.com/ja_jp/xray/latest/devguide/xray-sdk-java-subsegments.html
※Node.jsでも、Java的な書き方は可能。


Viewing all articles
Browse latest Browse all 8922

Trending Articles