APM은 애플리케이션의 성능을 측정하고 관리하기 위한 프로세스와 툴을 포함한다.
APM은 애플리케이션이 제대로 작동하는지, 성능 문제가 발생하는지, 그리고 이를 해결하기 위해 어떤 조치를 취해야 하는지를 파악하는데 도움을 준다.
APM에서는 CPU 사용량 및 메모리 요구 사항과 같은 CPU지표를 모니터링 할 수 있으며, 이를 통해 정상적으로 작동하는데 필요한 컴퓨팅 리소스를 확보할 수 있다.
그리고 사용자의 요청에 대한 응답 시간, 페이지 로딩 시간, 데이터베이스 쿼리 성능 등 다양한 성능 지표를 수집한다. 조회 시간 초과나 데이터베이스 조회 실패 등 동작 중 발생하는 오류를 기록하고 사전에 정의된 오류율이 초과된 경우 알림을 설정할 수 있다.
또한 애플리케이션에서 수행되는 트랜잭션을 추적해서 캡쳐되는 정보(함수 호출, 외부 호출, 데이터베이스 호출 등)를 이용해 트랜잭션 흐름과 성능을 분석할 수 있다.
이러한 기능들로 애플리케이션 전반의 어디서 문제가 발생하는 지 정확히 파악하는데 도움을 주고, 빠른 진단으로 가동 중단 시간을 최소화 할 수 있다. 또한, 필요한 리소스, 인프라 및 컴퓨팅 파워를 결정해 운영 비용을 최소화할 수 있다.
APM 툴에는 대표적으로 New Relic, Scouter, VisualVM 등이 있다.
추가로, CPU 메모리, 가비지 컬렉션 이런 기본적으로 제공되는 것뿐만 아니라 비즈니스적인 지표들을 라이브러리화해서 마치 로그 찍듯이 프로메테우스와 같은 APM에다가 데이터베이스를 보내주고, 추후 대시보드를 만들어 그래프로 보는 방법도 있다.
예를 들어 전체 주문량이 얼마나 늘어났고, 지난 한 달간 얼마나 주문이 됐고, 취소된 주문량은 얼마인지 실시간으로 대시보드화해서 확인이 가능하다.
기술적인 매트릭스도 중요하지만, 이러한 비즈니스적인 매트릭스도 어떻게 수집하고 관리하는지도 굉장히 중요하다. 이때 주의할 점은 많은 매트릭스를 만들어 보내면 그 데이터가 너무 많이 쌓이게 돼서 비용도 많이 들 수 있다는 점이다.
각각의 APM 툴마다 특징이 있기 때문에 어떤 특징을 가지고 있는지, 어떤 회사에서는 어떤 툴을 사용하는지, 어떤 방식으로 사용하는지 등 확인해보면 좋다.