트랜잭션 추적 수집 및 분석

진단자, 심사자 또는 관리자는 메서드 등의 트랜잭션 추적 구성 요소에 대한 세부 정보를 확인합니다. 이 정보는 응용 프로그램 성능 문제의 근본 원인을 식별하는 데 도움이 됩니다. 트랜잭션 추적 프로그램을 사용하면 자동 또는 수동으로 수집된 트랜잭션 추적을 검사할 수 있습니다. PBD를 사용하여 구성 요소가 계측되거나 스마트 계측이 사용되는 경우 정보가 표시됩니다.
apmdevops104kr
진단자, 심사자 또는 관리자는 메서드 등의 트랜잭션 추적 구성 요소에 대한 세부 정보를 확인합니다. 이 정보는 응용 프로그램 성능 문제의 근본 원인을 식별하는 데 도움이 됩니다. 트랜잭션 추적 프로그램을 사용하면 자동 또는 수동으로 수집된 트랜잭션 추적을 검사할 수 있습니다. PBD를 사용하여 구성 요소가 계측되거나 스마트 계측이 사용되는 경우 정보가 표시됩니다.
3
다음 다이어그램에서는 트랜잭션 구성 요소에 대한 세부 정보를 조회하여 응용 프로그램 성능 문제의 근본 원인을 식별하는 방법을 보여 줍니다.
How to collect and analyze transaction traces
트랜잭션 추적 개요
트랜잭션 추적 프로그램은 지원되는 여러 에이전트의 경계를 통과하면서 개별 트랜잭션의 활동을 모니터링합니다. 에이전트는 Java, .NET 및 Node.js 응용 프로그램의 모니터링을 지원합니다. 크로스 프로세스 트랜잭션 추적은 다른 JVM(Java Virtual Machine), CLR(공용 언어 런타임) 및 Node.js 인스턴스 간의 트랜잭션 호출을 모니터링합니다. 모니터링은 로컬 또는 원격 컴퓨터에서 발생할 수 있습니다. 크로스 프로세스 트랜잭션 세부 정보를 보면 트랜잭션 프로세스 전체에서 문제를 쉽게 조사할 수 있습니다.
트랜잭션 추적을 수집하는 방법은 다음과 같습니다.
트랜잭션 추적 세션이 시작된 후에는 필터 기준과 일치하는 트랜잭션이 Workstation 또는 WebView에 표시됩니다. "트랜잭션 추적 프로그램" 탭에서는 트랜잭션 추적 및 오류 등의 트랜잭션 이벤트를 포함한 추적 정보를 볼 수 있습니다.
참고:
과도한 트랜잭션 추적을 처리하는 방법에 대한 자세한 내용은 TEC1186238을 참조하십시오.
크로스 프로세스 트랜잭션 추적
종종 트랜잭션은 환경에 따라 여러 개의 JVM, CLR 또는 Node.js 인스턴스나 응용 프로그램 서비스를 거치며 이동합니다. JVM, CLR 또는 Node.js 인스턴스나 응용 프로그램 서버의 임의 조합에서 또 다른 조합으로 이동하며 처리가 이루어집니다. 전체 트랜잭션 경로를 수집하려면 JVM, CLR 또는 Node.js 인스턴스의 경계를 넘는 동기 및 비동기 호출을 추적해야 합니다. 또한 여러 플랫폼에서 트랜잭션을 추적하기 위해서는 지원되는 에이전트를 실행해야 할 수도 있습니다. 여러 플랫폼에서 전체 트랜잭션 경로를 수집하는 Introscope 기능을 크로스 프로세스 트랜잭션 추적이라고 합니다. 이 기능을 사용하면 트랜잭션이 서로 다른 서버에서 실행되는 여러 JVM 또는 CLR에서 메서드를 호출할 경우 이에 대한 세부 정보를 볼 수 있습니다.
참고:
크로스 프로세스 트랜잭션 추적은 에이전트 필터링을 사용하는 수동 실행 트랜잭션 추적, 샘플 트랜잭션 추적 및 기타 트랜잭션 추적에서 지원됩니다. 트랜잭션 추적 수집 및 분석은 Java 응용 프로그램에 대해서만 지원됩니다.
트랜잭션 상관 관계 지정
분산 응용 프로그램은 복잡합니다. 일반적으로 단일 사용자 트랜잭션은 개별 에이전트 JVM 또는 CLR에서 실행되는 여러 스레드를 거칩니다. 때로는 단일 트랜잭션에 동기 호출과 비동기 호출이 모두 포함되기도 합니다. 또한 에이전트는 전체 트랜잭션 경로를 하나의 논리적 단위로 나타내기 위해 개별 트랜잭션 호출을 고려해야 합니다.
일반적으로 트랜잭션은 프로세스 간에 전달되는 일련의 호출과 응답으로 이루어집니다. 트랜잭션의 서로 다른 프로세스에서 서로 다른 논리적 또는 물리적 서버를 호출하기도 합니다. 또한 프로세스가 분산되어 서로 다른 구성 요소나 백엔드 시스템에서 실행될 수도 있습니다. 전체 트랜잭션을 결합하기 위해 에이전트는 포함된 모든 프로세스와 호출 순서를 파악해야 합니다. 또한 에이전트는 스레드와 동기 및 비동기 호출에 대한 정보도 필요로 합니다.
크로스 프로세스 호출을 포함하는 전체 트랜잭션 경로를 추적하려면 에이전트가 프로세스에 논리적으로 연결해야 합니다. 에이전트는 프로세스의 상관 관계를 지정하거나 프로세스의 연결 뷰를 생성하는
상관 관계 식별자
를 사용합니다.
 
에이전트는 트랜잭션에 상관 관계 식별자를 삽입하여 연결을 만듭니다. 상관 관계 식별자는 프로세스 간에 전달될 수 있습니다. 에이전트는 이 프로세스 연결을 통해 같은 트랜잭션에 속하는 프런트엔드 및 백엔드를 식별할 수 있습니다. 
또한 전체 트랜잭션을 결합하기 위해 에이전트는 트랜잭션의 한 프로세스가 다른 프로세스를 호출하는 때를 확인해야 합니다. 트랜잭션에서 프런트엔드와 백엔드가 서로 호출하는 순서를 확인할 수 있습니다. 동기 트랜잭션의 경우에는 이 순서를 통해 호출자/호출 수신자 관계를 파악할 수 있습니다. 비동기 트랜잭션의 경우에는 이 순서를 통해 복잡한 클라이언트 및 서버 트랜잭션 세그먼트의 여러 프로세스에서 이루어지는 워크플로를 파악할 수 있습니다. 상관 관계 식별자와 호출 시퀀스 순서의 조합은
상호 관련된 트랜잭션 추적
또는
상호 관련된 추적
기능을 제공합니다.
크로스 프로세스 트랜잭션 추적은 동일한 프로세스 내에서의 크로스 스레드 상관 관계도 지원합니다.
에이전트는 자동으로 상관 관계 식별자 데이터 집합을 관리하며 해당 데이터를 Enterprise Manager에 전달합니다. Enterprise Manager는 트랜잭션 추적 뷰어에 표시되는 선택된 트랜잭션의 그래픽 표현을 생성합니다. 다음 그래픽에서는 샘플 또는 수동으로 수집되는 트랜잭션 추적의 예를 보여 줍니다.
Graphical stack showing transaction calls displays in Trace View.
트랜잭션 추적을 사용하여 문제 해결
다음 프로세스는 문제의 근본 원인을 찾는 데 도움이 되도록 트랜잭션 추적 뷰어에서 트랜잭션을 검사하는 방법을 설명합니다.
  1. 트랜잭션 추적 뷰어에 그래픽 스택이 표시되면 Introscope가 선택한 추적 이벤트에서 관련된 프로세스를 추적한 것입니다.다른 에이전트에서 추적된 프로세스는 다른 음영 영역에 표시됩니다.
  2. 연결된 구성 요소를 검사하여 크로스 프로세스 또는 크로스 JVM 트랜잭션을 확인할 수 있습니다.예를 들어 특정 트랜잭션에 한 프로세스가 남았는지 확인한 다음 이 트랜잭션이 다른 프로세스를 시작했는지 여부를 확인할 수 있습니다. 
  3. 또한 느리거나 지체된 트랜잭션을 유발한 호출을 파악할 수도 있습니다.
  4. 더 큰 동일한 트랜잭션의 일부로 상호 관련된 기록 이벤트를 쿼리할 수 있습니다.예를 들어 서블릿 트랜잭션 이벤트와 상호 관련된 브라우저 응답 시간 이벤트를 쿼리할 수 있습니다.
크로스 프로세스 트랜잭션 추적 예
이 예에서는 크로스 프로세스 트랜잭션 추적을 통해 문제를 빠르고 효과적으로 파악하고 평가하는 방법을 설명합니다.
  1. 문제가 있는 트랜잭션에 대한 트랜잭션 추적을 검토하다가 실행 시간이 6초(6000밀리초)임을 확인합니다.
  2. 추적 뷰에서 확인하니 클라이언트 측 메서드인
    에서 서버 측 메서드인
    가 호출됩니다.
  3. 서버 측 웹 서비스는 타사 웹 서비스를 여러 번 호출하고 있는 것으로 확인됩니다.타사 웹 서비스는 계측되지 않으므로 처리 시간이 추적에 명시적으로 표시되지 않습니다. 
  4. 추적 뷰에는 타사 웹 서비스 백엔드가 반복적인 요청을 연속적으로 빠르게 처리하고 있는 것으로 표시됩니다. 이 동작은 서버 측 서비스에서 중첩된 루프 같은 프로그래밍 논리로 인해 반복적인 호출이 발생하고 있음을 나타냅니다. 이 서버 측 호출 작업이 전체 트랜잭션 실행 시간의 대부분을 차지하는 것으로 판단했습니다.
  5. 이 정보를 바탕으로 서버 측 웹 서비스 응용 프로그램 소유자와 접촉합니다.
  6. 소유자는 타사 웹 서비스 백엔드를 호출하는 응용 프로그램 논리에 대한 조사를 요청합니다.
자동으로 수집된 트랜잭션 추적
스마트 계측이 사용되는 경우 다음과 같은 작업이 발생하면 Introscope는 자동으로 트랜잭션 추적을 수집합니다.
  • 차이 분석 기능이 응용 프로그램 불안정을 감지하는 경우
    참고:
    차이 분석에서 자동 트랜잭션 추적 기능을 사용하려면 버전 10.0 이상의 에이전트가 필요합니다.
  • 오류가 발생하는 경우
  • ComponentTimeAutoTraceTriggerTracer
    추적 프로그램이 배포되었고 구성 요소 응답 시간이 초과된 경우
  • 사용자 지정 조건에 따라 API가 자동 트랜잭션 추적을 트리거하는 경우
    추가 정보:
    CA APM Implementation Services에 문의하십시오. 
고도로 최적화되고 오버헤드가 낮은 추적 프로그램이 자동 트랜잭션 추적을 수집합니다. 자동 추적은 수동 실행 트랜잭션 추적, 샘플 트랜잭션 추적 및 기타 트랜잭션 추적에 비해 훨씬 적은 성능 오버헤드를 유발합니다. 이러한 다른 유형의 트랜잭션 추적에는 오버헤드를 증가시키는 에이전트 필터링이 사용됩니다.
자동 트랜잭션 추적은 다음과 같은 특성이 있습니다.
  • Java, PHP 및 Node.js 에이전트에 대해 지원됩니다. .NET 에이전트는 지원되지 않습니다.
  • 모든 PBD 계측된 구성 요소는 Investigator 트리에 연결된 메트릭이 있습니다. 깊은 가시성 구성 요소에는 연결된 메트릭이 없습니다.
  • 깊은 가시성 구성 요소는 클래스 이름, 메서드 이름 및 지속 시간만 포함합니다. 프런트엔드 및 백엔드(예: 서블릿, 웹 서비스, SQL 호출)의 경우 이름은 PBD 구성에 따라 지정됩니다.
  • 다음을 포함합니다: 트랜잭션 추적 수집 및 분석
    참고:
    자동 트랜잭션 추적에서 크로스 프로세스 트랜잭션은 Java 응용 프로그램에 대해서만 지원됩니다.
  • 자동 트랜잭션 추적은 다른 유형의 트랜잭션 추적이 표시하는 구성 요소 정보 속성을 모두 표시하지는 않습니다.
  • The following properties display in the 트랜잭션 추적 수집 및 분석:
    • "Trace Type"(추적 유형) - "정상"
    • 오류가 트랜잭션 추적을 트리거하는 경우 예외를 발생시킨 구성 요소는 구성 요소 속성을 포함합니다.
    • 트랜잭션 추적의 첫 번째 구성 요소는
      Auto Trace Trigger Criteria
      (자동 추적 트리거 조건) 속성을 표시합니다.
자동 트랜잭션 추적이 표시되지 않으면 다음 이유 중 하나 때문일 수 있습니다.
추적을 수동으로 실행하는 경우 수동 필터와 일치하는 자동 추적이 있으면 Introscope는 수동 추적만 수집합니다.
자동 트랜잭션 추적에서의 크로스 프로세스 트랜잭션
자동 트랜잭션 추적에서 크로스 프로세스 트랜잭션을 확인하면 계층 간 트랜잭션을 평가할 수 있습니다. 문제가 있는 트랜잭션에 대해 병목 현상이 발생하는 계층을 확인할 수 있습니다.
참고:
자동 트랜잭션 추적에서 크로스 프로세스 트랜잭션은 Java 응용 프로그램에 대해서만 지원됩니다.
업스트림 및 다운스트림 에이전트
트랜잭션을 모니터링하는 에이전트는 동일한 트랜잭션을 모니터링하는 다른 에이전트에서의 업스트림, 다운스트림 또는 둘 모두가 될 수 있습니다. 업스트림 에이전트는 다운스트림 에이전트에 대해 크로스 프로세스 호출을 실행할 수 있습니다. 트랜잭션 호출은 여러 프로세스를 거칠 수 있습니다. 따라서 첫 번째 트랜잭션 호출과 마지막 트랜잭션 호출 사이의 프로세스를 모니터링하는 에이전트는 다른 에이전트에서의 업스트림과 다운스트림 모두에 배치됩니다. 다음 예를 참조하십시오.
  1. 문제가 있는 트랜잭션에 대한 트랜잭션 추적을 검토하다가 실행 시간이 6초(6000밀리초)임을 확인합니다.
  2. 추적 뷰
    에서 확인하니 클라이언트 측 메서드인
    에서 서버 측 메서드인
    가 호출됩니다.
  3. 서버 측 메서드는 계측되는 타사
    3PP site data 
    웹 서비스를 여러 번 호출하고 있는 것으로 확인됩니다.
  4. 추적 뷰
    에는
    3PP site data 
    웹 서비스 백엔드가 반복적인 요청을 연속적으로 빠르게 처리하고 있는 것으로 표시됩니다.이 동작은 서버 측 서비스에서 중첩된 루프 같은 프로그래밍 논리로 인해 반복적인 호출이 발생하고 있음을 나타냅니다. 이 서버 측 호출 작업이 전체 트랜잭션 실행 시간의 대부분을 차지하는 것으로 판단했습니다.
다음 그래픽에서는 크로스 프로세스 트랜잭션 예에서의 에이전트 위치를 보여 줍니다. 
Diagram of Upstream and Downstream Agents
문제가 발견되면 에이전트는 해당 문제를 보고하며, 일부 경우에는 에이전트가 트랜잭션 추적을 시작합니다. 자동 트랜잭션 추적에 크로스 프로세스 호출이 포함되기 전에는 업스트림 에이전트만이 문제를 보고하고 트랜잭션 추적을 수집할 수 있었습니다.
자동 트랜잭션 추적에서 크로스 프로세스 추적 전의 가시성
트랜잭션 시작 위치에서 가까이 있는 에이전트는 트랜잭션에 다운스트림 문제가 있음을 인식하지 못합니다.  트랜잭션이 완료되면 다운스트림 에이전트가 가장 가까운 업스트림 에이전트에 모든 다운스트림 문제를 보고합니다. 다운스트림 에이전트가 완료를 보고하기 전까지 업스트림 에이전트는 트랜잭션이 완료되지 않았다는 것만 알 수 있습니다. 트랜잭션이 완료되면 트랜잭션 시작 위치에서 가장 가까운 업스트림 에이전트는 발견된 문제를 Enterprise Manager에 트랜잭션 추적으로 보고합니다. 자동 트랜잭션 추적에 크로스 프로세스 호출 모니터링이 포함되기 전에는 문제를 감지한 다운스트림 에이전트가 Enterprise Manager에 트랜잭션 추적을 보내지 않았습니다. 다운스트림 에이전트에 의해 발견된 문제가 최상위 업스트림 에이전트에 보고될 수 없는 경우 해당 문제는 보고되지 않았습니다. 이로 인해 응용 프로그램 문제의 가시성이 상당히 떨어졌습니다.
자동 트랜잭션 추적에 크로스 프로세스 추적이 포함된 경우의 완전한 가시성
크로스 프로세스 추적이 지원되면 Java 에이전트가 지능형 캐싱을 사용하여 문제가 있는 크로스 프로세스 트랜잭션에 대한 자동 트랜잭션 추적을 보낼 수 있습니다. 이 기능은 Java 트랜잭션에 대한 완전한 가시성을 제공합니다.
문제가 있는 트랜잭션을 감지하는 업스트림 에이전트와 다운스트림 에이전트가 모두 자동 트랜잭션 추적을 트리거할 수 있습니다. 또한 둘 모두 트랜잭션 추적 정보를 Enterprise Manager에 보낼 수 있습니다. 자동 추적을 트리거하는 에이전트는 트랜잭션 종료 시 Enterprise Manager에 추적을 보낼지 여부를 결정합니다. 이 결정 타이밍은 Enterprise Manager 기준 임계값이 자동 트랜잭션 추적을 트리거하는 차이 분석을 사용하여 응용 프로그램 안정성 모니터링차이 분석의 경우에 특히 유용합니다.
트랜잭션은 HTTP 또는 SOAP 등의 지원되는 프로토콜을 사용하여 동일한 프로세스 내에서 서비스를 호출할 수 있습니다. 이 경우 크로스 프로세스 호출을 실행하는 에이전트는 다른 에이전트에서의 업스트림과 다운스트림 모두에 배치될 수 있습니다. 업스트림 에이전트가 자동 트랜잭션 추적을 수집하면 관여하는 모든 다운스트림 에이전트도 자동 트랜잭션 추적을 수집합니다. 크로스 프로세스 트랜잭션 추적 기능은 사용자가 근본 원인을 분석하기 위해 문제를 심사하는 데 중요한 추적만 수집합니다.
업스트림 에이전트가 추적을 트리거하면
Component Details Auto Tracing Triggered
속성에 트리거 유형이 표시됩니다. 예를 들어 오류가 이에 해당합니다. 다운스트림 에이전트가 자동 추적의 수집을 트리거할 경우
Component Details Auto Tracing Triggered
속성은
Cross Process Trigger
입니다. 
예: 자동 트랜잭션 추적에서의 에이전트 크로스 프로세스 트랜잭션 추적 상관 관계
다른 에이전트의 업스트림 에이전트가 문제를 감지합니다. 업스트림 에이전트는 자동 트랜잭션 추적의 수집을 트리거하고 다운스트림 에이전트에 동일한 작업을 수행할 것을 통지합니다. 모든 에이전트는 Enterprise Manager에 자동 트랜잭션 추적을 보냅니다. 동시에 에이전트는 다음 다이어그램에 표시된 것과 같이 상호 관련된 크로스 프로세스 트랜잭션을 생성합니다.
cross-process transactions trigger auto trace  - agent
자동 트랜잭션 추적은 동일한 프로세스 내에서의 크로스 스레드 상관관계도 지원합니다. 스레드 호출은 여러 트랜잭션을 거칠 수 있습니다. 프로세스의 한 트랜잭션이 여러 스레드를 거칠 수 있습니다. 다음 그래픽에서는 자동 트랜잭션 추적의 맨 아래 행에 있는 네 개의 크로스 프로세스 스레드를 볼 수 있습니다.
Threads in automatic tranaction trace cross-process transaction .png
업스트림 스레드는 다운스트림 스레드가 호출되기 전이나 후에 언제든지 자동 트랜잭션 추적을 트리거할 수 있습니다. 트랜잭션 세부 정보는 해당 스레드가 트랜잭션의 초기 트리거 스레드에 대해 업스트림에 있는지 다운스트림에 있는지에 따라 달라집니다. 
예: 자동 트랜잭션 추적에서의 스레드 크로스 프로세스 트랜잭션 추적 상관 관계
업스트림 스레드가 문제를 감지합니다. 업스트림 스레드는 자동 트랜잭션 추적의 수집을 트리거하고 다운스트림 스레드에 동일한 작업을 수행할 것을 통지합니다. 모든 스레드는 Enterprise Manager에 자동 트랜잭션 추적을 보냅니다. 동시에 스레드는 상호 관련된 크로스 프로세스 트랜잭션을 생성합니다.
Cross-process transaction in auto trace 2
응용 프로그램 불안정을 기반으로 자동으로 트랜잭션 추적 수집
차이 분석 기능은 응용 프로그램의 안정성을 추적합니다. 기본적으로 차이 분석 기능은 프런트엔드 및 비즈니스 트랜잭션의 평균 응답 시간 메트릭에서 제어되지 않는 변동성을 찾습니다. 차이 분석 맵은 많은 응용 프로그램의 안정성과 응답성을 시각적으로 보여 줍니다. 맵의 각 줄은 하나의 메트릭에 해당합니다. 문제가 없고 안정적인 기간에는 줄이 밝은 음영으로 표시됩니다. 안정성이 저하되면 불안정 상태의 심각도에 따라 줄의 음영이 점점 어두워집니다. 따라서 단일 줄로 단일 응용 프로그램 또는 비즈니스 트랜잭션의 시간에 따른 안정성을 확인할 수 있습니다. 맵의 맨 위에 가장 불안정한 줄이 정렬됩니다.
응용 프로그램이 다소 불안정한 상태가 되면 차이 분석 기능은 관련된 자동 트랜잭션 추적을 수집하기 위해 준비된 에이전트에 이를 통지합니다. 일반적으로 에이전트는 응용 프로그램이 안정될 때까지 트랜잭션 추적을 수집합니다. 하지만 불안정 기간이 짧을 때는 에이전트가 트랜잭션 추적을 수집하지 않기로 결정할 수 있습니다. 안정성 변화에 관한 세부 정보를 얻고 근본 원인을 파악하려면 이러한 트랜잭션 추적을 확인하십시오.
참고:
차이 분석에서 자동 트랜잭션 추적 기능을 사용하려면 버전 10.0 이상의 에이전트가 필요합니다.
다음 단계를 따르십시오.
  1. APM Team Center에서
    WebView
    를 클릭합니다.
    APM WebView가 나타납니다.
  2. Investigator
    ,
    메트릭 브라우저
    를 클릭합니다.
    트리에 시스템의 계층적 뷰가 표시됩니다.
  3. 트리에서 성능 정보를 보려는 에이전트를 선택합니다. 예를 들면 다음과 같습니다.
    SuperDomain | Host | Process | Agent | Frontends | Apps | App Name
  4. 차이 분석
    탭을 클릭합니다.
    이 맵에는 성능 데이터가 그래픽으로 표시되며 최근 8분 동안의 데이터가 표시됩니다. 상위 100개의 문제 있는 메트릭이 불안정 수준이 높은 것부터 낮은 것 순으로 표시됩니다. 쿼리를 실행하거나 기간을 변경하거나 다른 노드를 선택하면 데이터가 새로 고쳐집니다.
  5. 맵에서 관심 있는 줄을 클릭합니다.
    차이 분석 차트가 나타납니다. 이 차트에서 줄이 나타내는 시간별 메트릭 안정성을 확인할 수 있습니다. 차트에는 모니터링되는 구성 요소의 상태가 표시되므로 정상 및 비정상 성능을 신속하게 감지할 수 있습니다.
    선은 실제 메트릭 값을 나타냅니다.
    음영 처리된 영역은 표준 편차 범위 1, 2 및 3에 해당합니다. 범위의 색이 진할수록 예측된 값과의 편차가 큰 것입니다. 흰색 범위의 메트릭은 예측된 값보다 양호한 것입니다. 맨 아래의 흰색 영역 위에 표시되는 메트릭은 예측된 값을 초과한 것입니다. 예를 들어 메트릭이 맨 위 범위 위에 있으면 표준 편차의 3배를 초과한 것입니다.
  6. 해당 행을 마우스로 가리킵니다.
    도구 설명에 메트릭 값이 표시됩니다.
  7. 예를 들어 평균 응답 시간 등의 관심 있는 메트릭에 대한 하이퍼링크를 클릭합니다.
  8. 메트릭 브라우저에서 메트릭 바로 위의 폴더 노드를 클릭한 다음
    추적
    탭을 클릭합니다.
    불안정으로 인해 생성된 자동 트랜잭션 추적을 볼 수 있습니다. 
  9. (선택 사항) 차이 분석을 통해 생성된 트랜잭션 추적을 보려면 다른 노드를 클릭합니다.
    예를 들어
    Frontends
    (프런트엔드) 노드를 클릭한 다음
    추적
    탭을 클릭하면 모든 프런트엔드 응용 프로그램에 대한 자동 추적이 표시됩니다.
진입점 및 다른 응용 프로그램 메트릭에 대한 차이 분석을 구성할 수 있습니다.
구성 요소 응답 시간이 초과된 경우 자동 트랜잭션 추적 트리거
구성 요소 응답 시간이 초과된 경우 트랜잭션 추적을 자동으로 트리거하도록 PBD를 배포할 수 있습니다. 이 자동 추적을 수집하는 추적 프로그램을 포함하는 PBD 항목을 만들면 됩니다. 예를 들어 특정 서블릿 응답 시간이 10초를 초과할 때 추적을 수집하려는 경우가 이에 해당합니다. 이 기능을 구성하려면 
ComponentTimeAutoTraceTriggerTracer
추적 프로그램 옵션을 사용하십시오.
수동으로 트랜잭션 추적 수집
트랜잭션 추적 세션을 수동으로 실행하려면 트랜잭션을 추적할 에이전트와 데이터 캡처 기간을 지정하십시오. 임계값 실행 시간을 초과하거나, 매개 변수 값과 일치하거나, 오류를 포함하는 트랜잭션에 대한 추적을 제한하려면 필터를 지정하십시오. 트랜잭션 추적 세션이 시작된 후 필터 기준에 일치하는 트랜잭션이 트랜잭션 테이블에 표시됩니다. 트랜잭션 이벤트는 트랜잭션 추적 및 오류를 포함합니다.
새 트랜잭션 추적 세션을 실행하려면
run_tracer
권한이 있어야 합니다.
다음 단계를 따르십시오.
  1. APM Team Center에서
    WebView
    를 클릭합니다.
    APM WebView가 나타납니다.
  2. 도구
    ,
    트랜잭션 추적 프로그램
    을 클릭합니다.
  3. 추적 세션 시작
    을 클릭합니다.
  4. "트랜잭션 추적" 영역에서:
    • 트랜잭션 추적의 최소 기간을 지정합니다. 드롭다운 목록에서 "밀리초" 또는 "초"를 선택합니다. 기본값은 5000 밀리초입니다.
    • (선택 사항) 트랜잭션 추적에 대해 다음 필터 조건 중 하나를 지정하십시오.
      • 다음과 같음
        문자열과 일치하는 매개 변수 값이 추적됩니다.
      • 다음과 같지 않음
        지정된 문자열과 일치하지 않는 매개 변수 값이 추적됩니다. 필터가 적용되는 매개 변수를 포함하지 않는 트랜잭션도 추적됩니다.
      • 다음 포함
        지정된 문자열을 포함하는 매개 변수 값이 추적됩니다.
      • 다음으로 시작
        지정된 문자열로 시작하는 매개 변수 값이 추적됩니다.
      • 다음으로 끝남
        지정된 문자열로 끝나는 매개 변수 값이 추적됩니다.
      • 존재함
        매개 변수 값과 상관없이 필터가 적용되는 매개 변수가 포함된 트랜잭션을 추적합니다.
      • 존재하지 않음
        필터가 적용되는 매개 변수를 포함하지 않는 트랜잭션을 추적합니다.
  5. 추적 세션 기간을 입력합니다.
  6. 에이전트 추적
    영역에서 다음과 같이 트랜잭션을 추적할 에이전트를 하나 이상 선택합니다.
    • 모든 에이전트를 추적하려면
      지원되는 모든 에이전트 추적
      을 클릭하십시오. 이 옵션은 현재 연결되어 있는 에이전트 중 지원되는 에이전트와 추적 세션 동안 연결되는 모든 에이전트를 추적합니다.
    • 선택한 에이전트를 추적하려면
      선택한 에이전트 추적
      을 클릭하고 목록에서 에이전트를 선택합니다(여러 에이전트를 선택하려면
      Ctrl 키를 누른 채로 클릭
      ).
  7. 확인
    을 클릭하여 트랜잭션 추적 세션을 시작합니다.
    세션이 시작된 후에 아래쪽 창의 상태 표시줄에 다음과 같은 정보가 표시됩니다.
    • 추적된 트랜잭션의 수와 추적 구성의 간략한 설명
    • 세션의 남은 시간
    라이브 모드에서
    추적
    탭에 지난 20분의 트랜잭션 추적 이벤트가 나열됩니다. 20분이 지난 트랜잭션 추적 이벤트는 라이브 모드에 표시되지 않습니다. 최대 500개의 트랜잭션 추적 이벤트가 나열됩니다.
트랜잭션 추적 세션 중지, 다시 시작, 전환
다음과 같이
트랜잭션 추적 프로그램
탭에서 추적 세션을 관리할 수 있습니다.
  • 추적 중지
    를 클릭하여 세션을 끝냅니다.
  • 동일한 조건을 사용하여 대상 에이전트에서 트랜잭션 추적을 계속하려면
    추적 다시 시작
    을 클릭합니다. 다음과 같은 경우 트랜잭션 추적 세션을 다시 시작할 수 있습니다.
    • 세션이 시간 만료된 후
    • 중지한 세션을 다시 시작하려는 경우
    • 진행 중인 세션을 다시 시작하기 위해
  • 실행할 다른 추적 세션을 선택하려면
    추적 전환
    을 클릭합니다.
관련 추적 찾기
단일 추적을 검사하여 응용 프로그램 문제에 대한 정보를 수집합니다. 
다음 단계를 따르십시오.
  1. 트랜잭션 테이블의 추적 세션에 대한 추적 활동 정보를 분석합니다. 자세한 정보를 보려면 테이블 행을 선택하십시오.
  2. 필요한 경우 추적 세션을 중지, 다시 시작, 전환하거나 새로 실행합니다.
  3. 아래쪽 창에서
    요약 뷰
    ,
    추적 뷰
    ,
    트리 뷰
    탭을 검사합니다. 해당 정보는 응용 프로그램 문제와 성능 문제점을 진단 및 심사하는 데 도움이 됩니다.
진입점 이해
자동 진입점 검색을 사용하면 ProbeBuilder 지시문을 수동으로 구성하지 않고도 신속하게 Java 응용 프로그램을 모니터링하고 심사할 수 있습니다.
스마트 계측 및 진입점 감지가 사용되는 경우 Introscope는 클라이언트 소켓 호출 트랜잭션에 관련된 스레드를 모니터링합니다.  스마트 계측 및 진입점 감지는 기본적으로 사용되도록 구성되어 있습니다. 
진입점
은 트랜잭션 시작점입니다. 에이전트 내의 규칙 엔진은 진입점 후보를 식별합니다. 에이전트는 트랜잭션 스레드에서 가장 오래된 진입점 후보를 계측하고 모니터링합니다. 한 에이전트가 감지하여 저장하는 모든 진입점은 설치 디렉터리를 공유하는 모든 에이전트에 의해 모니터링에 사용됩니다. 그러나 여러 에이전트가 계측을 공유하는 경우 메트릭 보고를 위해서는 응용 프로그램 서버 JVM이 동일한 코드 또는 프레임 워크 클래스를 실행해야 합니다.
다음은 진입점 감지를 통해 자동으로 가시성이 제공되는 트랜잭션의 예입니다.
  • 아직 Introscope 계측을 통해 모니터링되지 않는 기술 스택 및 프레임워크
  • 사용자 지정 API 또는 고유 API 호출
  • 중요한 리소스를 소비하며 전반적인 응용 프로그램 성능에 영향을 미칠 수 있는 백그라운드 스레드
     
참고
: 진입점 감지 기능은 UDP(사용자 데이터그램 프로토콜)를 지원하지 않습니다.
에이전트는
AutoPersist.pbd
에 진입점을 저장하며 이 파일은 <
에이전트 홈
> \core\config\hotdeploy 디렉터리에 저장됩니다.
중요!
응용 프로그램 서버를 실행하는 시스템 사용자에게는 \hotdeploy 디렉터리에 대한 읽기/쓰기 액세스 권한이 있어야 합니다. 이러한 사용 권한이 있어야 에이전트가
AutoPersist.pbd
에 데이터를 쓸 수 있습니다.
진입점은 프런트엔드와는 다릅니다. Java 에이전트는 트랜잭션 호출 경로의 시작 부분에 있는 진입점을 자동으로 검색합니다. 프런트엔드는 PBD에서 수동으로 정의되며 트랜잭션 호출 경로의 어느 위치에나 있을 수 있습니다.
중요!
AutoPersist.pbd
를 수동으로 변경하지 마십시오. 그러나 검색된 진입점을 복사하여 다른 PBD에서 사용할 수는 있습니다.
진입점 메트릭은 에이전트 중심 트리에서 에이전트 노드 아래의 "Automatic Entry Points"(자동 진입점) 하위 노드에 표시됩니다.
참고:
IntroscopeAgent.profile
introscope.autoprobe.dynamicinstrument.enabled
속성이 true로 설정되었는지 확인하십시오. 이 구성은 응용 프로그램을 다시 시작하지 않고도 에이전트가 진입점 메트릭을 보고할 수 있도록 합니다.
Introscope는 각 진입점마다 다섯 개씩의 표준 Blame 메트릭을 보고합니다. 진입점은 트랜잭션 추적에 표시되지만 응용 프로그램 심사 맵에는 표시되지 않습니다. 진입점 이름은
entry point <
class name _ method name
>
형식으로 지정됩니다. Introscope는 진입점 지원 기능 메트릭을 보고합니다.
진입점 컬렉션을 구성할 수 있습니다. 예를 들어 구성 속성으로
AutoPersist.pbd
에 저장할 수 있는 진입점의 수를 제한할 수 있습니다.
자동 백엔드 이해
자동 백엔드
검색이 사용되는 경우 수동 구성 없이도 에이전트가 자동으로 응용 프로그램 백엔드를 검색하고 모니터링합니다.
에이전트 내의 검색 엔진은 자동 백엔드 후보를 식별합니다. 한 에이전트가 감지하여 저장하는 모든 자동 백엔드는 설치 디렉터리를 공유하는 모든 에이전트에 의해 모니터링에 사용됩니다.
다음은 자동 백엔드 감지를 통해 찾고 모니터링할 수 있는 백엔드 유형의 예입니다.
  • 에이전트가 아직 모니터링하지 않는 백엔드 기술 스택 및 프레임워크. 예를 들어 MongoDB 및 Cassandra와 같은 NoSQL 백엔드가 이에 해당합니다.
  • 사용자 지정 백엔드 또는 고유 백엔드
에이전트는
AutoPersist.pbd
에 자동 백엔드를 저장하며 이 파일은 <
에이전트 홈
>\core\config\hotdeploy 디렉터리에 저장됩니다.
중요!
 
  • 응용 프로그램 서버를 실행하는 시스템 사용자에게는 hotdeploy 디렉터리에 대한 읽기/쓰기 액세스 권한이 있어야 합니다. 이러한 사용 권한이 있어야 에이전트가 AutoPersist.pbd에 데이터를 쓸 수 있습니다.
 
  • AutoPersist.pbd를 수동으로 변경하지 마십시오. 그러나 검색된 자동 백엔드를 복사하여 다른 PBD에서 사용할 수는 있습니다.
사용자가 자동 백엔드 감지를 구성할 수 있습니다. 예를 들어 구성 속성으로 AutoPersist.pbd에 저장할 수 있는 자동 백엔드의 수를 제한할 수 있습니다.
추적 뷰
구성 요소 정보
에는 r
emote port
remote server name
 매개 변수가 표시됩니다. 
이 트랜잭션 추적에서 백엔드 호출 경로와 매개 변수를 확인하십시오.
  • 백엔드 호출 경로에 대한 트랜잭션 추적 구성 요소는 Backends|com.mysql.jdbc|MysqlIO|sendCommand입니다.
  • 원격 포트 매개 변수는
    3306
    이고 원격 서버 호스트 매개 변수는
    Name1: localhost
    입니다. 
Automatic backend in a transaction trace
깊은 가시성 구성 요소 이해
스마트 계측이 사용되는 경우 에이전트는 자동으로 트랜잭션 구성 요소에 대한 세부 정보를 메서드 수준까지 검색 및 수집합니다. 에이전트는 PBD(ProbeBuilder 지시문)를 사용하지 않고 깊은 가시성 구성 요소를 검색하여 자동으로 계측합니다. Introscope는 메서드에서 복잡성을 분석하여 심층 가시성 구성 요소로 계측하고 표시할 호출 및 구성 요소를 결정합니다.
참고:
스마트 계측은 .NET 에이전트가 아닌 Java 에이전트에서만 사용할 수 있습니다.
깊은 가시성 구성 요소에 대해 알아야 할 사항:
  • 번개 모양 아이콘은 깊은 가시성 구성 요소를 나타냅니다. 깊은 추적 구성 요소 레이블은 또한 구성 요소 위로 마우스 포인트를 가져갔을 때 도구 설명으로서도 표시됩니다.
  • 깊은 가시성 구성 요소는 메트릭에 대한 링크를 포함하지 않습니다. Investigator 트리 또는 응용 프로그램 심사 맵에는 메트릭 데이터가 표시되지 않습니다.
  • 클래스 이름, 메서드 이름, 기간만 포함됩니다.
  • 구성 요소 정보에는 다음과 같은 속성이 표시됩니다.
    • 계측 수준
      트랜잭션이 검색된 스마트 계측 수준입니다.
    • 메서드 점수 수준
      Introscope가 깊은 가시성 구성 요소 메서드에 할당하는 점수와 상호 관련된 스마트 계측 수준입니다. Introscope는 트랜잭션 추적, 오류 또는 지체 내에서 다양한 점수를 갖는 심층 가시성 구성 요소 메서드를 표시할 수 있습니다. 예를 들어, 중간 수준을 사용하여 검색된 트랜잭션은 중간 및 낮음의 메서드 수준 점수를 갖는 메서드를 표시할 수 있습니다.
이러한 속성을 사용하여 트랜잭션 추적 및 추적 내 메서드의 스마트 계측 가시성 깊이를 이해할 수 있습니다. 예를 들어 스마트 계측이 두 개의 서로 다른 계측 수준에서 검색하는 메서드 수를 비교할 수 있습니다. Introscope가 특정 메서드에 대해 점수를 매긴 스마트 계측 수준을 파악할 수 있습니다. 오버헤드와 가시성 사이의 적절한 균형이 맞도록 모니터링 솔루션을 조정할 수 있습니다.
표준 계측된 구성 요소 및 깊은 트랜잭션 추적 구성 요소는 모두 CEM 인시던트를 기준으로 트랜잭션 추적 세션을 통해 또는 명령줄 Workstation을 사용하여 트랜잭션 추적이 시작될 경우 표시될 수 있습니다.
요구 사항 및 환경에 따라 스마트 계측 가시성의 깊이를 구성할 수 있습니다.
추적 뷰에서 개별 구성 요소의 정보 보기
그래픽 스택에 표시되는 트랜잭션 구성 요소를 조회합니다. 위에서 아래로 구성 요소를 검사하여 기간 내 호출 순서를 파악하고 성능을 평가합니다.
다음 단계를 따르십시오.
  1. APM Team Center에서
    WebView
    를 클릭합니다.
  2. 도구
    ,
    트랜잭션 추적 프로그램
    을 클릭합니다.
    참고:
    도구
    ,
    기록 이벤트 뷰어
    에서 쿼리를 실행하여 이 정보를 볼 수도 있습니다.
  3. 테이블에서 트랜잭션 추적을 선택합니다.
  4. 아래쪽 창에서 "추적 뷰" 탭을 클릭합니다.
    참고
    : 라이브 모드에서는
    추적
    탭에 지난 20분의 트랜잭션 추적 이벤트가 나열됩니다. 20분이 지난 트랜잭션 추적 이벤트는 라이브 모드에서 표시되지 않습니다.
    선택한 트랜잭션에 대한 구성 요소가 그래픽 스택으로 표시됩니다.
  5. 에이전트 상태 영역에서 다음 데이터를 포함한 정보를 조회합니다.
    타임스탬프
    이 값은 루트 구성 요소의 호출 시작 시간(에이전트 시스템 클록 기준)을 표시합니다.
    지속 시간
     
    이 값은 루트 구성 요소의 실행 시간(밀리초)을 표시합니다.
     
  6. 데이터 뷰어에서 그래픽 스택의 구성 요소를 맨 위부터 맨 아래로 검사하고 응용 프로그램 성능을 평가합니다.
    오른쪽으로 향한 파란색 삼각형을 클릭하여 그래픽 표시를 확장하면 개별 트랜잭션 구성 요소를 볼 수 있습니다.
    다음 그림에서는 Servlets|PlaceOrder란 이름의 구성 요소에 대해 표시된 이 삼각형을 보여 줍니다. 도구 설명에는 구성 요소 이름이 표시됩니다.
    expand component.png
    다음 그림에서는 사용자가 이 삼각형을 클릭했습니다. 번개 모양 아이콘의 깊은 가시성 구성 요소는 Servlets|PlaceOrder 메서드의 구성 요소로서 표시되어 있습니다.
    lightning bolt component.png
    그래픽 스택 보기에 다음 정보가 표시됩니다.
    • 트랜잭션의 각 구성 요소(막대로 표시)
    • 구성 요소 간 호출 관계
      구성 요소에 대한 막대가 호출 순서에 따라 위에서 아래로 표시됩니다.
    • 시간에 따른 트랜잭션 순서
      구성 요소의 순서가 왼쪽에서 오른쪽으로 표시됩니다. 상대적인 클록 시간(밀리초)이 트랜잭션 위쪽에 가로로 표시됩니다.
    • 트랜잭션 내 오류
      트랜잭션 그래픽 스택의 빨간색 슬라이스는 트랜잭션 내 오류를 나타냅니다.
    • 크로스 프로세스 및 크로스 JVM 트랜잭션 데이터
      CA APM은 고유한 식별자인 상관 관계 ID를 사용하여 추적된 프런트엔드와 백엔드 트랜잭션을 연결합니다. 그 순서는 트랜잭션에서 프런트엔드가 백엔드를 호출하는 순서에 기초합니다. 뷰어에 여러 그래픽 스택이 표시되는 경우는 Introscope가 선택한 추적 이벤트에 대해 관련된 프로세스를 찾아 추적한 것입니다. 다른 에이전트에서 추적된 프로세스는 다른 음영 영역에 표시됩니다. 트랜잭션 추적에서 연결된 구성 요소를 검사함으로써 크로스 프로세스 또는 크로스 JVM 트랜잭션을 확인할 수 있습니다. 예를 들어 특정 트랜잭션에 한 프로세스가 남았는지 확인한 다음 이 트랜잭션이 다른 프로세스를 시작했는지 여부를 확인할 수 있습니다. 또한 느리거나 중단된 트랜잭션을 유발한 호출을 파악할 수도 있습니다.
    • 깊은 가시성 구성 요소는 번개 모양 아이콘으로 표시되고 도구 모음에 "깊은 추적 구성 요소" 레이블로 표시됩니다.
    • 진입점이 감지될 경우 진입점은 일반적으로 트랜잭션의 첫 번째 구성 요소로 나타납니다. 트랜잭션이 비즈니스 트랜잭션인 경우에는 비즈니스 트랜잭션이 첫 번째 구성 요소로 진입점보다 먼저 나타납니다.
  7. 표시된 스택에서 한 구성 요소로부터 다른 구성 요소로 이동하려면 탭 키를 사용합니다.
  8. 필요한 경우 오른쪽 위에 있는 확대/축소 슬라이더를 사용하여 표시된 화면을 확대 또는 축소합니다. 값은 1 - 10까지 지정할 수 있습니다. 슬라이더의 각 값은 그래픽 화면의 너비를 2배 늘립니다. 기본값은 1입니다.
  9. 추가 정보가 수록된 도구 설명을 보려면 구성 요소 위로 마우스를 이동합니다.
  10. 구성 요소 정보
    영역에서 다음 정보를 봅니다.
    형식
     
    이 값은 상위 수준 구성 요소(예: Java의 JSP, 서블릿, EJB 및 .NET의 ASPX)를 표시합니다.
    이름
     
    이 값은 구성 요소의 이름을 표시합니다.
    경로
     
    이 값은 구성 요소의 전체 리소스 이름을 표시합니다.
    지속 시간
     
    이 값은 선택한 구성 요소의 실행 시간을 표시합니다. 기본 단위는 밀리초입니다.
    타임스탬프(상대적)
     
    이 값은 에이전트 시작 시간을 표시합니다.
    총 트랜잭션 시간의 %
     
    이 값은 총 트랜잭션 시간에 대한 백분율을 표시합니다.
    속성
     
    이 값은 구성 요소의 옵션 속성 목록을 표시합니다.
    참고:
    깊은 가시성 구성 요소에 대한 일부 정보는 제공되지 않습니다.
옵션 속성
다음 표에서는
추적 뷰
에 표시되는 선택적 구성 요소 정보 속성(구성 요소에 대한 세부 정보)을 설명합니다.
속성
설명
사용자 ID(서블릿, JSP, ASPX)
HTTP 서블릿 요청을 호출하는 사용자의 사용자 ID입니다.
URL(서블릿, JSP, ASPX)
서블릿 또는 JSP까지의 URL로, 쿼리 문자열(URL에서 '?' 구분 기호 뒤에 오는 텍스트)을 포함하지 않습니다.
URL 쿼리(서블릿, JSP, ASPX)
HTTP 요청에서 쿼리 매개 변수를 지정하는 URL 부분(URL에서 '?' 구분 기호 뒤에 오는 텍스트)입니다.
세션 ID(서블릿, JSP, ASPX)
서블릿 요청에 연결된 HTTP 세션 ID입니다.
동적 SQL(동적 JDBC 또는 ADO.NET 문, SQL 에이전트가 설치된 경우)
일반화된 동적 SQL 문으로, SQL 에이전트에 집계 양식으로 표시됩니다.
호출 가능 SQL(호출 가능 JDBC 또는 ADO.NET 문, SQL 에이전트가 설치된 경우)
호출 가능 SQL('?'가 그대로 있음)
Prepared SQL(준비된 SQL)(준비된 JDBC 또는 ADO.NET 문, SQL 에이전트가 설치된 경우)
준비된 SQL('?'가 그대로 있음)
메서드(Blame 관련 추적 프로그램 - 서블릿만 제외, Java의 경우 JSP 및 JDBC 문, .NET의 경우 ASPX 및 ADO.NET)
추적된 메서드의 이름입니다.
마운트되지 않음
스마트 계측을 통해 구성 요소가 검색되었습니다. 이 구성 요소에 대해 수집된 메트릭이 없습니다.
잘린 추적
트랜잭션 추적이 추적의 마지막 메서드에서 잘립니다. 잘리는 이유는 대개 깊은 재귀 호출 때문입니다.
자동 추적 트리거 조건
Introscope가 자동 트랜잭션 추적을 수집하도록 하는 트리거입니다. 예를 들어
ComponentTimeAutoTraceTriggerTracer
추적 프로그램이 배포되었을 때 오류 또는 초과된 구성 요소 응답 시간입니다.
ComponentTimeAutoTraceTriggerTracer
가 트리거인 경우
Auto Trace Trigger Criteria
에는 <
구성 요소 이름
>의 응답 시간이 임계값 <
>을 초과함이 표시됩니다.
에이전트가 자동 트랜잭션 추적에서 크로스 프로세스 트랜잭션을 수집하는 경우
Auto Trace Trigger Criteria
에는 다음 트리거가 표시됩니다.
  • 업스트림 에이전트가 크로스 프로세스 트랜잭션을 트리거하면
    Auto Trace Trigger Criteria
    속성에 Introscope 트리거가 표시됩니다. 예:
    error
    또는 Response time of <
    component name>
    exceeds threshold <
    value
    >.
  • 다운스트림 에이전트가 크로스 프로세스 트랜잭션을 트리거하면
    Auto Trace Trigger Criteria
    Cross Process Trigger
    가 표시됩니다.
계측 수준
트랜잭션이 검색된 스마트 계측 수준입니다.
메서드 점수 수준
Introscope가 깊은 가시성 구성 요소 메서드에 할당하는 점수와 상호 관련된 스마트 계측 수준입니다. Introscope는 트랜잭션 추적, 오류 또는 지체 내에서 다양한 점수를 갖는 심층 가시성 구성 요소 메서드를 표시할 수 있습니다. 예를 들어, 중간 수준을 사용하여 검색된 트랜잭션은 중간 및 낮음의 메서드 수준 점수를 갖는 메서드를 표시할 수 있습니다.
Remote Server Name(원격 서버 이름)
모니터링되는 응용 프로그램이 통신하는 원격 백엔드 시스템의 호스트 이름입니다.
Remote Port(원격 포트)
모니터링되는 응용 프로그램이 통신하는 원격 백엔드 시스템의 포트 번호입니다.
요약 뷰에서 구성 요소 요약 정보 보기
요약 뷰 탭에서 에이전트 및 트랜잭션에 대한 정보를 정렬 가능한 열로 제공합니다. 트랜잭션 추적 중의 특정 트랜잭션 호출 시간 및 총 호출 수에 대한 정보를 볼 수 있습니다.
다음 단계를 따르십시오.
  1. APM Team Center에서
    WebView
    를 클릭합니다.
    APM WebView가 나타납니다.
     
  2. 도구
    ,
    트랜잭션 추적 프로그램
    을 클릭합니다.
     
  3. 테이블에서 트랜잭션 추적을 선택합니다.
    아래쪽 창에서
    요약 뷰
    탭이 열립니다.
  4. 에이전트 상태 표시줄에서 다음 데이터를 포함한 정보를 조회합니다.
    타임스탬프
    이 값은 루트 구성 요소의 호출 시작 시간(에이전트 시스템 클록 기준)을 표시합니다.
    지속 시간
    이 값은 루트 구성 요소의 실행 시간(밀리초)을 표시합니다.
    .
  5. 트랜잭션 테이블에서 다음과 같은 정보를 봅니다.
    경로
    이 값은 메트릭 경로를 표시합니다.
    호출
    이 값은 호출 수를 표시합니다.
    호출 시간(ms)
    이 값은 호출의 길이를 밀리초로 표시합니다.
    최소
    이 값은 최소 호출 시간을 표시합니다.
    평균
    이 값은 평균 호출 시간을 표시합니다.
    최대
    이 값은 최대 호출 시간을 표시합니다.
    깊은 가시성 구성 요소는 번개 모양 아이콘으로 표시됩니다.
     
  6. 열을 기준으로 행을 정렬하려면 열 헤더를 클릭합니다.
  7. 트랜잭션 추적 상태 표시줄에서 다음과 같은 정보를 봅니다.
    • 세션에서 수집된 트랜잭션 수
    • 트랜잭션 추적 세션에 대한 필터 기준
    • 현재 세션 시간이 초과되기 전까지 남은 시간
트리 뷰에서 구성 요소 계층 정보 보기
트리 뷰에는 구성 요소가 계층적 호출 순서로 표시됩니다. 이 뷰는 구성 요소 지속 시간이 트랜잭션 총 지속 시간에 해당하는 기간을 나타낼 경우를 표시합니다. 특정 구성 요소를 탐색하여 성능 문제를 확인합니다.
다음 단계를 따르십시오.
  1. APM Team Center에서
    WebView
    를 클릭합니다.
    APM WebView가 나타납니다. 
  2. WebView에서
    도구
    ,
    트랜잭션 추적 프로그램
    을 클릭합니다.
  3. 테이블에서 트랜잭션 추적을 선택합니다.
  4. 아래쪽 창에서
    트리 뷰
    탭을 클릭합니다.
  5. 트리에서 노드를 확장합니다.
    트리의 각 노드에는 구성 요소, 이름, 기간 및 총 트랜잭션 기간의 비율이 표시됩니다. 원 아이콘의 색상은 기간을 나타냅니다.
    • 빨간색: 구성 요소 지속 시간 > 전체 지속 시간의 25%
    • 노란색: 구성 요소 지속 시간 > 9% < 전체 지속 시간의 25%
    • 초록색: 구성 요소 지속 시간 <= 전체 지속 시간의 9%
  6. 다음 그림에 표시된 것처럼 구성 요소를 선택하여 자세한 정보를 봅니다.
    component tree view.png
    다음 사항에 유의하십시오.
    • 빨간색 원형 표시기를 따라 트리 아래로 내려갈 수 있습니다. 그러면 트랜잭션 시간의 대부분과 관련된 메서드를 볼 수 있습니다. 예를 들어
      AxisServer::invoke
      메서드는 트랜잭션을 실행하는 데 걸린 시간 37 ms의 95%를 차지합니다.
    • 트랜잭션에 시간적인 영향을 크게 미치지 않는 추적 구성 요소는 초록색 아이콘으로 구분됩니다.
    • 깊은 가시성 구성 요소는 번개 모양 아이콘으로 표시됩니다.
  7. 메서드를 선택할 경우 메서드에 대한 추가 정보가 구성 요소 세부 정보 창에 표시됩니다. 다음 정보를 조회합니다.
    • 구성 요소 유형, 이름, 경로
    • 지속 시간, 타임스탬프, 총 트랜잭션 시간
  8. 구성 요소 트랜잭션 시간이 비정상적으로 길 경우 문제 근본 원인을 가리킬 수 있습니다.
    수집한 정보를 지원부 또는 개발부에 제공하여 수정 방법을 확인하는 데 도움을 줄 수 있습니다.
쿼리 기록 이벤트
트랜잭션 추적 세션 결과는 자동으로 이벤트 데이터베이스에 저장됩니다. 트랜잭션 이벤트에는 트랜잭션 추적, 오류 메시지, 중단이 포함됩니다. 아카이브된 기록 이벤트를 쿼리함으로써 이러한 기록 이벤트를 보다 신속하게 액세스할 수 있습니다.
기록 쿼리 기능은 다음 구문을 지원합니다.
  • 대/소문자 구분 안 함
    쿼리 문자열 또는 쿼리 옵션 값에 사용합니다.
  • 별표(*) 와일드카드 문자
    별표로 끝나는 부분 검색어를 입력하십시오. 검색어는 별표로 시작할 수 없습니다. 예를 들어, 이름 문자열에 'Shopping'이 포함된 구성 요소에 대한 오류를 찾으려면 쿼리 문자열 Shopping*를 사용하십시오.
  • 부울 연산자
    검색어에 "AND", "OR", "NOT" 등의 부울 논리와 "()" 그룹화를 사용할 수 있습니다.
  • 제외 조건
    JDBC는 사용하지만 CICS는 사용하지 않는 트랜잭션을 찾으려면 "+JDBC -CICS"를 사용하십시오.
  • 쿼리 옵션
    특정 시간 범위, 사용자, 호스트 환경으로 쿼리 오류 이벤트를 제한하려면 쿼리 옵션 및 구문을 사용하십시오.
참고:
쿼리할 데이터가 준비되도록 기록 쿼리를 사용하기 전에 트랜잭션 추적 세션을 실행하십시오.
다음 단계를 따르십시오.
  1. APM Team Center에서
    WebView
    를 클릭합니다.
    APM WebView가 나타납니다.
  2. WebView에서
    도구
    ,
    기록 이벤트 뷰어
    를 클릭합니다.
    기록 이벤트 뷰어
    가 열립니다. "쿼리" 필드 드롭다운에는 이 세션 또는 이전 세션의 이전 검색이 표시됩니다.
  3. 쿼리
    검색 필드에 다음 정보를 입력합니다.
    • 쿼리 옵션 유형 - 지정한 유형에 일치하는 모든 트랜잭션 이벤트를 포함합니다.
    • 쿼리 문자열 - 문자열이 포함되거나 문자열과 일치하는 오류를 검색합니다. 쿼리 문자열을 입력하지 않으면 모든 오류 이벤트가 반환됩니다.
    • 쿼리 옵션 - 이벤트 매개 변수를 사용하여 검색을 제한합니다.
    Example: type:errorsnapshot
  4. "시간 창" 드롭다운 목록에서 기록 뷰의 시간 범위(예: 24시간)를 선택합니다.
    목록에 해당 시간 범위의 데이터가 표시됩니다. 이 목록에는 사용자가 선택한 지속 시간이 사용되며 종료 시간은 현재 시간으로 설정됩니다.
    시간 범위를 선택하지 않으면 쿼리는 기본적으로 모든 데이터를 사용합니다.
  5. "이
    동"을 클릭합니다.
    쿼리와 일치하는 트랜잭션이 "이벤트" 목록에 표시됩니다. 이 테이블의 열에는 다음과 같은 정보가 표시됩니다.
    • 형식
      이 값은 다음과 같이 추적 행에 정보 유형을 표시합니다.
      • 트랜잭션 추적(T)
      • 오류(E)
      • 샘플링(R)
        무작위 샘플링으로 선택된 트랜잭션
      • 별표 
        유형 기호 뒤에 별표가 표시된 경우 트랜잭션의 일부 구성 요소가 잘린 것입니다.
      이러한 유형은 라이브 모드에서 사용 가능한 트랜잭션에 적용됩니다. 기록 트랜잭션을 쿼리할 때는 다른 트랜잭션 유형을 사용할 수 있습니다.
    • 도메인
      이 값은 추적된 에이전트가 매핑되어 있는 도메인을 표시합니다.
    • 호스트
      이 값은 추적된 에이전트가 실행 중인 호스트를 표시합니다.
    • 프로세스
      이 값은 에이전트 프로세스 이름을 표시합니다.
    • 에이전트
      이 값은 에이전트 이름을 표시합니다.
    • 타임스탬프
      이 값은 루트 구성 요소의 호출 시작 시간(에이전트 시스템 클록 기준)을 표시합니다.
    • 지속 시간
      이 값은 루트 구성 요소의 실행 시간(클록 기준)을 표시합니다.
    • 설명
      이 값은 이 트랜잭션을 시작하는 URL 또는 트랜잭션을 시작한 구성 요소의 경로를 표시합니다.
    • 사용자 ID
      트랜잭션을 실행 중인 로그인한 사용자의 ID입니다.
  6. 이 열의 내용을 기준으로 행을 정렬하려면 열 헤더를 클릭하십시오.
  7. 이벤트에 대한 자세한 정보를 보려면 테이블 행을 클릭합니다.
  8. 아래쪽 창의 요약 뷰, 추적 뷰, 트리 뷰 탭을 사용하여 T 및 R 이벤트 유형을 검사합니다.
쿼리 옵션 및 구문
쿼리는 Lucene 정규식 구문을 사용하여 텍스트 문자열을 찾고 대체합니다. Lucene 구문에 대한 자세한 내용을 보려면 Lucene 웹 사이트(lucene.apache.org)에서 "query syntax"(쿼리 구문)으로 검색해 보십시오.
다음의 특수 문자가 쿼리에 포함되는 경우 Lucene 구문에서는 해당 특수 문자를 백슬래시(\) 문자로 이스케이프할 수 있습니다.
+ - && || ! ( ) { } [ ] ^ " ~ * ? : \
예를 들어 (1+1):2를 검색하려면 다음 쿼리를 사용합니다.
\(1\+1\)\:2
참고
: *(별표) 및
?
(물음표) 문자는 쿼리 맨 앞에 사용할 수 없습니다.
필드
설명
예:
agent
검색을 특정 에이전트가 보고한 이벤트로 제한합니다.
agent:ControlledRangeAgent
도메인
검색을 특정 도메인의 구성 요소 하나 이상과 관련된 이벤트로 제한합니다.
domain:AcmeWest
fullAgent
검색을 전체 경로로 지정된 특정 에이전트가 보고한 이벤트로 제한합니다.
domain|process|host|agent
fullAgent:AcmeWest| Custom Metric Host|
ControlledRange
에이전트
호스트
검색을 특정 호스트에서 발생한 이벤트로 제한합니다.
host:Wmiddle01
traceID
검색을 지정된 추적 ID의 이벤트로 제한합니다.
traceID:1340419311156\:3957
참고
: 두 번째 콜론(:) 바로 앞에 백슬래시(\)가 필요합니다.
프로세스
검색을 특정 응용 프로그램의 구성 요소 하나 이상과 관련된 오류로 제한합니다.
process:Custom Metric Host
root
검색을 메트릭 경로로 지정된 특정 구성 요소 하나 이상과 연관된 이벤트로 제한합니다.
root:servlets|accountServlet
type
쿼리 결과에 포함할 이벤트의 유형을 지정합니다.
errorsnapshot
검색을 오류 이벤트로 제한합니다.
normal
사용자가 시작한 트랜잭션 추적에서 캡처된 트랜잭션 이벤트를 반환합니다.
sampled
Introscope 기본 트랜잭션 샘플링으로 인해 캡처된 트랜잭션 이벤트를 반환합니다.
이러한 유형의 결과에 대한 "유형" 열에는 각각 E, T 및 R 코드가 지정됩니다. 이 코드 집합은 라이브 모드의 트랜잭션 추적 뷰어에서 사용할 수 있는 코드와 약간 다릅니다.
type:errorsnapshot
type:normal
type:sampled
url
검색을 지정된 트랜잭션 URL 경로 접두사와 연관된 이벤트로 제한합니다.
경로 접두사는 호스트 이름 뒤에 오는 URL 부분입니다. 다음 URL을 예로 들겠습니다.
ViewItem&category=11776&item=55562630&rd=1
... 경로 접두사는 다음과 같습니다:
/bWar/burgerServlet
url:/bWar/burgerServlet
urlParams
검색을 지정된 트랜잭션 URL 매개 변수와 연관된 이벤트로 제한합니다.
URL 매개 변수는 URL에서 물음표(?) 뒤에 옵니다. 다음 URL을 예로 들겠습니다.
http://ubuy.com/ws/shoppingServlet?
category=734&item=3772&tc=photo
여기서 URL 매개 변수 부분은 다음과 같습니다.
?category=734&item=3772&tc=photo
참고
:
urlParams
는 와일드카드 문자로 시작할 수 없습니다.
urlParams:category=734*
사용자
검색을 지정된 사용자 이름과 연관된 트랜잭션에 대한 이벤트로 제한합니다.
user:jdoe