서버리스 애플리케이션을 위한 10가지 CloudWatch Logs Insights 예시
CloudWatch Logs Insights syntax은 배우기 어려울 수 있으므로 이 게시물에는 서버리스 엔지니어로서 일상 업무에서 유용한 서버리스 애플리케이션에 대한 10가지 CloudWatch Logs Insights 예제가 포함되어 있습니다.
지정된 요청 ID 또는 X-Ray 트레이스 ID에 대한 모든 로그 찾기
fields @timestamp, @message
| filter @message like /REQUEST_ID_GOES_HERE/
참고:
/REQUEST_ID_GOES_HERE/
는 검색하려는 실제 요청 ID/xRayTraceId
의 자리 표시자입니다. /something/
는 정규식입니다.최근 오류 50개 찾기
fields Timestamp, LogLevel, Message
| filter LogLevel == "ERR"
| sort @timestamp desc
| limit 50
가장 비용이 많이 드는 Lambda 함수 호출 찾기
filter @type = "REPORT"
| fields @requestId, @billedDuration
| sort by @billedDuration desc
Lambda 함수에 대한 5분 간격의 지연 시간 통계 보기
filter @type = "REPORT"
| stats avg(@duration), max(@duration), min(@duration) by bin(5m)
Lambda 함수에 대해 초과 프로비저닝된 메모리 양 결정
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 Gateway 실행 로그에서 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
Lambda 함수의 콜드 스타트 수, 평균 초기화 시간 및 최대 초기화 기간을 계산합니다.
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
시간 경과에 따른 Lambda 콜드 스타트 비율
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
평균 기간, 최대 기간, 최소 기간, P99 백분위수 기간 및 요청 수 표시
filter @type = "REPORT"
| stats avg(@duration), max(@duration), min(@duration), pct(@duration, 99), count(@duration) by bin(5m)
정보 로그를 제외하여 Lambda 오류만 강조 표시
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 Logs Insights 쿼리는 무료가 아닙니다(프리 티어가 있긴 하지만). 예를 들어 us-east-1에서 AWS는 쿼리에 대해 스캔한 데이터 GB당 0.005 USD를 청구합니다. Amazon CloudWatch FAQ에 따르면 실패한 쿼리에 대해 요금이 부과되지 않으며 쿼리를 수동으로 취소하는 경우 쿼리를 취소한 시점까지 스캔된 수집된 로그 데이터의 양에 대해 요금이 부과됩니다.
자세한 내용은 https://aws.amazon.com/cloudwatch/pricing/에서 확인하십시오.
로그를 파악하십시오. ⚡️
서버리스 서비스 성능, 호출, 오류 등을 모니터링하기 위한 데스크탑 앱인 Cloudash을 소개합니다.
지난 주에 생산 사건이 발생했습니까? 아니면 20초 전? Cloudash를 사용하면 서버리스 로그 및 메트릭을 쉽게 검색, 필터링 및 탐색할 수 있습니다.
원할 때마다 원하는 것을 검색하십시오. Cloudash에는 필터링 기능이 내장되어 있어 그 어느 때보다 빠르게 문제를 해결할 수 있습니다.
시작하기here .
Reference
이 문제에 관하여(서버리스 애플리케이션을 위한 10가지 CloudWatch Logs Insights 예시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/aws-heroes/10-cloudwatch-logs-insights-examples-for-serverless-applications-4293텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)