이용 사례 결정하기
이용 사례 결정하기 (Determine your use case)
조사를 시작할 때 이미 무엇이 문제인지 알고 있을 수도 있고, 해결할 수 있도록 리소스 핫스팟을 식별하고 싶을 수도 있어요. 이에 따라 두 가지 서로 다른 시작점이 생겨요. 여러분의 이용 사례(use case)가 무엇이 가장 중요한지 결정짓죠.
출처: 문서
본문
예를 들어 이용 사례 1에서 서비스가 오작동한다면, CPU와 메모리 프로파일을 나란히 볼 수 있도록 프로파일 유형을 확인하고 싶을 거예요. 어느 이용 사례든 첫 단계는 프로파일이나 단일 서비스를 검토해 관심 영역을 식별하는 거예요.
서로 다른 프로파일 유형을 선택하면 메모리 할당, CPU 프로세스, 할당 크기, 블록, 락 경합에 집중할 수 있어요. 사용 가능한 프로파일 유형은 앱을 어떻게 계측(instrument)해서 프로파일링 데이터를 생성했는지에 따라 달라져요.
문제가 있는 프로세스나 서비스를 식별한 뒤에는 라벨과 플레임 그래프를 사용해 더 낮은 수준으로 필터링하고 탐색할 수 있어요. Flame graph AI 인터프리터나 GitHub 통합 같은 기능으로 Profiles Drilldown은 근본 원인을 찾고 해결 방법을 제시하는 데 도움을 줘요.
이용 사례 1: 문제 조사 (Investigate an issue)
성능 문제가 있는 특정 서비스나 영역을 알고 있을 때 프로파일링 데이터가 이상적이에요. CPU 스파이크 알림이 프로파일로 이끌었을 수도 있고, 특정 서비스의 OOM 문제가 로그에 보여 디버깅이 필요할 수도 있죠. Grafana Profiles Drilldown으로 이런 시나리오에서 서비스로 빠르게 드릴다운해 성능 문제를 식별할 수 있어요.
예: 문제 서비스는 알지만 원인은 모를 때
영향을 받는 서비스를 안다면 그 서비스를 먼저 보고 해당 서비스의 프로파일을 검토하는 것으로 조사가 시작돼요. 예를 들어 checkoutservice에 문제가 있다고 파악했다면, Search services로 checkoutservice를 찾아 Profile types 뷰로 해당 서비스의 모든 프로파일을 살펴볼 수 있어요. 또는 Profile types 뷰를 선택하고 Service 드롭다운에서 checkoutservice를 고르면 돼요.
예: 문제가 있음을 알고 조사가 필요할 때
문제가 있다는 것만 알고 조사해야 한다면 All services 뷰로 시작해요. Profile type 선택기를 사용해 서비스들의 CPU 프로세스, 메모리 할당, 블록, 락, 예외 등 사용 가능한 프로파일 유형을 확인할 수 있어요. 스파이크가 있는 프로파일을 찾은 뒤에는 Profile types 뷰를 선택해 그 서비스의 모든 프로파일 유형을 확인하거나, Labels를 선택해 그 서비스의 라벨(hostname, span_name 등)을 볼 수 있어요.
이용 사례 2: 성능 및 리소스 병목 연구 (Research performance and resource bottlenecks)
능동적 분석(proactive analysis)을 할 때 여러 차원에 걸쳐 성능 문제를 밝혀내요. 비용 절감 작업이거나, 장애가 아닌 상황에서 지연 시간이나 메모리 사용량 개선을 시도하는 것일 수 있어요. 이 작업은 여러 서비스에 걸쳐 있거나, 단일 서비스 내에서 프로파일 유형·라벨 또는 둘의 조합에 걸쳐 진행될 수 있어요.
다음 단계: 문제를 조사하고 식별하세요.