10 CloudWatchログ無サーバーアプリケーションの洞察例


CloudWatchログの洞察は、対話的に検索し、アマゾンCloudWatchのログでログデータを分析することができますCloudWatch機能です.あなたがより効率的かつ効果的に操作上の問題に対処するためのクエリを実行することができます、問題を診断し、アプリケーションのパフォーマンスをトラブルシューティング.
CloudWatch Logs Insights syntax 学ぶことが難しいので、このポストには10のCloudWatchのログは、Serverlessなアプリケーションとして私たちの日常の仕事で有用であることがわかります.

指定したリクエストIDまたはX線トレースIDのログをすべて表示します


fields @timestamp, @message
| filter @message like /REQUEST_ID_GOES_HERE/
注意:/REQUEST_ID_GOES_HERE/ は実際のリクエストIDのプレースホルダですxRayTraceId を検索します.そのことを心に留める/something/ は正規表現です.

最近のエラー


fields Timestamp, LogLevel, Message
| filter LogLevel == "ERR"
| sort @timestamp desc
| limit 50

最も高価なラムダ関数呼び出しを見つける


filter @type = "REPORT"
| fields @requestId, @billedDuration
| sort by @billedDuration desc

ラムダ関数の5分間隔の表示待ち時間統計


filter @type = "REPORT"
| stats avg(@duration), max(@duration), min(@duration) by bin(5m)

ラムダ関数のためのオーバープロビジョニングメモリの量を決定する


filter @type = "REPORT"
| stats max(@memorySize / 1024 / 1024) as provisonedMemoryMB,
  min(@maxMemoryUsed / 1024 / 1024) as smallestMemoryRequestMB,
  avg(@maxMemoryUsed / 1024 / 1024) as avgMemoryUsedMB,
  max(@maxMemoryUsed / 1024 / 1024) as maxMemoryUsedMB,
  provisonedMemoryMB - maxMemoryUsedMB as overProvisionedMB
注意:

Lambda allocates CPU power in proportion to the amount of memory configured. Memory is the amount of memory available to your Lambda function at runtime. You can increase or decrease the memory and CPU power allocated to your function using the Memory (MB) setting.


APIゲートウェイ実行ログの非200エラーを見つける


fields @timestamp, @message, @requestId, @duration, @xrayTraceId, @logStream, @logStream
| filter
   @message like /fail/ or
   @message like /timed/ or
   @message like /X-Amz-Function-Error/ or
   @message like /tatus: 4/ or
   @message like /tatus: 5/
| sort @timestamp desc

ラムダ関数の数のコールドスタート、平均init時間と最大init期間を数えてください


filter @type="REPORT"
| fields @memorySize / 1000000 as memorySize
| filter @message like /(?i)(Init Duration)/
| parse @message /^REPORT.*Init Duration: (?<initDuration>.*) ms.*/
| parse @log /^.*\/aws\/lambda\/(?<functionName>.*)/
| stats count() as coldStarts, avg(initDuration) as avgInitDuration, max(initDuration) as maxIntDuration by functionName, memorySize

コールドスタート率


filter @type = "REPORT"
| stats
  sum(strcontains(
    @message,
    "Init Duration"))
  / count(*)
  * 100
  as coldStartPercentage,
  avg(@duration)
  by bin(5m)
信用https://github.com/julianwood/serverless-cloudwatch-logs-insights-examples

表示平均期間、最大持続時間、最小期間、p 99パーセンタイル期間とリクエストカウント


filter @type = "REPORT"
| stats avg(@duration), max(@duration), min(@duration), pct(@duration, 99), count(@duration) by bin(5m)

情報ログを除外し、ラムダエラーのみを強調表示する


fields @timestamp, @message
| sort @timestamp desc
| filter @message not like 'EXTENSION'
| filter @message not like 'Lambda Insights'
| filter @message not like 'INFO'
| filter @message not like 'REPORT'
| filter @message not like 'END'
| filter @message not like 'START'
CloudWatchログ洞察クエリは無料ではありません.例えば、US - East - 1 AWSでは、クエリのためにスキャンされたデータのGBあたり0.005ドルを請求します.によるとAmazon CloudWatch FAQ 失敗したクエリに対して課金されず、手動でクエリを取り消す場合は、クエリをキャンセルした時点までスキャンされたログインログデータの量に対して課金されます.
もっと発見するhttps://aws.amazon.com/cloudwatch/pricing/

あなたのログの上に滞在します。⚡️



導入Cloudash , あなたのServerlessサービスのパフォーマンス、起動、エラーなどを監視するためのデスクトップアプリケーション.
先週、生産事件が起こりましたか.または20秒前?CloudDashを使用すると、フィルタを検索することができますし、簡単にServerlessログとメトリックを参照します.
いつでも好きなものを検索します.CloudDashは、これまで以上に速くあなたの問題の底に着くのを可能にしているビルトイン・フィルタリング機能で来ます.
始めるhere .