CloudWatch Logs Insights Query for Lambda Cold Starts
This query groups results by both function name and time frame (hourly bins), allowing you to analyze cold starts across multiple Lambda functions (multiple log groups) in a single CloudWatch Logs Insights query.
filter @type = "REPORT" | stats count(@type) as countInvocations, count(@initDuration) as countColdStarts, (count(@initDuration)/count(@type))*100 as percentageColdStarts, avg(@initDuration) as avgColdStartDuration, max(@initDuration) as maxColdStartDuration, avg(@duration) as avgDuration, max(@duration) as maxDuration, min(@duration) as minDuration, avg(@maxMemoryUsed) as avgMemoryUsed, max(@memorySize) as memoryAllocated, (avg(@maxMemoryUsed)/max(@memorySize))*100 as percentageMemoryUsed by @entity.Attributes.Lambda.Function as functionName, bin(1h) as timeFrame