Tabling Tech Blog

Elastic APM 활용

thumbnail

Elastic APM 활용

Elastic APM 이란?

  • Elastic Stack 기반의 앱 성능 모니터링 시스템
  • 외부 HTTP 요청, DB Query, Cache 호출 등에 대한 상세한 성능 정보와 응답 속도를 실시간 모니터링
  • 처리되지 않은 오류나 예외를 자동으로 수집해 Stack trace 기반으로 그룹화하여 확인 가능

APM Agent의 분산 Tracing 처리

  • MSA 를 이루는 여러 Application 들의 전체 요청을 하나의 Trace로 성능을 분석 가능
  • HTTP header에 traceparant 를 포함하여 요청하여 동일한 Trace에 추가되도록 함

Elastic APM 적용

  • Express와 NestJs 기반의 서버를 생성하고 각각 gRPC 통신을 하며 MySQL DB를 사용
  • Custom Transaction을 사용하여 Trace에 추가하는 과정 설명
  • 서버 재실행 후 확인하여 point-server의 동작도 Trace에서 확인

활용 사례

  • 실제 테이블 링에서 운영 중인 서버를 APM 을 통해 모니터링 하고 성능 개선
  • Restful API로 HTTP 통신하므로 각 서버에 Agent를 실행하면 자동으로 추적
  • 처리량과 지연 시간 확인하여 성능 개선

마무리

  • Elastic Cloud 기초 워크샵 참석 경험을 통해 APM의 중요성을 깨달음
  • 성능 문제 추적 및 모니터링에 APM 활용 권장