Application Insights 원격 분석 데이터 모델
Application Insights는 애플리케이션의 성능과 사용을 분석할 수 있도록 웹 애플리케이션에서 Azure Portal로 원격 분석을 보냅니다. 원격 분석 모델은 플랫폼 및 언어 독립적인 모니터링을 만들 수 있도록 표준화되었습니다.
Application Insights에서 수집한 데이터를 통해 다음과 같은 일반적인 애플리케이션 실행 패턴을 모델링합니다.
다음 유형의 원격 분석을 사용하여 앱 실행을 모니터링합니다. 앱 애플리케이션 프레임워크의 Application Insights SDK는 다음과 같은 세 가지 유형을 자동으로 수집합니다.
요청: 앱에서 받은 요청을 기록하기 위해 생성됩니다. 예를 들어 Application Insights 웹 SDK는 웹앱에서 받은 각 HTTP 요청에 대한 요청 원격 분석 항목을 자동으로 생성합니다.
작업은 요청을 처리하는 실행 스레드로 구성됩니다. 또한 코드를 작성하여 정기적으로 데이터를 처리하는 웹 작업 또는 함수의 "절전 모드 해제"와 같은 다른 유형의 작업을 모니터링할 수 있습니다. 각 작업에는 ID가 있습니다. ID를 사용하여 앱에서 요청을 처리하는 동안 생성된 모든 원격 분석을 그룹화할 수 있습니다. 각 작업은 성공하거나 실패하며 일정 기간 동안 지속됩니다.
예외: 일반적으로 작업이 실패하게 하는 예외를 나타냅니다.
종속성: REST API 또는 SQL과 같은 외부 서비스나 스토리지에 대한 앱의 호출을 나타냅니다. ASP.NET에서 SQL에 대한 종속성 호출은
System.Data
으로 정의됩니다. HTTP 엔드포인트에 대한 호출은System.Net
으로 정의됩니다.
Application Insights는 사용자 지정 원격 분석을 위한 데이터 형식으로 다음 세 가지 형식을 제공합니다.
- 추적:
Log4Net
또는System.Diagnostics
와 같이 친숙한 계측 프레임워크를 사용하는 진단 로깅을 구현하는 데 직접 사용되거나 어댑터를 통해 사용됩니다. - 이벤트: 일반적으로 사용 패턴을 분석하기 위해 서비스와 사용자 간의 상호 작용을 캡처하는 데 사용됩니다.
- 메트릭: 정기적인 스칼라 측정을 보고하는 데 사용됩니다.
모든 원격 분석 항목은 애플리케이션 버전 또는 사용자 세션 ID와 같은 컨텍스트 정보를 정의할 수 있습니다. 컨텍스트는 특정 시나리오를 차단 해제하는 강력한 형식의 필드 집합입니다. 애플리케이션 버전이 올바르게 초기화된 경우 Application Insights는 재배포와 상호 관련된 애플리케이션 동작에서 새 패턴을 검색할 수 있습니다.
세션 ID를 사용하여 중단 또는 사용자에게 미치는 문제 영향을 계산할 수 있습니다. 실패한 특정 종속성, 오류 추적 또는 중요한 예외에 대한 세션 ID 값의 고유 개수를 계산하면 영향을 쉽게 이해할 수 있습니다.
Application Insights 원격 분석 모델은 원격 분석과 해당 분석에 속하는 작업 간의 상관 관계를 지정하는 방법을 정의합니다. 예를 들어 요청은 SQL Database 호출을 수행하고 기록된 진단 정보를 작성할 수 있습니다. 요청 원격 분석과 다시 연결할 해당 원격 분석 항목에 대한 상관 관계 컨텍스트를 설정할 수 있습니다.
향상된 스키마
Application Insights 데이터 모델은 애플리케이션 원격 분석을 모델링하는 기본적이면서도 강력한 방법입니다. 처음에는 기본 시나리오를 지원할 수 있게 단순하고 간단한 모델을 구현한 후 고급 사용을 위해 스키마를 확장할 수 있도록 합니다.
데이터 모델 또는 스키마 문제와 제안 사항을 보고하려면 GitHub 리포지토리를 사용합니다.
요청
Application Insights에서 요청 원격 분석 항목은 애플리케이션에 대한 외부 요청으로 트리거되는 실행의 논리적 순서를 나타냅니다. 모든 요청 실행은 모든 실행 매개 변수를 포함하는 고유한 id
및 url
로 식별됩니다.
논리적 name
으로 요청을 그룹화하고 이 요청의 source
를 정의할 수 있습니다. 코드 실행으로 success
또는 fail
이 발생할 수 있으며 특정 duration
동안 지속됩니다. resultCode
를 사용하여 성공 및 실패 실행을 추가로 그룹화할 수 있습니다. 봉투 (envelope) 수준에 정의된 요청 원격 분석의 시작 시간입니다.
요청 원격 분석은 사용자 지정 properties
및 measurements
를 사용하여 표준 확장성 모델을 지원합니다.
참고 항목
2025년 3월 31일에 계측 키 수집에 대한 지원이 종료됩니다. 계측 키 수집은 계속 작동하지만 더 이상 기능에 대한 업데이트 또는 지원을 제공하지 않습니다. 연결 문자열로 전환하여 새로운 기능을 활용합니다.
이름
이 필드는 요청의 이름이며 요청을 처리하는 데 사용된 코드 경로를 나타냅니다. 더 나은 요청 그룹화를 허용하는 낮은 카디널리티 값입니다. HTTP 요청의 경우 HTTP 메서드 및 실제 id
값이 없는 GET /values/{id}
와 같은 URL 경로 템플릿을 나타냅니다.
Application Insights 웹 SDK는 요청 이름을 대/소문자를 바꾸지 않고 “있는 그대로” 전송합니다. UI의 그룹화는 대/소문자를 구분하므로 GET /Home/Index
와 GET /home/INDEX
는 동일한 컨트롤러 및 작업 실행을 발생하더라도 다른 것으로 계산됩니다. 그 이유는 URL이 일반적으로 대/소문자를 구분하기 때문입니다. 대문자로 입력한 URL에 대해 모든 404
오류가 발생하는지 확인하고 싶을 수 있습니다. 블로그 게시물에서 ASP.NET Web SDK의 요청 이름 컬렉션에 대한 자세한 내용을 확인할 수 있습니다.
최대 길이: 1,024자
ID
ID는 요청 호출 인스턴스의 식별자입니다. 요청 및 기타 원격 분석 항목 간 상관 관계에 사용됩니다. ID는 전역적으로 고유해야 합니다. 자세한 내용은 Application Insights에서 원격 분석 상관 관계를 참조하세요.
최대 길이: 128자
URL
URL은 모든 쿼리 문자열 매개 변수를 사용하는 요청 URL입니다.
최대 길이: 2,048자
원본
원본은 요청의 원본입니다. 호출자의 계측 키 또는 호출자의 IP 주소를 예로 들 수 있습니다. 자세한 내용은 Application Insights에서 원격 분석 상관 관계를 참조하세요.
최대 길이: 1,024자
기간
요청 기간의 형식은 DD.HH:MM:SS.MMMMMM
입니다. 1000
일보다 작은 양수여야 합니다. 요청 원격 분석은 처음과 끝이 있는 작업을 나타내므로 이 필드는 필수입니다.
응답 코드
응답 코드는 요청 실행의 결과입니다. HTTP 요청에 대한 HTTP 상태 코드입니다. 다른 요청 형식에 대한 HRESULT
값 또는 예외 형식일 수 있습니다.
최대 길이: 1,024자
Success
성공은 호출이 성공했는지 또는 실패했는지를 나타냅니다. 이 필드는 필수 필드입니다. 명시적으로 false
로 설정되지 않은 경우 요청이 성공으로 간주됩니다. 예외 또는 반환된 오류 결과 코드로 인해 작업이 중단된 경우 이 값을 false
로 설정합니다.
웹 애플리케이션의 경우 응답 코드가 400
보다 작거나 401
과 같은 경우 Application Insights는 요청을 성공한 것으로 정의합니다. 그러나 기본 매핑이 애플리케이션의 의미 체계와 일치하지 않는 경우가 있습니다.
응답 코드 404
는 정규 흐름의 일부일 수 있는 "기록 없음"을 나타낼 수 있습니다. 또한 끊어진 연결을 나타낼 수도 있습니다. 끊어진 연결의 경우 좀 더 고급 논리를 구현할 수도 있습니다. 끊어진 연결이 동일한 사이트에 있는 경우에만 URL 참조를 분석하여 실패로 표시할 수 있습니다. 또는 회사의 모바일 애플리케이션에서 액세스할 때 실패로 표시합니다. 마찬가지로 301
및 302
는 리디렉션을 지원하지 않는 클라이언트에서 액세스될 때 실패를 나타냅니다.
부분적으로 수락된 콘텐츠 206
은 전체 요청의 실패를 나타낼 수 있습니다. 예를 들어 Application Insights 엔드포인트는 원격 분석 항목의 일괄 처리를 단일 요청으로 받습니다. 일괄 처리의 일부 항목이 성공적으로 처리되지 않으면 206
을 반환합니다. 206
비율이 늘어나면 조사해야 하는 문제가 발생했음을 나타냅니다. 성공이 별도 응답 코드 측면에서는 더 나쁠 수 있는 207
다중 상태에도 유사한 논리가 적용됩니다.
사용자 지정 속성
사용자 지정 속성의 이름-값 컬렉션: 이 컬렉션은 사용자 지정 크기로 표준 원격 분석을 확장하는 데 사용됩니다. 주문 번호 같은 원격 분석 또는 원격 분석 항목 관련 속성을 생성하는 배포 슬롯을 예로 들 수 있습니다.
- 최대 키 길이: 150
- 최대 값 길이: 8,192
사용자 지정 측정
사용자 지정 측정 컬렉션: 이 컬렉션을 사용하여 원격 분석 항목과 연결된 명명된 측정값을 보고합니다. 일반적인 사용 사례는 다음과 같습니다.
- 종속성 원격 분석 페이로드의 크기입니다.
- 요청 원격 분석에서 처리한 큐 항목의 수입니다.
- 고객이 이벤트 원격 분석을 완료하는 마법사 단계를 완료하는 데 걸린 시간입니다.
애플리케이션 분석에서 사용자 지정 측정값을 쿼리할 수 있습니다.
customEvents
| where customMeasurements != ""
| summarize avg(todouble(customMeasurements["Completion Time"]) * itemCount)
참고 항목
- 사용자 지정 측정값은 현재 소속된 원격 분석 항목과 연결됩니다. 이들은 이러한 측정값이 포함된 원격 분석 항목을 사용하여 샘플링됩니다. 다른 원격 분석 유형과 독립적 관계에 있는 측정값을 추적하려면 메트릭 원격 분석을 사용합니다.
- 사용자 지정 측정에는 문자열 값을 사용하지 마세요. 숫자 값만 지원됩니다.
최대 키 길이: 150
Dependency
Application Insights에서 종속성 원격 분석은 모니터링되는 구성 요소와 원격 구성 요소(예: SQL 또는 HTTP 엔드포인트)의 상호 작용을 나타냅니다.
이름
이 필드는 이 종속성 호출로 시작된 명령의 이름입니다. 카디널리티 값이 낮습니다. 예로는 저장 프로시저 이름 및 URL 경로 템플릿이 있습니다.
ID
ID는 종속성 호출 인스턴스의 식별자입니다. 이 종속성 호출에 해당하는 요청 원격 분석 항목과의 상관 관계에 사용됩니다. 자세한 내용은 Application Insights에서 원격 분석 상관 관계를 참조하세요.
데이터
이 필드는 이 종속성 호출에서 시작하는 명령입니다. 예로 모든 쿼리 매개 변수를 포함하는 SQL 문 및 HTTP URL을 들 수 있습니다.
Type
이 필드는 종속성 형식 이름입니다. 종속성의 논리적 그룹화 및 다른 필드(예: commandName
및 resultCode
)의 해석에 위한 낮은 카디널리티 값을 갖습니다. 예로 SQL, Azure 테이블 및 HTTP를 들 수 있습니다.
대상
이 필드는 종속성 호출의 대상 사이트입니다. 예를 들어 서버 이름, 호스트 주소가 있습니다. 자세한 내용은 Application Insights에서 원격 분석 상관 관계를 참조하세요.
기간
요청 기간은 DD.HH:MM:SS.MMMMMM
형식입니다. 1000
일보다 작아야 합니다.
결과 코드
이 필드는 종속성 호출의 결과 코드입니다. 예로 SQL 오류 코드 및 HTTP 상태 코드를 들 수 있습니다.
Success
이 필드는 성공 또는 실패 호출의 표시입니다.
사용자 지정 속성
사용자 지정 속성의 이름-값 컬렉션: 이 컬렉션은 사용자 지정 크기로 표준 원격 분석을 확장하는 데 사용됩니다. 주문 번호 같은 원격 분석 또는 원격 분석 항목 관련 속성을 생성하는 배포 슬롯을 예로 들 수 있습니다.
- 최대 키 길이: 150
- 최대 값 길이: 8,192
사용자 지정 측정
사용자 지정 측정 컬렉션: 이 컬렉션을 사용하여 원격 분석 항목과 연결된 명명된 측정값을 보고합니다. 일반적인 사용 사례는 다음과 같습니다.
- 종속성 원격 분석 페이로드의 크기입니다.
- 요청 원격 분석에서 처리한 큐 항목의 수입니다.
- 고객이 이벤트 원격 분석을 완료하는 마법사 단계를 완료하는 데 걸린 시간입니다.
애플리케이션 분석에서 사용자 지정 측정값을 쿼리할 수 있습니다.
customEvents
| where customMeasurements != ""
| summarize avg(todouble(customMeasurements["Completion Time"]) * itemCount)
참고 항목
- 사용자 지정 측정값은 현재 소속된 원격 분석 항목과 연결됩니다. 이들은 이러한 측정값이 포함된 원격 분석 항목을 사용하여 샘플링됩니다. 다른 원격 분석 유형과 독립적 관계에 있는 측정값을 추적하려면 메트릭 원격 분석을 사용합니다.
- 사용자 지정 측정에는 문자열 값을 사용하지 마세요. 숫자 값만 지원됩니다.
최대 키 길이: 150
예외
Application Insights에서 예외 인스턴스는 모니터링되는 애플리케이션을 실행하는 동안 발생하여 처리되거나 처리되지 않은 예외를 나타냅니다.
문제 ID
문제 ID는 코드에서 예외가 throw된 위치를 식별합니다. 예외 그룹화에 사용됩니다. 일반적으로 예외 형식과 호출 스택 기반 함수의 조합입니다.
최대 길이: 1,024자
심각도 수준
이 필드는 추적 심각도 수준입니다. 값은 Verbose
, Information
, Warning
, Error
또는 Critical
일 수 있습니다.
예외 세부 정보
(확장 예정임)
사용자 지정 속성
사용자 지정 속성의 이름-값 컬렉션: 이 컬렉션은 사용자 지정 크기로 표준 원격 분석을 확장하는 데 사용됩니다. 주문 번호 같은 원격 분석 또는 원격 분석 항목 관련 속성을 생성하는 배포 슬롯을 예로 들 수 있습니다.
- 최대 키 길이: 150
- 최대 값 길이: 8,192
사용자 지정 측정
사용자 지정 측정 컬렉션: 이 컬렉션을 사용하여 원격 분석 항목과 연결된 명명된 측정값을 보고합니다. 일반적인 사용 사례는 다음과 같습니다.
- 종속성 원격 분석 페이로드의 크기입니다.
- 요청 원격 분석에서 처리한 큐 항목의 수입니다.
- 고객이 이벤트 원격 분석을 완료하는 마법사 단계를 완료하는 데 걸린 시간입니다.
애플리케이션 분석에서 사용자 지정 측정값을 쿼리할 수 있습니다.
customEvents
| where customMeasurements != ""
| summarize avg(todouble(customMeasurements["Completion Time"]) * itemCount)
참고 항목
- 사용자 지정 측정값은 현재 소속된 원격 분석 항목과 연결됩니다. 이들은 이러한 측정값이 포함된 원격 분석 항목을 사용하여 샘플링됩니다. 다른 원격 분석 유형과 독립적 관계에 있는 측정값을 추적하려면 메트릭 원격 분석을 사용합니다.
- 사용자 지정 측정에는 문자열 값을 사용하지 마세요. 숫자 값만 지원됩니다.
최대 키 길이: 150
Trace
Application Insights에서 추적 원격 분석은 텍스트를 검색하는 printf
스타일 추적 문을 나타냅니다. Log4Net
, NLog
및 기타 텍스트 기반 로그 파일 항목이 이 형식의 인스턴스로 변환됩니다. 추적에는 확장 기능으로 사용할 측정이 없습니다.
메시지
추적 메시지입니다.
최대 길이: 32,768자
심각도 수준
추적 심각도 수준입니다.
값: Verbose
, Information
, Warning
, Error
및 Critical
사용자 지정 속성
사용자 지정 속성의 이름-값 컬렉션: 이 컬렉션은 사용자 지정 크기로 표준 원격 분석을 확장하는 데 사용됩니다. 주문 번호 같은 원격 분석 또는 원격 분석 항목 관련 속성을 생성하는 배포 슬롯을 예로 들 수 있습니다.
- 최대 키 길이: 150
- 최대 값 길이: 8,192
이벤트
Application Insights에서 이벤트 원격 분석 항목을 만들어 애플리케이션에서 발생한 이벤트를 나타낼 수 있습니다. 일반적으로 단추 클릭 또는 주문 체크 아웃과 같은 사용자 상호 작용입니다. 초기화 또는 구성 업데이트와 같은 애플리케이션 수명 주기 이벤트일 수도 있습니다.
의미상 이벤트는 요청과 상호 관련되거나 그렇지 않을 수 있습니다. 제대로 사용될 경우 이벤트 원격 분석은 요청이나 추적보다 더 중요합니다. 이벤트는 비즈니스 원격 분석을 나타내며, 별도의 덜 공격적인 샘플링의 대상이어야 합니다.
이름
이벤트 이름: 적절한 그룹화 및 유용한 메트릭을 허용하려면 적은 수의 별도 이벤트 이름을 생성하도록 애플리케이션을 제한합니다. 예를 들어 생성된 이벤트 인스턴스마다 별도의 이름을 사용하지 않습니다.
최대 길이: 512자
사용자 지정 속성
사용자 지정 속성의 이름-값 컬렉션: 이 컬렉션은 사용자 지정 크기로 표준 원격 분석을 확장하는 데 사용됩니다. 주문 번호 같은 원격 분석 또는 원격 분석 항목 관련 속성을 생성하는 배포 슬롯을 예로 들 수 있습니다.
- 최대 키 길이: 150
- 최대 값 길이: 8,192
사용자 지정 측정
사용자 지정 측정 컬렉션: 이 컬렉션을 사용하여 원격 분석 항목과 연결된 명명된 측정값을 보고합니다. 일반적인 사용 사례는 다음과 같습니다.
- 종속성 원격 분석 페이로드의 크기입니다.
- 요청 원격 분석에서 처리한 큐 항목의 수입니다.
- 고객이 이벤트 원격 분석을 완료하는 마법사 단계를 완료하는 데 걸린 시간입니다.
애플리케이션 분석에서 사용자 지정 측정값을 쿼리할 수 있습니다.
customEvents
| where customMeasurements != ""
| summarize avg(todouble(customMeasurements["Completion Time"]) * itemCount)
참고 항목
- 사용자 지정 측정값은 현재 소속된 원격 분석 항목과 연결됩니다. 이들은 이러한 측정값이 포함된 원격 분석 항목을 사용하여 샘플링됩니다. 다른 원격 분석 유형과 독립적 관계에 있는 측정값을 추적하려면 메트릭 원격 분석을 사용합니다.
- 사용자 지정 측정에는 문자열 값을 사용하지 마세요. 숫자 값만 지원됩니다.
최대 키 길이: 150
메트릭
Application Insights는 단일 측정 및 미리 집계된 메트릭이라는 두 가지 유형의 메트릭 원격 분석을 지원합니다. 단일 측정은 이름 및 값만 포함합니다. 미리 집계된 메트릭은 집계 간격에서 메트릭의 최소값 및 최대값과 해당 표준 편차를 지정합니다.
미리 집계된 메트릭 원격 분석은 집계 기간을 1분으로 가정합니다.
Application Insights는 잘 알려진 몇 가지 메트릭 이름을 지원합니다. 이러한 메트릭은 performanceCounters
테이블에 배치됩니다.
다음 표에서는 시스템 및 프로세스 카운터를 나타내는 메트릭을 보여 줍니다.
.NET 이름 | 플랫폼에 구애받지 않은 이름 | 설명 |
---|---|---|
\Processor(_Total)\% Processor Time |
진행 중인 작업... | 총 컴퓨터 CPU. |
\Memory\Available Bytes |
진행 중인 작업... | 컴퓨터에서 실행 중인 프로세스를 사용할 수 있는 실제 메모리 양을 바이트로 보여줍니다. 0으로 초기화된 사용 가능한 대기 메모리 목록의 공간 양을 합하여 계산됩니다. 사용 가능한 메모리를 사용할 준비가 되었습니다. 0으로 초기화된 메모리는 이후 프로세스가 이전 프로세스에서 사용한 데이터를 볼 수 없도록 0으로 채워진 메모리 페이지로 구성됩니다. 대기 메모리는 디스크로 가는 도중에 프로세스의 작업 집합(실제 메모리)에서 제거되었지만 여전히 회수할 수 있는 메모리입니다. 메모리 개체를 참조하세요. |
\Process(??APP_WIN32_PROC??)\% Processor Time |
진행 중인 작업... | 애플리케이션을 호스트하는 프로세스의 CPU. |
\Process(??APP_WIN32_PROC??)\Private Bytes |
진행 중인 작업... | 애플리케이션을 호스트하는 프로세스에 사용되는 메모리. |
\Process(??APP_WIN32_PROC??)\IO Data Bytes/sec |
진행 중인 작업... | 애플리케이션을 호스트하는 프로세스에서 실행하는 I/O 작업 속도입니다. |
\ASP.NET Applications(??APP_W3SVC_PROC??)\Requests/Sec |
진행 중인 작업... | 애플리케이션에서 처리되는 요청 속도입니다. |
\.NET CLR Exceptions(??APP_CLR_PROC??)\# of Exceps Thrown / sec |
진행 중인 작업... | 애플리케이션에서 throw하는 예외 비율입니다. |
\ASP.NET Applications(??APP_W3SVC_PROC??)\Request Execution Time |
진행 중인 작업... | 평균 요청 실행 시간. |
\ASP.NET Applications(??APP_W3SVC_PROC??)\Requests In Application Queue |
진행 중인 작업... | 큐에서 처리를 대기 중인 요청 수입니다. |
메트릭 REST API에 대한 자세한 내용은 메트릭 - 가져오기를 참조하세요.
이름
이 필드는 Application Insights 포털 및 UI에 표시하려는 메트릭의 이름입니다.
값
이 필드는 측정을 위한 단일 값입니다. 집계의 개별 측정값의 합계입니다.
Count
이 필드는 집계된 메트릭의 메트릭 가중치입니다. 측정을 위해 설정해서는 안 됩니다.
Min
이 필드는 집계된 메트릭의 최소값입니다. 측정을 위해 설정해서는 안 됩니다.
최대
이 필드는 집계된 메트릭의 최대값입니다. 측정을 위해 설정해서는 안 됩니다.
표준 편차
이 필드는 집계된 메트릭의 표준 편차입니다. 측정을 위해 설정해서는 안 됩니다.
사용자 지정 속성
사용자 지정 속성 CustomPerfCounter
가 true
로 설정된 메트릭은 해당 메트릭이 Windows 성능 카운터를 나타냄을 표시합니다. 이러한 메트릭은 customMetrics
가 아닌 performanceCounters
테이블에 배치됩니다. 또한 이 메트릭의 이름은 구문 분석하여 범주, 카운터 및 인스턴스 이름을 추출합니다.
사용자 지정 속성의 이름-값 컬렉션: 이 컬렉션은 사용자 지정 크기로 표준 원격 분석을 확장하는 데 사용됩니다. 주문 번호 같은 원격 분석 또는 원격 분석 항목 관련 속성을 생성하는 배포 슬롯을 예로 들 수 있습니다.
- 최대 키 길이: 150
- 최대 값 길이: 8,192
PageView
Application Insights의 PageView 원격 분석은 애플리케이션 사용자가 모니터링되는 애플리케이션의 새 페이지를 열 때 기록됩니다. 이 컨텍스트의 Page
는 개발자가 애플리케이션 탭 또는 화면으로 정의한 논리적 단위이며 브라우저 웹 페이지 로드 또는 새로 고침 작업과 반드시 상관 관계가 있는 것은 아닙니다. 이러한 구분은 페이지 간 전환이 브라우저 페이지 작업에 연결되지 않은 SPA(단일 페이지 애플리케이션)의 컨텍스트에서 더 자세히 이해할 수 있습니다. pageViews.duration
은 애플리케이션이 사용자에게 페이지를 표시하는 데 걸리는 시간입니다.
참고 항목
- 기본적으로 Application Insights SDK는 브라우저 타이밍에 따라 채워진
pageViews.duration
이 포함된 각 브라우저 웹 페이지 로드 작업에 단일PageView
이벤트를 기록합니다. 개발자는 trackPageView API 호출을 사용하여PageView
이벤트의 추가 추적을 확장할 수 있습니다. - 기본 로그 보존 기간은 30일입니다. 더 긴 기간 동안
PageView
통계를 보려면 설정을 조정해야 합니다.
Application Insights에서 browserTiming 측정
최신 브라우저는 성능 API를 사용하여 페이지 로드 작업에 대한 측정값을 노출합니다. Application Insights는 관련 다음 처리 시간에 정의에 정의된 대로 관련 타이밍을 표준 브라우저 메트릭으로 통합하여 이러한 측정을 간소화합니다.
클라이언트 <--> DNS: 클라이언트가 DNS에 연결하여 웹 사이트 호스트 이름을 확인하고 DNS는 IP 주소로 응답합니다.
클라이언트 <--> 웹 서버: 클라이언트는 TCP를 만든 다음, 웹 서버와 TLS 핸드셰이크를 만듭니다.
클라이언트 <--> 웹 서버: 클라이언트는 요청 페이로드를 보내고, 서버가 요청을 실행할 때까지 대기하고, 첫 번째 응답 패킷을 수신합니다.
클라이언트 <-- 웹 서버: 클라이언트는 웹 서버에서 나머지 응답 페이로드 바이트를 받습니다.
클라이언트: 이제 클라이언트에는 전체 응답 페이로드가 있으며 콘텐츠를 브라우저에 렌더링하고 DOM을 로드해야 합니다.
browserTimings/networkDuration
= #1 + #2browserTimings/sendDuration
= #3browserTimings/receiveDuration
= #4browserTimings/processingDuration
= #5browsertimings/totalDuration
= #1 + #2 + #3 + #4 + #5pageViews/duration
PageView
기간은 브라우저의 성능 타이밍 인터페이스인PerformanceNavigationTiming.duration
에서 가져옵니다.PerformanceNavigationTiming
을 사용할 수 있는 경우 해당 기간이 사용됩니다.그렇지 않은 경우 사용되지 않는
PerformanceTiming
인터페이스가 사용되고NavigationStart
과(와)LoadEventEnd
사이의 델타가 계산됩니다.개발자는 trackPageView API 호출을 사용하여 사용자 지정
PageView
이벤트를 로깅할 때 기간 값을 지정합니다.
Context
모든 원격 분석 항목에는 강력한 형식의 컨텍스트 필드가 있을 수 있습니다. 모든 필드는 특정 모니터링 시나리오를 지원합니다. 사용자 지정 속성 컬렉션을 사용하여 사용자 지정 또는 애플리케이션별 컨텍스트 정보를 저장합니다.
애플리케이션 버전
애플리케이션 컨텍스트 필드의 정보는 항상 원격 분석을 전송하는 애플리케이션과 관련이 있습니다. 애플리케이션 버전은 애플리케이션 동작 및 배포 상관 관계의 추세 변경을 분석하는 데 사용됩니다.
최대 길이: 1,024
클라이언트 IP 주소
이 필드는 클라이언트 디바이스의 IP 주소입니다. IPv4 및 IPv6이 지원됩니다. 원격 분석이 서비스에서 전송되는 경우 위치 컨텍스트는 서비스에서 작업을 시작한 사용자와 관련이 있습니다. Application Insights는 클라이언트 IP에서 지리적 위치 정보를 추출한 다음 자릅니다. 클라이언트 IP 자체는 사용자 식별 정보로 사용할 수 없습니다.
최대 길이: 46
디바이스 유형
원래 이 필드는 애플리케이션의 사용자가 사용하는 디바이스의 유형을 나타내는 데 사용되었습니다. 현재는 디바이스 유형이 Browser
인 JavaScript 원격 분석과 디바이스 유형이 PC
인 서버 쪽 원격 분석을 구분하는 데 주로 사용됩니다.
최대 길이: 64
작업 ID
이 필드는 루트 작업의 고유 식별자입니다. 이 식별자를 사용하면 여러 구성 요소에서 원격 분석을 그룹화할 수 있습니다. 자세한 내용은 원격 분석 상관 관계를 참조하세요. 작업 ID는 요청 또는 페이지 보기에서 생성됩니다. 다른 모든 원격 분석은 이 필드를 포함 요청 또는 페이지 보기의 값으로 설정합니다.
최대 길이: 128
부모 작업 ID
이 필드는 원격 분석 항목의 직속 부모 항목의 고유 식별자입니다. 자세한 내용은 원격 분석 상관 관계를 참조하세요.
최대 길이: 128
작업 이름
이 필드는 작업의 이름(그룹)입니다. 작업 이름은 요청 또는 페이지 보기에서 생성됩니다. 다른 모든 원격 분석 항목은 이 필드를 포함 요청 또는 페이지 보기의 값으로 설정합니다. 작업 이름은 작업 그룹에 대한 모든 원격 분석 항목을 찾는 데 사용됩니다(예: GET Home/Index
). 이 컨텍스트 속성은 이 페이지에서 발생하는 일반적인 예외와 같은 질문에 답변하는 데 사용됩니다.
최대 길이: 1,024
작업의 가상 원본
이 필드는 가상 원본의 이름입니다. 애플리케이션의 일부 원격 분석은 가상 트래픽을 나타낼 수 있습니다. 웹 사이트를 인덱싱하는 웹 크롤러, 사이트 가용성 테스트 또는 Application Insights SDK 자체와 같은 진단 라이브러리의 추적일 수 있습니다.
최대 길이: 1,024
세션 ID
세션 ID는 사용자와 앱의 상호 작용 인스턴스입니다. 세션 컨텍스트 필드의 정보는 항상 사용자에 관한 것입니다. 원격 분석이 서비스에서 전송되는 경우 서비스 컨텍스트는 서비스에서 작업을 시작한 사용자와 관련이 있습니다.
최대 길이: 64
익명 사용자 ID
익명 사용자 ID(User.Id)는 애플리케이션의 사용자를 나타냅니다. 원격 분석이 서비스에서 전송되는 경우 사용자 컨텍스트는 서비스에서 작업을 시작한 사용자와 관련이 있습니다.
샘플링은 수집된 원격 분석의 양을 최소화하는 기술 중 하나입니다. 샘플링 알고리즘은 상관 관계가 지정된 모든 원격 분석을 샘플링합니다. 익명 사용자 ID는 샘플링 점수 생성에 사용되므로 익명 사용자 ID는 충분히 임의의 값이어야 합니다.
참고 항목
익명 사용자 ID의 수는 고유 애플리케이션 사용자의 수와 동일하지 않습니다. 익명 사용자 ID의 수는 일반적으로 사용자가 다른 디바이스나 브라우저에서 앱을 열거나 브라우저 쿠키를 정리할 때마다 새로운 고유한 익명 사용자 ID가 할당되기 때문에 더 높습니다. 이 계산으로 인해 동일한 실제 사용자가 여러 번 계산될 수 있습니다.
사용자 ID를 세션 ID와 상호 참조하여 고유한 원격 분석 차원을 제공하고 세션 기간 동안 사용자 활동을 설정할 수 있습니다.
익명 사용자 ID를 사용하여 사용자 이름을 저장하는 것은 필드를 잘못 사용하는 것입니다. 인증된 사용자 ID를 사용합니다.
최대 길이: 128
인증된 사용자 ID
인증된 사용자 ID는 익명 사용자 ID와 반대입니다. 이 필드는 식별 이름으로 사용자를 나타냅니다. 이 ID는 기본적으로 ASP.NET Framework SDK의 AuthenticatedUserIdTelemetryInitializer
를 통해서만 수집됩니다.
Application Insights SDK를 사용하여 인증된 사용자 ID를 브라우저와 디바이스에서 지속적으로 사용자를 식별하는 값으로 초기화합니다. 이러한 방식으로 모든 원격 분석 항목은 해당 고유 ID에 귀속됩니다. 이 ID를 통해 특정 사용자에 대해 수집된 모든 원격 분석에 대해 쿼리할 수 있습니다(샘플링 구성 및 원격 분석 필터링에 따름).
사용자 ID를 세션 ID와 상호 참조하여 고유한 원격 분석 차원을 제공하고 세션 기간 동안 사용자 활동을 설정할 수 있습니다.
최대 길이: 1,024
계정 ID
다중 테넌트 애플리케이션에서 계정 ID는 사용자가 작업하는 테넌트 계정 ID 또는 이름입니다. 사용자 ID와 인증된 사용자 ID가 충분하지 않을 때 더 많은 사용자 세분화에 사용됩니다. Azure Portal의 구독 ID 또는 블로깅 플랫폼의 블로그 이름을 예로 들 수 있습니다.
최대 길이: 1,024
클라우드 역할
이 필드는 애플리케이션이 속한 역할의 이름입니다. Azure에서 역할 이름에 직접 매핑됩니다. 단일 애플리케이션의 일부인 마이크로 서비스를 구별하는 데 사용될 수도 있습니다.
최대 길이: 256
클라우드 역할 인스턴스
이 필드는 애플리케이션이 실행 중인 인스턴스의 이름입니다. 예를 들어, 온-프레미스의 컴퓨터 이름 또는 Azure의 인스턴스 이름입니다.
최대 길이: 256
내부: SDK 버전
자세한 내용은 SDK 버전을 참조하세요.
최대 길이: 64
내부: 노드 이름
이 필드는 요금 청구에 사용되는 노드 이름을 나타냅니다. 이를 사용하여 노드의 표준 검색을 재정의할 수 있습니다.
최대 길이: 256
자주 묻는 질문
이 섹션에서는 일반적인 질문에 대한 답변을 제공합니다.
모니터링 캠페인의 영향을 측정하려면 어떻게 해야 하나요?
PageView 원격 분석에는 URL이 포함되며 Kusto의 정규식 함수를 사용하여 UTM 매개 변수를 구문 분석할 수 있습니다.
사용자 또는 엔터프라이즈가 브라우저 설정에서 사용자 에이전트 보내기를 사용하지 않도록 설정하는 경우, 이 데이터가 없거나 정확하지 않을 수 있습니다. UA 파서 정규식에는 모든 디바이스 정보가 포함되지 않을 수도 있습니다. 또는 Application Insights에서 최신 업데이트를 채택하지 않았을 수 있습니다.
사용자 지정 측정이 오류 없이 성공했는데 로그가 표시되지 않는 이유는 무엇인가요?
이는 문자열 값을 사용하는 경우 발생할 수 있습니다. 사용자 지정 측정에서는 숫자 값만 작동합니다.
다음 단계
다음을 포함하여 사용자 지정 이벤트 및 메트릭용 Application Insights API를 사용하는 방법을 알아봅니다.
다음에 대한 종속성 추적을 설정합니다.
자세히 알아보려면 다음을 수행합니다.
- Application Insights에서 지원되는 플랫폼을 확인합니다.
- 표준 컨텍스트 속성 컬렉션 구성을 확인합니다.
- Application Insights에서 .NET 추적 로그를 탐색합니다.
- Application Insights에서 Java 추적 로그를 탐색합니다.
- 함수 실행을 모니터링하기 위해 Application Insights와 Azure Functions 기본 제공 통합에 대해 알아봅니다.
- 자세한 방법 Application Insights를 사용하여 ASP.NET Core 애플리케이션을 구성하는 방법을 알아봅니다.
- Application Insights를 사용하여 웹앱에서 예외를 진단하는 방법을 알아봅니다.
- 원격 분석을 확장 및 필터링하는 방법을 알아봅니다.
- 샘플링을 사용하여 데이터 모델을 기준으로 하는 원격 분석의 양을 최소화합니다.