본문으로 건너뛰기

배치 프로그램 모니터링

배치 애플리케이션에 와탭 에이전트를 적용하기 위한 설치 및 설정 절차를 안내합니다.

Batch Application

배치 모니터링 구성

배치 애플리케이션은 WAS와 달리 실행과 중단을 반복합니다. 따라서 배치 모니터링은 다음 두 개의 프로세스로 나뉩니다.

프로세스역할실행 단위
배치 호스트(Batch Host)배치 에이전트에서 받은 데이터를 수집 서버로 전송호스트당 1개
배치 에이전트(Batch Agent)배치 잡의 데이터를 수집해 배치 호스트로 전송배치 잡당 1개

두 프로세스는 UDP로 통신합니다. 이 구조 덕분에 여러 배치 잡을 병렬로 실행할 수 있습니다. 배치 호스트와 배치 에이전트는 배치 잡을 실행하는 서버에 함께 설치하세요.

통신 요건

경로프로토콜/포트
배치 호스트 → 수집 서버TCP 6600(아웃바운드)
배치 에이전트 → 배치 호스트UDP 6611

Batch Job UDP

배치 프로그램 모니터링은 Java 모니터링의 부가 기능이지만 Java 모니터링 에이전트와 별개로 동작하는 독립된 시스템입니다. Java 에이전트의 설정 옵션은 배치 모니터링에 적용되지 않습니다. 이 문서에 기재한 옵션만 사용하세요. Java 에이전트에서 profile_ 접두어를 쓰는 옵션은 배치 프로그램에서 trace_ 접두어를 씁니다.

에이전트 다운로드

다음 명령어를 실행해 배치 애플리케이션 모니터링용 에이전트를 내려받으세요.

wget https://api.whatap.io/agent/whatap.agent.batch.tar.gz
tar xzf whatap.agent.batch.tar.gz

압축을 해제하면 다음과 같이 구성됩니다.

{BATCH_HOME}/
├── whatap.agent.batch.host-X.Y.Z.jar 배치 호스트
├── whatap.agent-X.Y.Z.jar Java 에이전트
├── whatap.conf 배치 호스트 설정 파일
└── agent/
├── whatap.agent.batch-X.Y.Z.jar 배치 에이전트
└── whatap.conf 배치 에이전트 설정 파일

whatap.conf 파일이 없다면 새로 만든 다음, 설정 > 에이전트 설치 메뉴에서 확인할 수 있는 licensewhatap.server.host 항목을 추가하세요.

설정 파일의 위치

주의

도입할 때 가장 많이 실패하는 부분입니다. 반드시 확인하세요.

와탭은 설정 파일과 로그의 위치를 whatap.home 기준으로 결정합니다. whatap.home이 결정되는 방식은 기동 방법에 따라 다릅니다. 설정 파일을 찾지 못하면 기동할 때 배너에 PCODE(0)이 표시되고 데이터를 수집하지 않습니다.

whatap.home 결정 방식

우선순위는 다음과 같습니다.

  1. -Dwhatap.home을 지정하면 항상 그 값이 우선합니다.
  2. 지정하지 않으면 -javaagent로 기동한 프로세스(배치 에이전트)는 에이전트 jar이 있는 디렉터리를 whatap.home으로 씁니다.
  3. -cp로 메인 클래스를 지정해 기동한 프로세스(배치 호스트)는 위 자동 설정이 적용되지 않으므로, 기동 시점의 작업 디렉터리가 whatap.home이 됩니다.
프로세스기동 방법whatap.home읽어들이는 설정 파일
배치 호스트-cp + 메인 클래스작업 디렉터리작업 디렉터리의 whatap.conf
배치 에이전트-javaagent에이전트 jar이 있는 디렉터리jar과 같은 디렉터리의 whatap.conf
주의

배치 호스트는 반드시 설치 디렉터리로 이동한 다음 기동하세요. 작업 스케줄러나 잡 관리 제품에서 기동하면 작업 디렉터리가 예상과 다를 수 있습니다. 기동 스크립트 안에서 작업 디렉터리를 명시적으로 이동하세요.

배치 호스트 설정

licensewhatap.server.host 옵션값은 프로젝트의 설정 > 에이전트 설치 메뉴에서 확인할 수 있습니다.

{BATCH_HOME}/whatap.conf
license=
whatap.server.host=
whatap.server.port=6600
OptionDefaultDescription
license-프로젝트 액세스 키
whatap.server.host-수집 서버 주소. 이중화한 경우 슬래시(/)로 구분. 예) 10.0.0.1/10.0.0.2
whatap.server.port6600수집 서버 포트

위 세 항목만으로 동작합니다. 이후 설명하는 옵션은 필요할 때만 추가하세요.

UDP 수신 설정

배치 호스트가 배치 에이전트로부터 데이터를 받을 주소와 포트입니다.

{BATCH_HOME}/whatap.conf
net_udp_listen_ip=0.0.0.0
net_udp_listen_port=6611
OptionDefaultDescription
net_udp_listen_port6611UDP 데이터를 받을 포트. 기본 포트를 다른 용도로 쓰는 경우 변경
net_udp_listen_ip0.0.0.0UDP 데이터를 받기 위해 바인딩할 IP 주소. 변경 가능하나 기본값 권장
주의

UDP 포트를 변경하면 배치 호스트와 배치 잡 양쪽을 모두 변경해야 합니다.

변경 대상설정 파일옵션
수신 측(배치 호스트){BATCH_HOME}/whatap.confnet_udp_listen_port
송신 측(배치 잡)배치 잡의 whatap.confnet_udp_port

한쪽만 변경하면 오류 없이 트랜잭션 데이터를 잃습니다. 배치 잡은 기존 포트로 계속 보내고 배치 호스트는 변경한 포트에서만 기다리기 때문입니다. 변경한 다음에는 배치 호스트와 배치 잡을 모두 다시 기동하세요.

트레이스 스텝 수집 설정

개별 트랜잭션 트레이스는 스텝을 무한정 수집할 수 없습니다. 트랜잭션별로 길이가 제한된 버퍼에 트레이스 스텝을 저장하며, 기본 설정에서는 한 배치 잡당 1,000개까지 수집합니다.

{BATCH_HOME}/whatap.conf
split_trace_enabled=false
OptionDefaultDescription
split_trace_enabledfalse트레이스를 분할해 전송
주의

상한을 초과한 스텝은 트레이스에 별도 표시 없이 누락됩니다. 트레이스 분석 화면의 스텝 번호가 1,000 부근에서 끊겨 있으면 이 경우입니다.

스텝 수가 많은 배치 잡의 전체 처리 내역이 필요하면 기술지원팀으로 문의하세요.

프로파일링 종료 대기 시간

배치 호스트는 실행 중인 잡을 주기적으로 점검해, 일정 시간 동안 스텝이 도착하지 않은 잡의 프로파일링을 강제로 종료합니다.

{BATCH_HOME}/whatap.conf
profile_expired_time=30000
OptionDefaultDescription
profile_expired_time30000마지막 스텝을 받은 시점부터 이 시간(밀리초)이 지나면 프로파일링 강제 종료

배치 잡이 비정상 종료됐을 때 트랜잭션이 실행 중인 상태로 남지 않도록 자동 정리하는 기능입니다. 강제 종료한 트랜잭션에는 lost-profile 스텝을 기록합니다.

외부 시스템 응답 대기처럼 계측 대상 처리가 발생하지 않는 구간이 이 시간을 넘으면, 잡이 정상 실행 중이어도 강제 종료합니다. 이런 구간이 있는 배치 잡은 실제 무입력 구간보다 여유 있는 값으로 설정하세요.

배치 에이전트 설정

{BATCH_HOME}/agent/whatap.conf
net_udp_ip=127.0.0.1
net_udp_port=6611

job_name=sample-batch-job
time_limit=300000

trace_httpc_limit=1000000
trace_sql_limit=1000000

active_stack_enabled=true
active_stack_start_wait_time=1000
active_stack_time1=5000
active_stack_time2=10000
OptionDefaultDescription
net_udp_ip127.0.0.1데이터를 보낼 배치 호스트의 IP 주소. 같은 서버에서 실행하면 변경 불필요
net_udp_port6611데이터를 보낼 배치 호스트의 UDP 포트. 배치 호스트의 net_udp_listen_port와 같은 값
job_name-배치 잡을 식별하는 이름. 트랜잭션 이름으로 표시. 잡마다 고유한 값 설정
time_limit300000지연 경고를 표시하는 임계치(밀리초). 잡을 중단시키는 값 아님
trace_httpc_limit1000000배치 잡 1건에서 수집할 HTTP 호출 최대 건수
trace_sql_limit1000000배치 잡 1건에서 수집할 SQL 최대 건수
active_stack_enabledtrue액티브 스택 수집 여부
active_stack_start_wait_time1000배치 잡 시작 후 첫 액티브 스택을 수집하기까지 대기 시간(밀리초)
active_stack_time15000최초 5회까지의 액티브 스택 수집 간격(밀리초)
active_stack_time2100006회 이후의 액티브 스택 수집 간격(밀리초)

net_udp_ipnet_udp_port는 배치 호스트와 같은 서버에서 실행하는 일반적인 구성이라면 기본값으로 동작합니다. 그 외 옵션은 필요할 때만 추가하세요.

time_limit 설정

배치 잡은 보통 장시간 실행하며 잡마다 예상 처리 시간이 다릅니다. 잡별로 time_limit을 설정하세요.

time_limit을 설정하면 액티브 트랜잭션 화면의 경고 표시 임계치를 자동으로 계산합니다. 개별 설정은 필요하지 않습니다.

경과 시간표시
time_limit의 70%까지기본 색상
time_limit의 70% 초과노란색
time_limit 초과빨간색

Batch Job Time Limit

색상 판정은 잡 전체의 경과 시간을 기준으로 합니다. 트레이스를 분할한 경우에도 구간별이 아니라 잡 전체의 경과 시간으로 판정합니다.

액티브 스택 수집 타이밍

배치 에이전트는 실행 중인 배치 잡의 스택 트레이스를 일정 간격으로 수집합니다. 수집한 액티브 스택은 트레이스 분석 화면에서 ActiveStack 스텝으로 확인할 수 있습니다.

active_stack_time1active_stack_time2는 임계치가 아니라 수집 간격입니다. 기본값 기준 수집 타이밍은 다음과 같습니다.

회차수집 시점적용 옵션
1회배치 잡 시작 후 1초active_stack_start_wait_time
2회 ~ 5회직전 수집으로부터 5초 간격active_stack_time1
6회 이후직전 수집으로부터 10초 간격active_stack_time2

기본값으로 90초 실행하는 배치 잡에서는 약 12회의 액티브 스택을 수집합니다.

수집 간격이 전환되는 기준인 5회는 고정값이며 변경할 수 없습니다. 변경할 수 있는 항목은 active_stack_start_wait_time, active_stack_time1, active_stack_time2 세 개의 시간 설정입니다.

active_stack_time1active_stack_time2의 최솟값은 100밀리초입니다. 100 미만을 설정해도 100으로 적용합니다.

액티브 스택을 수집하지 않으려면 active_stack_enabled=false로 설정하세요.

수집 건수 상한

배치 잡 1건에서 수집할 HTTP 호출과 SQL의 최대 건수입니다. 기본값은 각각 100만 건입니다.

OptionDefault
trace_httpc_limit1000000
trace_sql_limit1000000

설정한 건수를 초과하면 해당 종류의 데이터 수집이 그 지점에서 멈추고, 초과분은 통계에 반영하지 않습니다. 배치 잡 자체는 계속 실행하며 트랜잭션도 정상적으로 끝납니다.

주의

수집이 멈춰도 트레이스에 별도 표시가 남지 않습니다. 실제 처리 건수가 상한을 넘길 가능성이 있다면 미리 충분히 큰 값을 설정하세요.

트랜잭션 목록에 표시되는 SQL 건수 또는 HTTP 호출 건수가 설정한 상한값과 정확히 일치하면 상한에 도달했을 가능성이 있습니다.

두 옵션에는 제품상 상한값이 없습니다. 다만 값을 크게 설정하면 배치 프로세스의 메모리 사용량이 늘어나므로, 검증 환경에서 확인한 다음 운영 환경에 적용하세요.

잡마다 설정 분리하기

job_nametime_limit은 잡마다 다른 값을 설정합니다. 설정 파일은 whatap.home을 기준으로 읽어들이므로, -Dwhatap.home으로 잡별 디렉터리를 지정하는 방식을 권장합니다.

에이전트 jar은 한곳에 두고 설정 파일만 잡별로 준비하세요.

{BATCH_HOME}/agent/whatap.agent.batch-X.Y.Z.jar   모든 잡이 공유

{JOB_HOME}/
├── job-a/
│ ├── job-a.jar
│ └── whatap.conf job_name=job-a, time_limit=600000
└── job-b/
├── job-b.jar
└── whatap.conf job_name=job-b, time_limit=120000

설정 파일을 읽어들인 디렉터리에는 logs 디렉터리를 만듭니다. 잡 디렉터리에 logs가 없다면 그 디렉터리의 설정을 쓰지 않은 것입니다. 문제를 확인할 때 지표로 활용하세요.

실행

실행 순서

배치 호스트는 모든 배치 잡에 대해 하나만 기동합니다.

  1. 모든 배치 잡을 실행하기 전에 배치 호스트를 1회 기동하세요.
  2. 각 배치 잡을 -javaagent 옵션과 함께 실행하세요. 여러 잡을 병렬로 실행할 수 있습니다.
  3. 모든 배치 잡이 끝난 다음 배치 호스트를 종료하세요.
주의

설정 파일은 기동할 때 1회만 읽어들입니다. 설정을 변경하면 배치 에이전트는 다음에 실행하는 잡부터 반영하고, 배치 호스트는 다시 기동해야 합니다.

배치 호스트 프로세스를 강제 종료하면 실행 중인 잡에서 보낸 데이터를 잃을 수 있습니다. 모든 잡이 끝난 다음 정지하세요.

배치 호스트 기동

Batch Host
cd {BATCH_HOME}
java -cp {BATCH_HOME}/whatap.agent.batch.host-X.Y.Z.jar:{BATCH_HOME}/whatap.agent-X.Y.Z.jar \
-Dwhatap.name=batch whatap.agent.batch.App

Java 17 이상이라면 리플렉션 관련 옵션을 추가하세요.

Batch Host, Java 17 or later
cd {BATCH_HOME}
java --add-opens=java.base/java.lang=ALL-UNNAMED \
-cp {BATCH_HOME}/whatap.agent.batch.host-X.Y.Z.jar:{BATCH_HOME}/whatap.agent-X.Y.Z.jar \
-Dwhatap.name=batch whatap.agent.batch.App

배치 잡 실행

Batch Job
java -javaagent:{BATCH_HOME}/agent/whatap.agent.batch-X.Y.Z.jar \
-Dwhatap.home={JOB_HOME}/job-a \
-jar {JOB_HOME}/job-a/job-a.jar

Java 17 이상이라면 --add-opens=java.base/java.lang=ALL-UNNAMED를 추가하세요.

기동 확인

기동할 때 표시되는 배너로 설정 적용 여부를 확인합니다. 배치 호스트와 배치 에이전트의 배너는 서로 다릅니다.

배치 호스트

WhaTap vX.Y.Z YYYYMMDD PCODE(프로젝트코드)
Java <JDK 버전> asmlib<버전> asm<버전>
whatap.agent-X.Y.Z.jar
./whatap.conf
DisplayDescription
PCODE(숫자)정상. 숫자는 프로젝트 코드
PCODE(0)license 또는 설정 파일이 적용되지 않음. 문제 해결 참조

세 번째 줄에는 배치 호스트 jar이 아니라 Java 에이전트 jar 파일명을 표시합니다. 정상 동작입니다.

배치 에이전트

WhaTap vX.Y.Z YYYYMMDD
Java <JDK 버전> asmlib<버전> asm<버전>
whatap.agent.batch-X.Y.Z.jar
{JOB_HOME}/job-a/whatap.conf

배치 에이전트 배너에는 PCODE를 표시하지 않습니다. 네 번째 줄에 출력한 설정 파일 경로가 잡별 설정을 적용했는지 확인하는 기준입니다. 의도한 잡 디렉터리의 경로가 아니라면 whatap.home이 예상과 다르게 결정된 것입니다.

배너의 Java·asm 값은 프로세스를 실행한 JDK에 따라 결정합니다. 두 프로세스를 다른 JDK로 기동하면 서로 다른 값을 표시합니다.

화면에서 확인하기

배치 잡은 히트맵과 트랜잭션 목록에서 트랜잭션으로 확인할 수 있습니다. 트랜잭션 이름은 job_name에 설정한 값입니다.

가상 트랜잭션

split_trace_enabled=true인 경우, 스텝 수가 많은 잡은 트레이스가 일정 단위로 분할되어 전송됩니다. 분할한 각 구간은 가상 트랜잭션으로 표시하며 이름에 일련번호가 붙습니다. 기본값은 false이므로 기본 설정에서는 가상 트랜잭션이 표시되지 않습니다.

job_name=sample-job이고 스텝 수가 약 5,000인 경우의 예입니다.

트랜잭션 이름내용표시되는 소요 시간
sample-job-1 ~ sample-job-4분할한 구간(가상 트랜잭션)각 구간의 처리 시간
sample-job실제 트랜잭션잡 전체의 소요 시간

잡 전체의 소요 시간은 일련번호가 붙지 않은 트랜잭션에서 확인하세요. 스텝 번호는 잡 전체에서 연속됩니다.

  • 가상 트랜잭션은 히트맵과 TPS에 반영하지만 통계에는 잡 1건으로 집계합니다. 트랜잭션 건수를 많게 계상하지 않습니다.
  • 가상 트랜잭션은 CPU 사용 시간이 0, 클라이언트 IP 주소가 0.0.0.0으로 표시됩니다.
  • 트레이스 분석 화면에서 스텝 실행 내역을 파일로 내려받을 때 트레이스가 분할되어 있으면 파일도 분할 단위로 나뉩니다. 잡 전체의 스텝 내역이 필요하면 가상 트랜잭션을 각각 내려받으세요.

배치 에이전트의 메트릭 지표 수집

대시보드에는 배치 호스트(Batch Host)의 Heap Memory를 수집하고, 배치 애플리케이션의 성능 지표는 메트릭(TagCount: batch_job_counter)으로 수집합니다.

batch_job_counter

  • batch job: pid, hostname, job_name
  • gc: gc_count, gc_time_sum, gc_oldgen_count
  • heap: heap_tot, heap_use, heap_max, heap_pending_final, heap_perm
  • cpu: cputime
  • thread count: thread_total_started, thread_count, thread_daemon, thread_peak_count

문제 해결

배치 호스트 기동 배너에 PCODE(0)이 표시됩니다

  1. 배너 네 번째 줄에 출력한 경로에 whatap.conf가 있는지 확인하세요.
  2. 없다면 whatap.home이 예상과 다르게 결정된 것입니다. 설정 파일의 위치를 확인하고, 필요하면 -Dwhatap.home으로 명시적으로 지정하세요.
  3. 설정 파일이 있다면 license 값이 올바른지 확인하세요. 값에 문제가 있으면 로그에 WhaTap AccessKey Error를 기록합니다.

java.net.BindException 오류

UDP 6611을 이미 사용 중입니다. 배치 호스트를 강제 종료한 경우 Java 프로세스가 남아 포트를 계속 점유할 수 있습니다.

ss -anu | grep 6611
ps -ef | grep whatap.agent.batch.App

남아 있는 프로세스를 종료한 다음 배치 호스트를 다시 기동하세요.

잡마다 설정한 내용이 반영되지 않습니다

해당 디렉터리를 whatap.home으로 인식하지 않은 것입니다. 기동 배너 네 번째 줄에 출력한 경로를 확인하세요.

가장 흔한 원인은 에이전트 jar을 공유 위치에 두고 설정 파일만 잡 디렉터리에 둔 경우입니다. -javaagent로 지정한 jar의 디렉터리가 whatap.home이 되므로 잡 디렉터리의 whatap.conf는 읽어들이지 않습니다. -Dwhatap.home으로 잡 디렉터리를 지정하세요.

모니터링 데이터가 표시되지 않습니다

다음 순서로 확인하세요.

  1. 배치 호스트가 기동되어 있는지 확인하세요.
  2. 기동 배너의 PCODE가 0이 아닌지 확인하세요.
  3. 배치 호스트에서 수집 서버로 TCP 6600을 허용했는지 확인하세요.
  4. 배치 에이전트에서 배치 호스트로 UDP 6611이 통신되는지 확인하세요.
  5. UDP 포트를 변경했다면 배치 호스트의 net_udp_listen_port와 배치 잡의 net_udp_port가 같은 값인지 확인하세요.
  6. {whatap.home}/logs/whatap.log에 오류를 기록했는지 확인하세요.

스텝이 도중에 끊겨 있습니다

수집 상한에 도달한 경우입니다. 상한에 도달해도 트레이스에 별도 표시가 남지 않으므로 다음을 확인하세요.

확인 항목관련 설정
스텝 번호가 1,000 부근에서 끊겼는지트레이스 스텝 수집 설정
SQL 건수가 trace_sql_limit와 일치하는지수집 건수 상한
HTTP 호출 건수가 trace_httpc_limit와 일치하는지수집 건수 상한
트레이스 마지막에 lost-profile 스텝이 있는지프로파일링 종료 대기 시간

트랜잭션에 lost-profile이 기록됩니다

profile_expired_time(기본 30초) 동안 스텝이 전달되지 않아 프로파일링을 강제 종료한 상태입니다.

  • 잡이 kill -9 등으로 비정상 종료된 경우에는 정상적인 자동 정리 결과입니다.
  • 잡이 정상 실행 중이었다면, 외부 시스템 응답 대기처럼 계측 대상 처리가 발생하지 않는 구간이 30초를 넘었을 가능성이 있습니다. 프로파일링 종료 대기 시간을 참조해 값을 조정하세요.

자동으로 계산되는 설정

다음 값은 time_limit에서 자동으로 계산합니다. 설정 파일에 직접 기재할 필요가 없습니다.

OptionCalculation
warning_timetime_limit의 70%
yellow_timetime_limit의 70%
red_timetime_limit의 100%

적용 확인 체크리스트

#항목확인 방법
1에이전트 압축 해제{BATCH_HOME} 하위와 agent 디렉터리에 jar이 있습니다.
2호스트 설정licensewhatap.server.host를 기재했습니다.
3통신 요건TCP 6600 아웃바운드를 허용했습니다.
4배치 호스트 기동배치 호스트 배너의 PCODE가 0이 아닙니다.
5에이전트 설정잡마다 job_nametime_limit을 설정했습니다.
6잡 실행-Dwhatap.home으로 잡 디렉터리를 지정했습니다.
7설정 적용잡 디렉터리에 logs를 만들었습니다.
8데이터 확인히트맵에 job_name의 트랜잭션이 표시됩니다.
9소요 시간 확인일련번호가 붙지 않은 트랜잭션에서 잡 전체 시간을 확인했습니다.
10병렬 실행여러 잡을 동시 실행해 job_name별로 구분되어 표시됩니다.
11종료 처리모든 잡 종료 후 배치 호스트를 정지했습니다.

다음 단계

  • 오픈 소스 추적

    애플리케이션에서 사용하는 프레임워크나 오픈소스 라이브러리에 따라 에이전트 옵션을 추가해야 할 수 있습니다. 예를 들어, 프레임워크나 오픈소스로 spring-boot-3.x, feign-client-11, okhttp3-4.4 사용 시 다음과 같이 옵션을 설정하세요.

    whatap.conf
    weaving=spring-boot-3.0,feign-11,okhttp3-4.4

    사용자의 애플리케이션 환경에 맞는 프레임워크나 오픈소스 라이브러리를 설정하는 방법은 다음 문서를 참조하세요.

  • 설치 점검하기

    프로젝트 생성 및 에이전트 설치, JVM 옵션까지 모두 적용했다면 다음 문서에서 점검 사항을 확인하세요.

  • 설치 문제 해결

    에이전트 설치 시 발생할 수 있는 다양한 문제들과 이를 해결하기 위한 구체적인 지침을 제공합니다. 방화벽 설정, SpringBoot 및 Tomcat JMX 설정, OSGI 프레임워크 사용 서버 설정 등 다양한 상황에 대한 해결책을 안내합니다. 자세한 내용은 다음 문서를 참조하세요.

  • 에이전트 설정

    에이전트 설정(whatap.conf) 파일에 옵션을 적용해 모니터링을 위한 다양한 기능을 제공합니다. 기본 설정부터 서버 연결 및 데이터 전송 설정, 여러 애플리케이션 서버의 설정 파일 관리 방법, 트랜잭션 추적 등을 포함합니다. 자세한 내용은 다음 문서를 참조하세요.

  • 모니터링 시작하기

    모든 설정을 완료한 다음 애플리케이션 서버를 다시 시작하세요. 에이전트가 정보를 수집하기 시작합니다. 먼저 애플리케이션 대시보드 메뉴에서 모니터링 데이터가 수집되는지 확인하세요. 애플리케이션 대시보드에 대한 자세한 내용은 다음 문서를 참조하세요.