Azure Spring Apps의 메트릭

참고 항목

기본, 표준엔터프라이즈 계획은 2025년 3월 중순부터 사용되지 않으며 3년의 은퇴 기간이 있습니다. Azure Container Apps로 전환하는 것이 좋습니다. 자세한 내용은 Azure Spring Apps 사용 중지 공지 사항을 참조하세요.

표준 소비 및 전용 계획은 2024년 9월 30일부터 사용되지 않으며 6개월 후에 완전히 종료됩니다. Azure Container Apps로 전환하는 것이 좋습니다. 자세한 내용은 Azure Spring Apps 표준 사용량 및 전용 계획을 Azure Container Apps로 마이그레이션을 참조 하세요.

이 문서의 적용 대상: ✔️ 기본/표준 ✔️ 엔터프라이즈

Azure 메트릭 탐색기는 Microsoft Azure Portal의 구성 요소이며 차트를 그리고, 추세의 상관 관계를 시각적으로 지정하고, 메트릭에서 급증 및 하락을 조사할 수 있습니다. 메트릭 탐색기를 사용하여 리소스의 상태 및 사용률을 조사합니다.

Azure Spring Apps 인스턴스에서는 다음 페이지에서 메트릭을 볼 수 있습니다.

  • 빠른 상태 차트를 보여주는 애플리케이션 개요 페이지입니다. 이 페이지를 보려면 탐색 창에서 을 선택한 다음, 앱을 선택합니다.

  • Azure Spring Apps 인스턴스의 모든 앱에서 사용할 수 있는 일반적인 메트릭을 보여주는 공통 메트릭 페이지입니다. 엔터프라이즈 계획의 경우 Tanzu Spring Cloud Gateway에 대한 일반적인 메트릭도 표시합니다. 이 페이지를 보려면 탐색 창에서 메트릭을 선택합니다. 공통 메트릭 페이지에서 사용자 고유의 차트를 빌드하고 대시보드에 고정할 수 있습니다.

탐색 창에 앱 및 메트릭이 강조 표시된 Azure Spring Apps 개요 페이지를 보여 주는 Azure Portal의 스크린샷

애플리케이션 개요 페이지

탐색 창에서 을 선택한 다음, 목록에서 앱을 선택합니다. 앱 개요 페이지에는 애플리케이션의 빠른 상태 검사 수행할 수 있는 메트릭 차트가 표시됩니다.

기간 선택기가 강조 표시된 애플리케이션의 개요 페이지를 보여 주는 Azure Portal의 스크린샷

Azure Spring Apps는 1분마다 업데이트되는 메트릭을 사용하여 다음과 같은 5가지 차트를 제공합니다.

  • HTTP 서버 오류: 앱에 대한 HTTP 요청의 오류 수
  • 데이터 입력: 앱에서 받은 바이트
  • 데이터 출력: 앱에서 보낸 바이트 수
  • 요청: 앱에서 받은 요청
  • 평균 응답 시간: 앱의 평균 응답 시간

차트의 경우 1시간에서 7일 사이의 시간 범위를 선택할 수 있습니다.

공통 메트릭 페이지

탐색 창에서 메트릭을 선택하여 일반적인 메트릭에 액세스합니다. 메트릭 드롭다운에서 사용할 메트릭을 선택합니다.

메트릭 드롭다운 메뉴가 열려 있는 Azure Spring Apps 메트릭 페이지를 보여 주는 Azure Portal의 스크린샷

메트릭 세부 정보는 사용자 메트릭 옵션 섹션을 참조하세요.

다음으로, 각 메트릭에 대한 집계 유형을 선택합니다.

집계 드롭다운 메뉴가 열려 있는 Azure Spring Apps 메트릭 페이지를 보여 주는 Azure Portal의 스크린샷

집계 유형은 시간별로 차트에서 메트릭 점수를 집계하는 방법을 나타냅니다. 1분마다 하나의 원시 메트릭 지점이 있으며 1분 내에 사전 집계 형식은 메트릭 형식에 의해 미리 정의됩니다.

  • 합계: 모든 메트릭을 대상 출력으로 더합니다.
  • 평균: 기간의 평균 값을 대상 출력으로 사용합니다.
  • 최대/최소: 기간의 최댓값/최솟값을 대상 출력으로 사용합니다.

시간 범위는 지난 30분에서 지난 30일 또는 사용자 지정 시간 범위로 조정할 수도 있습니다.

차트 시간 범위 옵션이 강조 표시된 Azure Spring Apps 메트릭 페이지를 보여 주는 Azure Portal의 스크린샷

기본 보기에는 모든 Azure Spring Apps 서비스의 애플리케이션 메트릭이 포함됩니다. 한 애플리케이션 또는 인스턴스의 메트릭을 필터링하여 표시할 수 있습니다. 필터 추가를 선택하고 속성을 으로 설정한 다음, 텍스트 상자에서 모니터링하려는 대상 애플리케이션을 선택합니다.

두 가지 종류의 필터(속성)를 사용할 수 있습니다.

  • 앱: 앱 이름으로 필터링
  • 인스턴스: 앱 인스턴스로 필터링
  • 배포: 배포 이름으로 필터링

차트가 선택되고 필터 컨트롤 추가가 강조 표시된 Azure Spring Apps 메트릭 페이지를 보여 주는 Azure Portal의 스크린샷

분할 적용 옵션을 사용하여 한 앱에 대해 여러 줄을 그릴 수도 있습니다.

차트가 선택되고 분할 적용 옵션이 강조 표시된 Azure Spring Apps 메트릭 페이지를 보여 주는 Azure Portal의 스크린샷 :

메트릭 페이지에서 사용자 고유의 차트를 빌드하고 대시보드에 고정할 수 있습니다. 먼저 차트 이름을 지정합니다. 다음으로, 오른쪽 위 모서리에서 대시보드에 고정을 선택합니다. 이제 포털 대시보드에서 애플리케이션을 확인할 수 있습니다.

사용자 메트릭 옵션

참고 항목

Spring Boot 애플리케이션의 경우 Spring Boot Actuator의 메트릭을 보려면 spring-boot-starter-actuator 종속성을 추가합니다. 자세한 내용은 Spring Boot Actuator를 사용하여 앱 관리 및 모니터링actuator 종속성 추가 섹션을 참조하세요.

다음 표에서는 사용 가능한 메트릭 및 세부 정보를 보여 줍니다.

오류

이름 Spring Boot Actuator 메트릭 이름 단위 설명
tomcat.global.error tomcat.global.error 개수 처리된 요청에서 발생한 오류 수입니다.

성능

이름 Spring Boot Actuator 메트릭 이름 단위 설명
system.cpu.usage system.cpu.usage 퍼센트 전체 시스템에 대한 최근 CPU 사용량(사용되지 않으며 사용하지 않는 것이 좋습니다.) 이 값은 [0.0,1.0] 간격의 double입니다. 0.0 값은 최근 관찰된 기간 동안 모든 CPU가 유휴 상태였음을 의미하고, 1.0 값은 최근 관찰된 기간 동안 모든 CPU가 100% 실행 중이었음을 의미합니다.
process.cpu.usage 앱 CPU 사용 백분율 퍼센트 Java Virtual Machine 프로세스에 대한 최근 CPU 사용량(사용되지 않으며 사용하지 않는 것이 좋습니다.) 이 값은 [0.0,1.0] 간격의 double입니다. 0.0 값은 최근 관찰된 기간 동안 JVM 프로세스의 스레드를 실행하는 CPU가 없었음을 의미하고, 1.0 값은 최근 관찰된 기간 동안 모든 CPU가 JVM의 스레드를 100% 실행 중이었음을 의미합니다. JVM의 스레드는 애플리케이션 스레드와 JVM 내부 스레드를 포함합니다.
앱 CPU 사용량 퍼센트 이 앱에 할당된 CPU 대비 JVM 프로세스의 최근 CPU 사용량입니다. 이 값은 [0.0,1.0] 간격의 double입니다. 0.0 값은 최근 관찰된 기간 동안 JVM 프로세스의 스레드를 실행하는 CPU가 없었음을 의미하고, 1.0 값은 최근 관찰된 기간 동안 모든 CPU가 JVM의 스레드를 100% 실행 중이었음을 의미합니다. JVM의 스레드는 애플리케이션 스레드와 JVM 내부 스레드를 포함합니다.
앱 CPU 사용량(사용되지 않음) 퍼센트 사용되지 않는 앱 CPU 사용량 메트릭입니다. 새로운 앱 CPU 사용량 메트릭을 대신 사용합니다.
앱 메모리 사용량 퍼센트 이 앱에 할당된 메모리 대비 JVM 프로세스의 최근 메모리 사용량입니다. 이 값은 [0.0,1.0] 간격의 double입니다. 0.0 값은 최근 관찰된 기간 동안 JVM 프로세스의 스레드에서 할당된 메모리가 없었음을 의미하고, 1.0 값은 최근 관찰된 기간 동안 모든 메모리가 JVM의 스레드에서 100% 할당되었음을 의미합니다. JVM의 스레드는 애플리케이션 스레드와 JVM 내부 스레드를 포함합니다.
jvm.memory.committed jvm.memory.committed 바이트 JVM에서 사용할 수 있도록 보장되는 메모리의 양을 나타냅니다. JVM은 시스템에 메모리를 릴리스할 수 있으며, 전용 메모리는 init보다 낮을 수 있습니다. 전용 메모리는 항상 사용되는 수치보다 크거나 같습니다.
jvm.memory.used jvm.memory.used 바이트 현재 사용중인 메모리의 양(바이트)을 나타냅니다.
jvm.memory.max jvm.memory.max 바이트 메모리 관리에 사용할 수 있는 최대 메모리 양을 나타냅니다. 최대 값이 정의된 경우 사용되는 메모리와 커밋된 메모리의 양은 항상 최대 메모리보다 작거나 같습니다. 사용된 메모리가 최대 메모리보다 작거나 같은 경우에도 사용된 메모리가 커밋된 메모리보다 크도록 사용된 메모리를 늘리려고 하면 메모리 할당이 실패할 수 있습니다(예: 시스템의 버추얼 메모리가 낮은 경우).
jvm.gc.max.data.size jvm.gc.max.data.size 바이트 Java 가상 머신이 시작된 이후의 이전 세대 메모리 풀의 최대 메모리 사용량입니다.
jvm.gc.live.data.size jvm.gc.live.data.size 바이트 전체 GC(가비지 수집) 후의 이전 세대 메모리 풀 크기입니다.
jvm.gc.memory.promoted jvm.gc.memory.promoted 바이트 GC 전에서 GC 이후에 이전 세대 메모리 풀의 크기가 증가한 수입니다.
jvm.gc.memory.allocated jvm.gc.memory.allocated 바이트 한 GC 이후부터 그 다음 GC 전까지 젊은 생성메모리 풀 크기가 커진 만큼 증가한 수입니다.
jvm.gc.pause.total.count jvm.gc.pause(총 개수) Count 젊은 GC와 이전 GC를 포함하여 이 JMV가 시작된 이후의 총 GC 수입니다.
jvm.gc.pause.total.time jvm.gc.pause(총 시간) 밀리초 젊은 GC와 이전 GC를 포함하여 이 JMV가 시작된 이후 사용된 총 GC 시간입니다.

성능(.NET)

이름 Spring Boot Actuator 메트릭 이름 단위 설명
CPU 사용량 cpu-usage 퍼센트 모든 시스템 CPU 리소스를 기준으로 한 프로세스의 CPU 사용량 백분율입니다[0-100].
작업 집합 working-set 메가바이트 프로세스에서 사용한 작업 세트의 양입니다.
GC heap size gc-heap-size 메가바이트 가비지 수집기에서 보고된 총 힙 크기입니다.
Gen 0 GC count gen-0-gc-count Count 초당 0세대 가비지 수집 수입니다.
Gen 1 GC count gen-1-gc-count Count 초당 1세대 가비지 수집 수입니다.
Gen 2 GC count gen-2-gc-count Count 초당 2세대 가비지 수집 수입니다.
Time in GC timein-gc 퍼센트 마지막 가비지 수집 이후의 가비지 수집 시간 백분율입니다.
Gen 0 heap size gen-0-size 바이트 0세대 힙 크기입니다.
Gen 1 heap size gen-1-size 바이트 1세대 힙 크기입니다.
Gen 2 heap size gen-2-size 바이트 2세대 힙 크기입니다.
LOH 힙 크기 loh-size 바이트 LOB 힙 크기입니다.
할당률 alloc-rate 바이트 초당 할당된 바이트 수입니다.
Assembly count assembly-count Count 로드된 어셈블리 수입니다.
Exception count exception-count Count 초당 예외 수입니다.
Thread pool thread count threadpool-thread-count Count 스레드 풀 스레드의 최대 개수입니다.
Monitor lock contention count monitor-lock-contention-count Count 모니터의 잠금을 시도할 때 초당 경합이 발생한 횟수입니다.
Thread pool queue length threadpool-queue-length Count 스레드 풀 작업 항목 큐 길이입니다.
Thread pool completed items count threadpool-completed-items-count Count 스레드 풀 완료된 작업 항목 개수입니다.
Active timers count active-timer-count Count 현재 활성 상태인 타이머의 수입니다. 활성 타이머는 미래의 특정 시점에 작동하도록 등록된 타이머로 아직 취소되지 않았습니다.

자세한 내용은 성능 카운터 조사(dotnet-counters)를 참조하세요.

요청

이름 Spring Boot Actuator 메트릭 이름 단위 설명
tomcat.global.sent tomcat.global.sent 바이트 Tomcat 웹 서버에서 보낸 데이터의 양입니다.
tomcat.global.received tomcat.global.received 바이트 Tomcat 웹 서버에서 받은 데이터의 양입니다.
tomcat.global.request.total.count tomcat.global.request(총 개수) Count Tomcat 웹 서버 처리된 요청의 총 개수입니다.
tomcat.global.request.max tomcat.global.request.max 밀리초 Tomcat 웹 서버가 요청을 처리하는 최대 시간입니다.

요청(.NET)

이름 Spring Boot Actuator 메트릭 이름 단위 설명
초당 요청 requests-per-second Count 요청 속도.
총 요청 total-requests Count 총 요청 수입니다.
Current requests current-requests Count 현재 요청 수입니다.
실패한 요청 failed-requests Count 실패한 요청 수

자세한 내용은 성능 카운터 조사(dotnet-counters)를 참조하세요.

세션

이름 Spring Boot Actuator 메트릭 이름 단위 설명
tomcat.sessions.active.max tomcat.sessions.active.max 개수 동시에 활성화된 최대 세션 수입니다.
tomcat.sessions.alive.max tomcat.sessions.alive.max 밀리초 만료된 세션이 활성 상태였던 가장 긴 시간(초)입니다.
tomcat.sessions.created tomcat.sessions.created Count 생성된 세션 수입니다.
tomcat.sessions.expired tomcat.sessions.expired Count 만료된 세션 수입니다.
tomcat.sessions.rejected tomcat.sessions.rejected Count 최대 활성 세션 수에 도달하여 만들지 않은 세션 수입니다.
tomcat.sessions.active.current tomcat.sessions.active.current Count Tomcat 세션 활성 수입니다.

수신

표시 이름 Azure 메트릭 이름 단위 설명
받은 바이트 수 IngressBytesReceived 바이트 클라이언트의 Azure Spring Apps에서 받은 바이트 수입니다.
Bytes Sent IngressBytesSent 바이트 Azure Spring Apps에서 클라이언트로 보낸 바이트 수입니다.
요청 IngressRequests Count 클라이언트의 Azure Spring Apps에 의한 요청 수입니다.
실패한 요청 IngressFailedRequests Count 클라이언트의 Azure Spring Apps에서 실패한 요청 수입니다.
응답 상태 IngressResponseStatus Count Azure Spring Apps에서 반환한 HTTP 응답 상태 2xx, 3xx, 4xx 및 5xx 범주로 응답을 표시하도록 응답 상태 코드 분산을 더욱 세분화할 수 있습니다.
응답 시간 IngressResponseTime Azure Spring Apps에 의한 Http 응답 시간 반환입니다.
입력 처리량(바이트/초) IngressBytesReceivedRate BytesPerSecond 클라이언트의 Azure Spring Apps에서 받은 초당 바이트 수입니다.
출력 처리량(바이트/초) IngressBytesSentRate BytesPerSecond Azure Spring Apps에서 클라이언트로 보낸 초당 바이트 수입니다.

게이트웨이

다음 표는 Enterprise 계획의 Tanzu Spring Cloud Gateway에만 적용됩니다.

표시 이름 Azure 메트릭 이름 단위 설명
jvm.gc.live.data.size GatewayJvmGcLiveDataSizeBytes 바이트 전체 GC 후의 이전 세대 메모리 풀 크기입니다.
jvm.gc.max.data.size GatewayJvmGcMaxDataSizeBytes 바이트 이전 세대 메모리 풀의 최대 크기입니다.
jvm.gc.memory.promoted GatewayJvmGcMemoryPromotedBytesTotal 바이트 GC 전에서 GC 이후에 이전 세대 메모리 풀의 크기가 증가한 수입니다.
jvm.gc.pause.max.time GatewayJvmGcPauseSecondsMax GC 일시 중지 최대 시간입니다.
jvm.gc.pause.total.count GatewayJvmGcPauseSecondsCount Count GC 일시 중지 횟수입니다.
jvm.gc.pause.total.time GatewayJvmGcPauseSecondsSum GC 일시 중지 총 시간입니다.
jvm.memory.committed GatewayJvmMemoryCommittedBytes 바이트 JVM에 할당된 메모리(바이트)입니다.
jvm.memory.used GatewayJvmMemoryUsedBytes 바이트 사용된 메모리(바이트)입니다.
최대 요청 시간 GatewayHttpServerRequestsMilliSecondsMax 밀리초 요청하는 최대 시간입니다.
process.cpu.usage GatewayProcessCpuUsage 퍼센트 JVM 프로세스의 최근 CPU 사용량입니다.
요청 수 GatewayHttpServerRequestsSecondsCount Count 요청 수입니다.
system.cpu.usage GatewaySystemCpuUsage 퍼센트 전체 시스템의 최근 CPU 사용량입니다.
제한된 요청 수 GatewayRatelimitThrottledCount Count 제한된 요청의 수입니다.

다음 단계