종속성은 애플리케이션에서 호출하는 구성 요소로, 일반적으로 HTTP, 데이터베이스 또는 파일 시스템을 사용하여 호출되는 서비스입니다. Application Insights는 종속성 이름과 같은 정보와 함께 종속성 호출 기간 및 실패 여부를 측정합니다. 특정 종속성 호출을 조사하고 요청 및 예외와의 상관 관계를 지정할 수 있습니다.
자동으로 추적되는 종속성
이 섹션은 애플리케이션 코드를 추가로 수정하지 않고도 종속성으로 자동으로 검색되는 종속성 호출 목록에 연결됩니다. Application Insights 애플리케이션 맵 및 트랜잭션 진단 보기에서 이러한 종속성을 시각화합니다.
종속성이 목록에 없으면 수동으로 추적할 수 있습니다. 수동으로 종속성 추적을 참조하세요.
자동 수집된 모든 종속성 목록은 .NET, Java, Node.js 및 Python 애플리케이션에 대한 Azure Monitor OpenTelemetry 추가 및 수정의 언어별 탭을 참조하세요.
자동 종속성 모니터링은 어떻게 작동하나요?
종속성은 원격 분석 수집 방법에 따라 다음 기술 중 하나를 사용하여 자동으로 수집됩니다.
OpenTelemetry 계측 라이브러리는 HTTP, SQL 및 Azure SDK 호출과 같은 종속성을 자동으로 수집하는 데 사용됩니다. 이러한 라이브러리는 지원되는 프레임워크 및 클라이언트 라이브러리에 연결하거나
DiagnosticSource
또는 이와 동등한 메커니즘을 사용합니다.Azure App Services와 같은 지원되는 환경에서 자동 침입은 기본적으로 사용 가능하며, 코드 변경 없이 런타임에 원격 분석 수집기를 삽입합니다.
다른 환경에서 개발자는 Azure.Monitor.OpenTelemetry.* 패키지 및 OpenTelemetry API를 사용하여 수동으로 계측을 구성하여 추적되는 종속성과 보강 또는 필터링 방법을 제어할 수 있습니다.
수동으로 종속성 추적
자동 컬렉션이 요구 사항을 충족하지 않는 경우 종속성을 수동으로 추적할 수 있습니다.
팁 (조언)
새 프로젝트의 경우 유연성과 향후 호환성을 높이기 위해 OpenTelemetry를 사용하는 것이 좋습니다.
종속성을 수동으로 추적하는 방법을 알아보려면 .NET, Java, Node.js 및 Python 애플리케이션에 대한 Azure Monitor OpenTelemetry 추가 및 수정을 참조하세요.
종속성 데이터를 찾을 수 있는 위치
Application Insights의 다음 도구와 보기를 통해 종속성 원격 분석을 쉽게 탐색하고 분석할 수 있습니다.
조회수 | 설명 |
---|---|
애플리케이션 맵 | 애플리케이션의 종속성 및 외부 서비스와의 관계를 시각적으로 표현합니다. |
트랜잭션 진단 | 종속성 호출과 서버 쪽 작업의 상관 관계를 지정하는 엔드 투 엔드 트랜잭션 세부 정보를 표시합니다. |
실패 및 성능 보기의 브라우저 탭 | 클라이언트 브라우저에서 AJAX 호출을 강조 표시합니다. |
오류 및 성능 보기의 서버 탭 | 느리거나 실패한 서버 요청을 자세히 살펴보고 관련 종속성 호출을 검사할 수 있습니다. 종속성에 대한 요청에서 추적하고종속성에 대한 실패한 호출과 관련된 실패한 요청에 대한 예를 참조하세요. |
Azure Monitor 로그 | 종속성 원격 분석에 대한 고급 쿼리 및 분석을 사용하도록 설정합니다. KQL을 사용하여 종속성을 추적하는 예제를 참조하세요. |
느린 요청 진단
각 요청 이벤트는 요청을 처리하는 동안 추적되는 종속성 호출, 예외 및 기타 이벤트와 연결됩니다. 따라서 일부 요청이 잘못 수행되는 경우 종속성의 응답 속도가 느리기 때문인지 여부를 확인할 수 있습니다.
요청에서 종속성까지 추적
왼쪽 성능 탭을 선택하고 맨 위에 있는 종속성 탭을 선택합니다.
전체 아래에서 종속성 이름을 선택합니다. 종속성을 선택하면 해당 종속성의 기간 분포 그래프가 표시됩니다.
오른쪽 하단에서 샘플 단추를 선택합니다. 그런 다음 샘플을 선택하여 엔드투엔드 트랜잭션 세부 정보를 확인합니다.
라이브 사이트 프로파일링
.NET Profiler는 라이브 사이트에 대한 HTTP 호출을 추적하고 가장 긴 시간이 걸린 함수를 코드에 표시합니다.
실패한 요청
실패한 요청은 종속성에 대한 실패한 호출과 연관이 있을 수도 있습니다.
왼쪽 오류 탭을 선택한 다음 맨 위에 있는 종속성 탭을 선택합니다.
여기서 실패한 종속성 수를 확인할 수 있습니다. 실패한 발생에 대한 자세한 정보를 보려면 하단 표에서 종속성 이름을 선택합니다. 전체 트랜잭션 세부 정보를 보려면 오른쪽 하단의 종속성 단추를 선택합니다.
로그(분석)
Kusto 쿼리 언어에서 종속성을 추적할 수 있습니다. 다음은 몇 가지 예입니다.
실패한 종속성 호출을 찾습니다.
dependencies | where success != "True" | take 10
AJAX 호출을 찾습니다.
dependencies | where client_Type == "Browser" | take 10
요청과 연관된 종속성 호출을 찾습니다.
dependencies | where timestamp > ago(1d) and client_Type != "Browser" | join (requests | where timestamp > ago(1d)) on operation_Id
페이지 보기와 관련된 AJAX 호출을 찾습니다.
dependencies | where timestamp > ago(1d) and client_Type == "Browser" | join (browserTimings | where timestamp > ago(1d)) on operation_Id
오픈 소스 SDK
모든 Application Insights SDK와 마찬가지로 종속성 컬렉션 모듈 또한 오픈 소스입니다. 공식 GitHub 리포지토리에서 코드를 읽고 참여하거나 문제를 보고합니다.
다음 단계
- 종속성 추적 FAQ에서 자주 묻는 질문을 검토합니다.
- Application Insights에 대한 데이터 모델을 참조하세요.
- Application Insights에서 지원되는 플랫폼을 확인합니다.