성능 테스트를 위한 elastic APM 적용 - (1/2)

안승섭·2023년 3월 5일
2

경험들

목록 보기
4/7

Elastic APM

지난 포스팅에서 성능 테스트를 위한 Jmeter를 사용해봤는데 생각보다 사용하는데 직관적이지 않은 것 같아 지금 다니는 회사에서 써보기는 한 Elastic APM을 한 번 적용해보려고 한다.

APM 개요

APM(Application Performance Management)은 애플리케이션 성능 모니터링 시스템이다. 수신 요청, 데이터베이스 쿼리, 캐시 호출, 외부 HTTP 요청 등에 대한 응답 시간에 대한 자세한 성능 정보를 수집하며 모니터링을 지원한다. 이를 통해 운영상에서 성능 문제를 쉽게 파악하고 해결할 수 있도록 도와준다.

구성

Elastic APM은 APM agent, APM integration, Elasticsearch 및 Kibana 의 네 가지로 이루어져있다. 이러한 네 가지 구성 요소가 함께 작동하는데 두 가지 방법이 있다.

첫번째로 분산된 서비스에서 APM agent들이 중앙에서 호스팅되는 APM integration으로 데이터를 보내는 방식이 있고

다른 방법으로는 분산된 서비스에서 APM agent와 APM integration이 중앙에 Elastic Agent로 보내는 방법이다.

두 방식의 차이가 뭔지 좀 찾아봤는데, Elastic Agent가 APM 데이터 뿐만 아니라 Filebeat, Metricbeat 등의 데이터를 수집해 통합관리하는 역할을 한다. 따라서 첫번째 방식은 분산된 서비스에서 APM 데이터만 보내거나 Elastic Agent까지 들어갈 볼륨이 안될 때 적합할 것 같고 다른 방식은 APM 데이터 뿐만 아니라 로그, 메트릭 등의 데이터도 전송해야할 때 나을 것 같다. 다만 Elsatic Agent는 7.14.0 버전부터 GA된다고 하니 상황에 맞게 사용하면 될 것 같다.

적용

생각보다 설명이 길어졌는데 아래 링크들을 참고해 설치를 진행했고
설치과정은 네 단계로 나눌 수 있다.
1. Docker 설치
2. Elasticsearch 및 kibana 설치 https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html
3. APM Integration 설치
https://www.elastic.co/kr/downloads/apm#ga-release
4. APM agent 설치

Docker 설치는 여기서 다룰 내용이 아닌 것 같아 생략하고 2번을 진행하던 도중

위와 같은 이슈가 발생했는데 컨테이너에 부여된 최대 가상 메모리 영역이 적다는 뜻이니

wsl -d docker-desktop
sysctl -w vm.max_map_count=262144

window 기준 요 두줄로 해결할 수 있다.

해결 후 docker-compose up -d 명령어로 컨테이너 생성을 한 후에

아래와 같이 키바나(localhost:5601)에 접속 후 Add your data -> APM을 선택하면 된다

아래 페이지에서 가이드 대로 이제 APM Server를 다운받아 계속 진행한다.

이렇게 순조롭게 진행되는줄 알았으나...

APM : 응 안될게.

참고
elastic -
https://www.elastic.co/guide/en/apm/guide/8.6/apm-components.html
https://elastic-korea.gitbook.io/elastic-reference-box/logging/undefined-2/elastic-agent-and-fleet
https://www.elastic.co/guide/en/fleet/current/beats-agent-comparison.html

profile
Just Do It!

0개의 댓글