.NET 에이전트
.NET 에이전트는 .NET 응용 프로그램을 위한 응용 프로그램 관리 솔루션입니다. .NET 에이전트는 Microsoft CLR(공용 언어 런타임) 환경에서 실행 중인 업무상 중요한 .NET 응용 프로그램을 모니터링합니다. 이 에이전트는 구성 요소 수준에 대한 가시성을 제공합니다.
apmdevops104kr
.NET 에이전트는 .NET 응용 프로그램을 위한 응용 프로그램 관리 솔루션입니다. .NET 에이전트는 Microsoft CLR(공용 언어 런타임) 환경에서 실행 중인 업무상 중요한 .NET 응용 프로그램을 모니터링합니다. 이 에이전트는 구성 요소 수준에 대한 가시성을 제공합니다.
2
2
.NET 에이전트 개요
CA APM 배포 환경에서 에이전트는 응용 프로그램 및 환경 메트릭을 수집하여 Enterprise Manager에 릴레이합니다. 에이전트에 메트릭을 보고하는 응용 프로그램을 계측되는 응용 프로그램이라고 합니다. .NET 에이전트를 설치하고 구성하면 시스템에서 실행되는 응용 프로그램이 시작 시 자동으로 계측됩니다.
다음 그림에서는 .NET 응용 프로그램이 SQL Server 데이터베이스에 연결되어 있는 간단한 CA APM 배포 환경을 보여 줍니다. 각 응용 프로그램 서버는 .NET 에이전트와 SQL 에이전트를 호스트합니다. 에이전트는 응용 프로그램 동작을 모니터링하고 메트릭을 Enterprise Manager에 보고합니다. 규모가 더 크고 복잡한 배포 환경에는 에이전트 수가 많고 Enterprise Manager도 여러 개 사용됩니다. Team Center, WebView 및 Workstation을 사용하여 메트릭을 볼 수 있습니다.

기본적으로 Microsoft IIS(인터넷 정보 서비스)를 사용하여 배포되고 시스템에서 활성 상태인 ASP.NET 응용 프로그램만 계측됩니다. 독립 실행형 .NET 실행 파일을 계측하거나, 응용 프로그램의 하위 집합만 계측할 수도 있습니다.
추적 프로그램이 수행하는 계측 프로세스는 ProbeBuilder 지시문 파일(PBD)에 정의됩니다. PBD 파일에 들어 있는 지시문은 모니터링할 대상 응용 프로그램 구성 요소를 식별합니다. 추적 프로그램은 이러한 구성 요소가 CLR에서 실행되는 동안 에이전트가 해당 구성 요소에 대해 수집하는 메트릭을 식별합니다. 그러면 .NET 에이전트는 이 메트릭 정보를 Enterprise Manager에 보냅니다.
Enterprise Manager는 여러 에이전트에서 보고한 메트릭을 저장합니다. Team Center, WebView 또는 Workstation을 사용하여 응용 프로그램 활동을 모니터링하고, 성능 문제의 원인을 조사하고, 문제를 진단할 수 있습니다.
MVC(모델 뷰 컨트롤러) 지원
.NET 에이전트는 MVC 프레임워크 응용 프로그램의 모니터링을 지원하므로 이를 통해 다음과 같은 작업을 수행할 수 있습니다.
- 표준 URL 그룹과 비즈니스 트랜잭션 기록 및 디코딩 기능 사용
- 개별 MVC 컨트롤러 및 작업의 성능 모니터링
- MVC 컨트롤러를 Team Center, WebView 및 Workstation에서 일반 프런트엔드로 보기WebView와 Workstation에서는 MVC | Controllers | <컨트롤러 이름> 아래에 메트릭이 표시됩니다.
- 각 컨트롤러 아래의 집계된 메트릭에 대해 설정된 알림 수신해당 메트릭 그룹 및 알림은 다음과 같습니다.
- MVC 컨트롤러 오류
- MVC 컨트롤러 응답 시간
- MVC\|Controllers\|[^|]+:Average Response Time \(ms\) 차이 분석 메트릭 보기
- MVC에 대한 비즈니스 트랜잭션 매칭
ASP.NET MVC는 다음과 같은 구성 요소를 제공합니다.
- 다양한 웹 응용 프로그램의 표시 계층 구문을 사용하기 위한 보기 엔진(템플릿). .NET 에이전트는 다양한 ASP.NET Razor 보기 엔진 템플릿을 모니터링하여 Razor 보기 엔진 성능 메트릭을 제공합니다.참고:
- MVC 작업 메트릭 보고는 기본적으로 비활성화되어 있습니다. 사용자가 메트릭 보고를 활성화할 수 있습니다.
- Razor 보기 엔진 성능 메트릭 보고는 기본적으로 비활성화되어 있습니다. 사용자가 메트릭 보고를 활성화할 수 있습니다.
- 작업 가능 섹션을 생성하여 웹 프로젝트를 구성하는 MVC 응용 프로그램 영역. .NET 에이전트는 MVC 영역 성능을 모니터링합니다.
- 참고:MVC 영역 성능 메트릭 보고는 기본적으로 비활성화되어 있습니다. 사용자가 메트릭 보고를 활성화할 수 있습니다.
Team Center에서는 MVC 프레임워크 응용 프로그램 메트릭이 다음 그림과 같이 표시됩니다.

Web API 지원
.NET 에이전트는 Web API 기반 응용 프로그램 트랜잭션의 모니터링을 지원하므로 문제가 있는 트랜잭션에 대해 병목 현상이 발생하는 계층을 확인하는 데 유용합니다.
지원되는 Web API 버전
지원되는 Microsoft ASP.NET Web API 버전은 다음과 같습니다.
버전 4
- Microsoft ASP.NET Web API 4.0.30506
버전 5
- Microsoft ASP.NET Web API 5.0.0
- Microsoft ASP.NET Web API 5.2.3
.NET 에이전트는 Web API 프레임워크 응용 프로그램의 모니터링을 지원하므로 이를 통해 다음과 같은 작업을 수행할 수 있습니다.
- 표준 URL 그룹과 비즈니스 트랜잭션 기록 및 디코딩 기능 사용
- 개별 Web API 컨트롤러 및 작업의 성능 모니터링
- Web API 컨트롤러를 Team Center, WebView 및 Workstation에서 일반 프런트엔드로 보기 WebView와 Workstation에서는 WebAPI | Controllers | <컨트롤러 이름> 아래에 메트릭이 표시됩니다.
- 각 컨트롤러 아래의 집계된 메트릭에 대해 설정된 알림 수신새 메트릭 그룹 및 알림은 다음과 같습니다.
- WebAPI 컨트롤러 오류
- WebAPI 컨트롤러 응답 시간
- WebAPI\|Controllers\|[^|]+:Average Response Time \(ms\) 차이 분석 메트릭 보기
- Web API에 대한 비즈니스 트랜잭션 매칭 지원
Team Center에서는 Web API 메트릭이 다음 그림과 같이 표시됩니다.

응용 프로그램 환경에서의 .NET 에이전트 모니터링
배포 환경에서 모니터링할 대상 응용 프로그램을 실행하는 각 컴퓨터에 .NET 에이전트를 설치하십시오. 에이전트를 설치한 후에는 Microsoft IIS(인터넷 정보 서비스)가 .NET 에이전트를 제어합니다. .NET 에이전트는 IIS가 응용 프로그램에 대한 사용자 요청을 수신한 후에야 활성화됩니다. .aspx, .asmx 같은 응용 프로그램 코드가 실행되면 .NET 에이전트가 시작되고 NativeProfiler가 해당 코드를 계측합니다.
IIS가 .NET 에이전트를 제어하는 방법
기본적으로 .NET 에이전트는 IIS가 관리하는 응용 프로그램과 IIS 작업자 프로세스에서 실행되는 응용 프로그램만 모니터링합니다. 다음 단계는 .NET 응용 프로그램이 시작될 때 IIS가 .NET 에이전트와 계측 프로세스를 제어하는 방법을 요약하여 보여 줍니다.
- IIS가 응용 프로그램에 대한 사용자 요청을 수신합니다.
- IIS가 .NET 작업자 프로세스를 시작합니다.
- 요청된 .NET 응용 프로그램이 시작됩니다.
- CLR(공용 언어 런타임)에서 NativeProfiler를 시작합니다.
- NativeProfiler가 GAC(전역 어셈블리 캐시)로부터 .NET 에이전트를 로드합니다.
- .NET 에이전트가 계측에 사용할 PBL 및 PBD 파일을 결정하기 위해 IntroscopeAgent.profile을 읽습니다.
- NativeProfiler는 PBL 파일과 PBD 파일에 있는 정보를 사용하여 바이트 코드에 프로브를 삽입합니다. 이 프로브는 응용 프로그램 구성 요소에서 적절한 메트릭을 수집합니다. 응용 프로그램이 계측됩니다.
- 계측된 응용 프로그램이 .NET 에이전트에 메트릭을 보고하기 시작합니다.IIS 작업자 프로세스가 실행되는 동안 에이전트는 메트릭을 수집하여 Enterprise Manager에 보고합니다. 계측된 응용 프로그램에서 사용자 동작이 일정 기간 동안 없으면 IIS 작업자 프로세스가 해당 응용 프로그램 프로세스를 중지합니다. IIS가 응용 프로그램 프로세스를 중지하면 사용자 동작이 계속될 때까지 .NET 에이전트가 중지됩니다.
.NET 에이전트가 ASP.NET을 사용하지 않는 독립 실행형 응용 프로그램을 계측하도록 구성된 경우 해당 응용 프로그램도 계측될 수 있습니다. 독립 실행형 응용 프로그램의 경우에도 .NET 에이전트를 제어하기 위한 IIS 프로세스는 유사합니다. 하지만 Windows 운영 체제에서 독립 실행형 응용 프로그램을 부트스트랩할 수 있기 때문에 1 단계와 2 단계는 생략됩니다.
.NET 에이전트 인스턴스화 및 IIS 작업자 프로세스
.NET 에이전트는 모니터링할 관리되는 .NET 응용 프로그램을 호스트하는 각 시스템에 설치합니다. .NET 에이전트 시작 시 CLR의 기본 도메인에 대해 에이전트 인스턴스 하나가 생성됩니다. CLR에서 실행되는 각 응용 프로그램에 대해서도 .NET 에이전트 인스턴스가 하나씩 만들어집니다.
다음 그림에서는 관리되는 ASP.NET 응용 프로그램을 보여 줍니다. 이 응용 프로그램에서는 .NET 에이전트 하나가 시작된 각 도메인마다 IIS 작업자 프로세스가 하나씩 있습니다.

다음 그림에서는 여러 .NET 응용 프로그램이 IIS 응용 프로그램 풀로 그룹화된 상황을 보여 줍니다. 응용 프로그램 풀은 단일 작업자 프로세스를 공유합니다. 기본 도메인에는 .NET 에이전트가 하나 있습니다. 응용 프로그램 풀의 각 응용 프로그램에도 .NET 에이전트가 있습니다.

일부 조직에서는 확장성 문제 때문에 응용 프로그램 하나에 여러 개의 작업자 프로세스를 할당할 수 있습니다. 따라서 기본 도메인에 대해 .NET 에이전트 인스턴스 하나가 생성됩니다. 또한 해당 응용 프로그램과 연결된 각 작업자 프로세스에 대해 추가 도메인이 생성됩니다. 다음 그림에서는 가장 일반적인 구성을 보여 줍니다.

작업자 프로세스가 여러 개 있는 경우에는 여러 개의 .NET 에이전트가 관리되는 단일 응용 프로그램과 연결됩니다. 이 경우 해당 에이전트를 가상 에이전트로 구성하십시오. 이와 같이 구성하면 물리적 .NET 에이전트 여러 개의 메트릭을 집계할 수 있습니다.
기본 도메인의 .NET 에이전트 인스턴스
CLR 기본 도메인에 대해 .NET 에이전트가 항상 생성됩니다. 기본적으로 기본 도메인에 대한 .NET 에이전트는 Enterprise Manager에 연결하지 않습니다. 따라서 Workstation 또는 WebView에서 .NET 에이전트가 Investigator 트리의 노드로 표시되지 않습니다. 그러나 필요한 경우에는 Enterprise Manager에 연결하도록 기본 도메인의 .NET 에이전트를 구성할 수 있습니다. 자세한 내용은 기본 도메인 구성에서 에이전트 속성을 참조하십시오.