ECS Fargete 서비스를 운영 시 CloudWatch Logs Insights 서비스를 자주 사용하였습니다.

Fargate 작업단위에 설정한 로그 그룹 별로 로그 조회 가능하며, | (파이프 문자)  명령을   이상 포함할  있습니다.

 

1. fields

선택한 필드 항목 기준으로 결과 값 검색 가능하며 자주 사용하는 항목을 나열하였습니다.

  • @timestamp - 로그 발생 시점의 시간
  • level - 로깅 레벨 (ERROR, WARN, INFO, DEBUG)
  • @message - 로그 이벤트의 본문메시지
  • @logStream - 수행중인 ECS 서비스 Task
  • @log - 로그 이벤트가 속한 ECS 작업단위
fields @timestamp, level, @message, @logStream, @log

 

 

2. filter 

Boolean 연산자, 비교 연산자 및 정규 표현식에서 구축된 하나 이상의 조건 사용 가능합니다.

아래는 어플리케이션 오류 레벨 기준으로 필터를 적용한 쿼리 예시입니다.

저는 traceId 기준으로 로그 추적을 하는 편입니다.

fields @timestamp, level, @message, @logStream, @log
| filter level == "ERROR" or level == "WARN"
# | filter traceId like "953eeb8767e726db"

 

특이한 점으로는 like 명령어에서 와일드카드(%) 가 자동 적용됩니다.

fields @timestamp, level, @message, @logStream, @log
| filter @message like "warning"
#| filter @message like "%warning%"

 

 

3. sort

쿼리 결과에 대해 오름차순 또는 내림차순으로 정렬할 수 있습니다.

fields @timestamp, level, @message, @logStream, @log
| filter level == "ERROR" or level == "WARN"
| sort @timestamp desc

 

 

4. limit

쿼리가 반환하는 로그 이벤트 수 제한합니다.

fields @timestamp, level, @message, @logStream, @log
| filter level == "ERROR" or level == "WARN"
| limit 100
| sort @timestamp desc

 

 

5. 주석

주석은 아래와 같이 Query Template 작성하고 서비스에 저장해서 사용할 때 사용합니다.

미리 AWS Save querys 에 저장하고 사용하면 편합니다

fields @timestamp, level, logger_name, message, @message, @logStream, @log
| sort @timestamp desc
# | filter @message like "exception"
# | filter traceId like "953eeb1233e726db"
| filter level == "ERROR" or level == "WARN"
| limit 100

 

읽어주셔서 감사합니다.

 

 

레퍼런스
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기