Application Insights에서 원격 분석 내보내기

원격 분석을 표준 보존 기간보다 더 오래 유지하려고 하나요? 아니면 특수한 방식으로 처리하려고 하나요? 연속 내보내기는 이 용도에 적합합니다. Application Insights 포털에 표시되는 이벤트는 JSON 형식으로 Azure의 스토리지로 내보낼 수 있습니다. 여기에서 데이터를 다운로드하고 프로세스에 필요한 모든 코드를 작성할 수 있습니다.

중요

연속 내보내기를 설정하기 전에 고려하려는 일부 대안이 있습니다.

연속 내보내기를 통해 데이터를 스토리지에 복사한 후 원하는 기간 동안 유지할 수 있으며, 일반적인 보존 기간 동안 Application Insights에서 계속 사용할 수 있습니다.

지원되는 지역

연속 내보내기는 다음 지역에서 지원됩니다.

  • 동남아시아
  • 캐나다 중부
  • 인도 중부
  • 북유럽
  • 영국 남부
  • 오스트레일리아 동부
  • 일본 동부
  • 한국 중부
  • 프랑스 중부
  • 동아시아
  • 미국 서부
  • 미국 중부
  • 미국 동부 2
  • 미국 중남부
  • 미국 서부 2
  • 남아프리카 북부
  • 미국 중북부
  • 브라질 남부
  • 스위스 북부
  • 오스트레일리아 남동부
  • 영국 서부
  • 독일 중서부
  • 스위스 서부
  • 오스트레일리아 중부 2
  • 아랍에미리트 중부
  • 브라질 남동부
  • 오스트레일리아 중부
  • 아랍에미리트 북부
  • 노르웨이 동부
  • 일본 서부

참고

내보내기가 2021년 2월 23일 이전에 구성된 경우에도 연속 내보내기는 미국 동부 및 서유럽의 애플리케이션에 대해 계속 작동합니다. 애플리케이션을 만든 시기에 관계없이 미국 동부 또는 서유럽의 모든 애플리케이션에서 새 연속 내보내기 규칙을 구성할 수 없습니다.

연속 내보내기 고급 스토리지 구성

연속 내보내기는 다음 Azure Storage 기능 또는 구성을 지원하지 않습니다.

연속 내보내기 만들기

참고

애플리케이션은 하루에 3TB가 넘는 데이터를 내보낼 수 없습니다. 하루에 3TB를 초과하여 내보내는 경우 내보내기가 사용하지 않도록 설정됩니다. 제한 없이 내보내려면 진단 설정 기반 내보내기를 사용합니다.

  1. 왼쪽의 구성 아래에 있는 앱에 대한 Application Insights 리소스에서 연속 내보내기를 열고, 추가를 선택합니다.

  2. 내보낼 원격 분석 데이터 유형을 선택합니다.

  3. 데이터를 저장하려는 Azure Storage 계정을 만들거나 선택합니다. 스토리지 가격 책정 옵션에 대한 자세한 내용은 가격 페이지를 참조하세요.

    추가>내보내기 대상>스토리지 계정을 차례로 선택합니다. 그런 다음, 새 스토리지를 만들거나 기존 스토리지를 선택합니다.

    경고

    기본적으로 스토리지 위치는 Application Insights 리소스와 동일한 지역으로 설정됩니다. 다른 지역에 저장하는 경우 전송 요금이 발생할 수 있습니다.

  4. 스토리지에서 컨테이너를 만들거나 선택합니다.

참고

내보내기가 만들어지면 새로 수집된 데이터가 Azure Blob Storage로 이동하기 시작합니다. 연속 내보내기는 연속 내보내기가 사용하도록 설정된 후에 만들어지거나 수집된 새 원격 분석만 전송합니다. 연속 내보내기를 사용하도록 설정하기 전에 있었던 데이터는 내보내지지 않습니다. 연속 내보내기를 사용하여 이전에 만든 데이터를 소급하여 내보내는 방법은 지원되지 않습니다.

데이터가 스토리지에 표시되려면 1시간 정도 지연될 수 있습니다.

첫 번째 내보내기가 완료되면 Blob Storage 컨테이너에서 다음 구조를 찾을 수 있습니다. (이 구조는 수집하는 데이터에 따라 다릅니다.)

Name Description
가용성 가용성 웹 테스트를 보고합니다.
이벤트 TrackEvent()에 의해 생성된 사용자 지정 이벤트입니다.
예외 서버 및 브라우저의 예외 를 보고합니다.
메시지 TrackTrace로깅 어댑터에서 전송합니다.
Metrics(메트릭) 메트릭 API 호출로 생성됩니다.
PerformanceCounters Application Insights에서 수집한 성능 카운터입니다.
요청 TrackRequest에서 전송합니다. 표준 모듈은 요청을 사용하여 서버에서 측정된 서버 응답 시간을 보고합니다.

연속 내보내기 편집

연속 내보내기를 선택하고, 편집할 스토리지 계정을 선택합니다.

연속 내보내기 중지

내보내기를 중지하려면 사용 안 함을 선택합니다. 사용을 다시 선택하면 내보내기가 새 데이터를 사용하여 다시 시작됩니다. 내보내기를 사용하지 않는 동안 포털에 도착한 데이터는 받지 못합니다.

내보내기를 영구적으로 중지하려면 삭제합니다. 이렇게 해도 스토리지에서 데이터를 삭제하지 않습니다.

내보내기를 추가 또는 변경할 수 있나요?

내보내기를 추가 또는 변경하려면 소유자, 기여자 또는 Application Insights 기여자 액세스 권한이 필요합니다. 역할에 대해 알아봅니다.

어떤 이벤트를 얻나요?

내보낸 데이터는 클라이언트 IP 주소에서 추가된 위치 데이터와 함께 애플리케이션에서 수신한 원시 원격 분석입니다.

샘플링에 의해 삭제된 데이터는 내보낸 데이터에 포함되지 않습니다.

다른 계산된 메트릭은 포함되지 않습니다. 예를 들어 평균 CPU 사용률을 내보내지 않지만 평균이 계산된 곳에서 원시 원격 분석을 내보냅니다.

데이터에는 설정한 가용성 웹 테스트의 결과도 포함됩니다.

참고

애플리케이션에서 많은 데이터를 보내는 경우 샘플링 기능이 작동하여 생성된 원격 분석의 일부만 보낼 수 있습니다. 샘플링에 대해 자세히 알아봅니다.

데이터 검사

포털에서 직접 스토리지를 검사할 수 있습니다. 맨 왼쪽 메뉴에서 을 선택합니다. Azure 서비스라고 표시되는 위쪽에서 스토리지 계정을 선택합니다. 스토리지 계정 이름을 선택하고, 개요 페이지에서 서비스>Blob을 선택합니다. 마지막으로 컨테이너 이름을 선택합니다.

Visual Studio에서 Azure Storage를 검사하려면 보기>클라우드 탐색기를 차례로 선택합니다. 해당 메뉴 명령이 없는 경우 Azure SDK를 설치해야 합니다. 새 프로젝트 대화 상자를 열고, Visual C#/클라우드를 펼친 다음, .NET용 Microsoft Azure SDK 가져오기를 선택합니다.

blob 저장소를 열면 blob 파일 집합이 포함된 컨테이너가 보입니다. Application Insights 리소스 이름, 계측 키, 원격 분석 유형, 날짜 및 시간에서 파생된 각 파일의 URI가 표시됩니다. 리소스 이름은 모두 소문자이며 계측 키는 대시를 생략합니다.

적절한 도구를 사용하여 Blob 저장소를 검사하는 것을 보여 주는 스크린샷

참고

2025년 3월 31일에 계측 키 수집에 대한 지원이 종료됩니다. 계측 키 수집은 계속 작동하지만 더 이상 기능에 대한 업데이트 또는 지원을 제공하지 않습니다. 연결 문자열로 전환하여 새로운 기능을 활용합니다.

날짜 및 시간은 UTC이며, 원격 분석이 생성된 시간이 아니라 스토리지에 보관된 시간입니다. 따라서 데이터를 다운로드하는 코드를 작성하는 경우 데이터를 통해 선형으로 이동할 수 있습니다.

경로의 형식은 다음과 같습니다.

$"{applicationName}_{instrumentationKey}/{type}/{blobDeliveryTimeUtc:yyyy-MM-dd}/{ blobDeliveryTimeUtc:HH}/{blobId}_{blobCreationTimeUtc:yyyyMMdd_HHmmss}.blob"

여기서

  • blobCreationTimeUtc는 Blob이 내부 준비 스토리지에 만들어진 시간입니다.
  • blobDeliveryTimeUtc는 Blob이 내보내기 대상 스토리지에 복사되는 시간입니다.

데이터 형식

데이터의 형식은 다음과 같이 지정됩니다.

  • 각 Blob은 \n으로 구분된 여러 행을 포함하는 텍스트 파일입니다. 여기에는 약 30초 동안 처리된 원격 분석 데이터가 있습니다.

  • 각 행은 요청 또는 페이지 보기와 같은 원격 분석 데이터 요소를 나타냅니다.

  • 각 행은 서식이 지정되지 않은 JSON 파일입니다. 행을 보려면 Visual Studio에서 Blob을 열고, 편집>고급>서식 파일을 차례로 선택합니다.

    적절한 도구를 사용하여 원격 분석을 보는 방법을 보여 주는 스크린샷

시간 기간은 틱 단위이며 10,000틱은 1ms입니다. 예를 들어 이러한 값은 브라우저에서 요청을 보내는 데 1ms, 받는 데 3ms, 브라우저에서 페이지를 처리하는 데 1.8s를 보여줍니다.

"sendRequest": {"value": 10000.0},
"receiveRequest": {"value": 30000.0},
"clientProcess": {"value": 17970000.0}

속성 형식 및 값에 대한 자세한 데이터 모델 참조는 Application Insights 데이터 모델 내보내기를 참조하세요.

데이터 처리

작은 규모에서 데이터를 분리하여 스프레드시트로 읽어들이는 코드를 작성할 수 있습니다. 예를 들면 다음과 같습니다.

private IEnumerable<T> DeserializeMany<T>(string folderName)
{
   var files = Directory.EnumerateFiles(folderName, "*.blob", SearchOption.AllDirectories);
   foreach (var file in files)
   {
      using (var fileReader = File.OpenText(file))
      {
         string fileContent = fileReader.ReadToEnd();
         IEnumerable<string> entities = fileContent.Split('\n').Where(s => !string.IsNullOrWhiteSpace(s));
         foreach (var entity in entities)
         {
            yield return JsonConvert.DeserializeObject<T>(entity);
         }
      }
   }
}

더 큰 코드 샘플은 작업자 역할 사용을 참조하세요.

이전 데이터 삭제

필요한 경우 스토리지 용량을 관리하고 오래된 데이터를 삭제해야 합니다.

스토리지 키 다시 생성

스토리지 키를 변경하는 경우 연속 내보내기 작업이 중지됩니다. Azure 계정에 알림이 표시됩니다.

연속 내보내기 탭을 선택하고, 내보내기를 편집합니다. 내보내기 대상 값을 편집하지만 동일한 스토리지를 선택한 상태로 둡니다. 확인을 선택하여 확인합니다.

연속 내보내기가 다시 시작됩니다.

내보내기 샘플

내보내기 샘플은 다음을 참조하세요.

더 큰 규모에서는 클라우드의 HDInsight Hadoop 클러스터를 고려합니다. HDInsight는 빅 데이터 관리 및 분석을 위한 다양한 기술을 제공합니다. 이를 사용하여 Application Insights에서 내보낸 데이터를 처리할 수 있습니다.

질문과 대답

이 섹션에서는 일반적인 질문에 대한 답변을 제공합니다.

차트를 일회성으로 다운로드할 수 있나요?

예, 그렇게 할 수 있습니다. 탭 상단에서 데이터 내보내기를 선택합니다.

내보내기를 설정했지만 내 저장소에 데이터가 없는 이유는 무엇인가요?

내보내기를 설정한 후 Application Insights가 앱에서 원격 분석을 받았나요? 새 데이터만 받게 됩니다.

내보내기를 설정하려고 설정했지만 액세스가 거부된 이유는 무엇인가요?

조직에서 계정을 소유한 경우 소유자 또는 기여자 그룹의 멤버여야 합니다.

나만의 온-프레미스 저장소로 직접 내보낼 수 있나요?

아니요. 내보내기 엔진은 현재 Azure Storage에서만 작동합니다.

내 저장소에 보관하는 데이터량에 제한이 있나요?

아니요. 내보내기를 삭제할 때까지 푸싱한 데이터를 유지합니다. Blob Storage의 외부 제한에 도달하면 중지하지만 이 제한은 엄청난 것입니다. 사용자가 이용하는 스토리지 크기는 사용자가 제어하기 나름입니다.

스토리지에서 몇 개의 BLOB를 볼 수 있나요?

  • 내보내도록 선택한 모든 데이터 형식에 대해 데이터를 사용할 수 있는 경우 1분마다 새 Blob이 만들어집니다.
  • 트래픽이 많은 애플리케이션의 경우 추가 파티션 단위가 할당됩니다. 이 경우 각 단위는 매분마다 Blob을 만듭니다.

스토리지 키를 다시 생성했거나 컨테이너 이름을 변경했지만 내보내기가 작동하지 않는 이유는 무엇인가요?

내보내기를 편집하고, 내보내기 대상 탭을 선택합니다. 이전과 동일한 스토리지를 선택한 상태로 두고, 확인을 선택하여 확인합니다. 내보내기가 다시 시작됩니다. 지난 몇 일 이내에 변경된 경우 데이터가 손실됩니다.

내보내기를 일시 중지할 수 있나요?

예. 사용 안 함을 선택합니다.

코드 샘플

진단 설정 기반 내보내기

다음과 같은 추가 기능을 제공하므로 진단 설정 내보내기가 기본 설정됩니다.

  • 가상 네트워크, 방화벽 및 프라이빗 링크가 있는 Azure Storage 계정
  • Azure Event Hubs로 내보내기

진단 설정 내보내기 또한 다음과 같은 방법으로 연속 내보내기와 다릅니다.

  • 스키마가 업데이트되었습니다.
  • 원격 분석 데이터는 일괄 처리 업로드 형태가 아니라 도착할 때 전송됩니다.

중요

스토리지 계정과 같은 대상에 대한 호출이 증가하여 추가 비용이 발생할 수 있습니다.

진단 설정 내보내기로 마이그레이션하려면:

  1. 클래식 Application Insights에서 진단 설정을 사용하도록 설정합니다.
  2. 데이터 내보내기 구성: Application Insights 리소스 내에서 진단 설정>추가를 선택합니다.
  3. 새 데이터 내보내기를 연속 내보내기와 동일하게 구성했는지 확인합니다.

주의

진단 로그를 Log Analytics 작업 영역에 저장하려는 경우 Application Insights에서 중복 데이터가 표시되지 않도록 하기 위해 고려해야 할 두 가지 사항이 있습니다.

  • Application Insights 리소스의 기반이 되는 Log Analytics 작업 영역과 동일한 대상은 없습니다.
  • Application Insights 사용자는 두 작업 영역에 모두 액세스할 수 없습니다. Log Analytics 액세스 제어 모드작업 영역 권한 필요로 설정합니다. Azure 역할 기반 액세스 제어를 통해 사용자가 Application Insights 리소스에서 기반으로 하는 Log Analytics 작업 영역에만 액세스할 수 있는지 확인합니다.

Application Insights에서 Log Analytics 작업 영역을 포함한 Application Insight 리소스 전체에서 원격 분석에 액세스하여 완전한 엔드투엔드 트랜잭션 작업과 정확한 애플리케이션 맵을 제공하므로 이러한 단계가 필요합니다. 진단 로그에서 동일한 테이블 이름을 사용하므로 사용자가 동일한 데이터를 포함한 여러 리소스에 액세스할 수 있는 경우 중복 원격 분석이 표시될 수 있습니다.

Application Insights 데이터 모델 내보내기

이 테이블은 Application Insights SDK에서 포털로 전송된 원격 분석의 속성을 나열합니다. 이러한 속성이 연속 내보내기에서 데이터 출력에 표시됩니다 또한 메트릭 탐색기진단 검색의 속성 필터에 나타납니다.

주의할 사항:

  • [0] 은 인덱스를 삽입해야 하는 경로의 지점을 나타내지만 항상 0은 아닙니다.
  • 기간의 단위는 10분의 1 마이크로초이므로 10000000은 1초입니다.
  • 날짜와 시간은 UTC이며 ISO 형식 yyyy-MM-DDThh:mm:ss.sssZ

예제

// A server report about an HTTP request
{
  "request": [
    {
      "urlData": { // derived from 'url'
        "host": "contoso.org",
        "base": "/",
        "hashTag": ""
      },
      "responseCode": 200, // Sent to client
      "success": true, // Default == responseCode<400
      // Request id becomes the operation id of child events
      "id": "fCOhCdCnZ9I=",  
      "name": "GET Home/Index",
      "count": 1, // 100% / sampling rate
      "durationMetric": {
        "value": 1046804.0, // 10000000 == 1 second
        // Currently the following fields are redundant:
        "count": 1.0,
        "min": 1046804.0,
        "max": 1046804.0,
        "stdDev": 0.0,
        "sampledValue": 1046804.0
      },
      "url": "/"
    }
  ],
  "internal": {
    "data": {
      "id": "7f156650-ef4c-11e5-8453-3f984b167d05",
      "documentVersion": "1.61"
    }
  },
  "context": {
    "device": { // client browser
      "type": "PC",
      "screenResolution": { },
      "roleInstance": "WFWEB14B.fabrikam.net"
    },
    "application": { },
    "location": { // derived from client ip
      "continent": "North America",
      "country": "United States",
      // last octagon is anonymized to 0 at portal:
      "clientip": "168.62.177.0",
      "province": "",
      "city": ""
    },
    "data": {
      "isSynthetic": true, // we identified source as a bot
      // percentage of generated data sent to portal:
      "samplingRate": 100.0,
      "eventTime": "2016-03-21T10:05:45.7334717Z" // UTC
    },
    "user": {
      "isAuthenticated": false,
      "anonId": "us-tx-sn1-azr", // bot agent id
      "anonAcquisitionDate": "0001-01-01T00:00:00Z",
      "authAcquisitionDate": "0001-01-01T00:00:00Z",
      "accountAcquisitionDate": "0001-01-01T00:00:00Z"
    },
    "operation": {
      "id": "fCOhCdCnZ9I=",
      "parentId": "fCOhCdCnZ9I=",
      "name": "GET Home/Index"
    },
    "cloud": { },
    "serverDevice": { },
    "custom": { // set by custom fields of track calls
      "dimensions": [ ],
      "metrics": [ ]
    },
    "session": {
      "id": "65504c10-44a6-489e-b9dc-94184eb00d86",
      "isFirst": true
    }
  }
}

Context

모든 유형의 원격 분석에는 컨텍스트 섹션이 함께 제공됩니다. 이러한 모든 필드가 모든 데이터 요소와 함께 전송되는 것은 아닙니다.

경로 Type 참고
context.custom.dimensions [0] object [ ] 사용자 지정 속성 매개 변수에 의해 설정되는 키-값 문자열 쌍입니다. 키 최대 길이가 100이고, 값 최대 길이가 1024입니다. 100개 이상의 고유 값, 속성을 검색할 수 있지만 구분에 사용할 수 없습니다. ikey당 최대 키는 200개입니다.
context.custom.metrics [0] object [ ] 사용자 지정 측정 매개 변수 및 TrackMetrics에 의해 설정된 키-값 쌍입니다. 키 최대 길이가 100이고, 값은 숫자가 될 수 있습니다.
context.data.eventTime 문자열 UTC
context.data.isSynthetic boolean 요청이 봇 또는 웹 테스트에서 들어오는 것 같습니다.
context.data.samplingRate number 포털에 전송되는 SDK에 의해 생성된 원격 분석의 비율입니다. 범위는 0.0-100.0입니다.
context.device object 클라이언트 디바이스
context.device.browser 문자열 IE, Chrome, ...
context.device.browserVersion 문자열 Chrome 48.0, ...
context.device.deviceModel 문자열
context.device.deviceName 문자열
context.device.id 문자열
context.device.locale 문자열 en-GB, de-DE, ...
context.device.network 문자열
context.device.oemName 문자열
context.device.os 문자열
context.device.osVersion 문자열 호스트 OS
context.device.roleInstance 문자열 서버 호스트의 ID
context.device.roleName 문자열
context.device.screenResolution 문자열
context.device.type 문자열 PC, 브라우저...
context.location object clientip에서 파생됩니다.
context.location.city 문자열 알려진 경우 clientip에서 파생됩니다.
context.location.clientip 문자열 마지막 팔각형이 0으로 익명 처리됩니다.
context.location.continent 문자열
context.location.country 문자열
context.location.province 문자열 시/도
context.operation.id 문자열 operation id가 동일한 항목은 포털에서 관련 항목으로 표시됩니다. 일반적으로 request id입니다.
context.operation.name 문자열 URL 또는 요청 이름
context.operation.parentId 문자열 중첩된 관련 항목을 허용합니다.
context.session.id 문자열 동일한 원본의 작업 그룹 Id입니다. 30분 동안 작업이 없으면 세션이 끝난 것입니다.
context.session.isFirst boolean
context.user.accountAcquisitionDate 문자열
context.user.accountId 문자열
context.user.anonAcquisitionDate 문자열
context.user.anonId 문자열
context.user.authAcquisitionDate 문자열 인증된 사용자
context.user.authId 문자열
context.user.isAuthenticated boolean
context.user.storeRegion 문자열
internal.data.documentVersion 문자열
internal.data.id 문자열 항목이 Application Insights로 수집되는 경우 할당되는 Unique id입니다.

이벤트

TrackEvent()에 의해 생성된 사용자 지정 이벤트입니다.

경로 Type 참고
event [0] count 정수 100/(샘플링 속도) 예: 4 => 25%.
event [0] name 문자열 이벤트 이름입니다. 최대 길이 250
event [0] url 문자열
event [0] urlData.base 문자열
event [0] urlData.host 문자열

예외

서버 및 브라우저의 예외 를 보고합니다.

경로 Type 참고
basicException [0] assembly 문자열
basicException [0] count 정수 100/(샘플링 속도) 예: 4 => 25%.
basicException [0] exceptionGroup 문자열
basicException [0] exceptionType 문자열
basicException [0] failedUserCodeMethod 문자열
basicException [0] failedUserCodeAssembly 문자열
basicException [0] handledAt 문자열
basicException [0] hasFullStack boolean
basicException [0] id 문자열
basicException [0] method 문자열
basicException [0] message 문자열 예외 메시지입니다. 최대 길이 10000
basicException [0] outerExceptionMessage 문자열
basicException [0] outerExceptionThrownAtAssembly 문자열
basicException [0] outerExceptionThrownAtMethod 문자열
basicException [0] outerExceptionType 문자열
basicException [0] outerId 문자열
basicException [0] parsedStack [0] assembly 문자열
basicException [0] parsedStack [0] fileName 문자열
basicException [0] parsedStack [0] level 정수
basicException [0] parsedStack [0] line 정수
basicException [0] parsedStack [0] method 문자열
basicException [0] stack 문자열 최대 길이 10000
basicException [0] typeName 문자열

추적 메시지

TrackTrace로깅 어댑터에서 전송합니다.

경로 Type 참고
message [0] loggerName 문자열
message [0] parameters 문자열
message [0] raw 문자열 로그 메시지입니다(최대 길이 10k).
message [0] severityLevel 문자열

원격 종속성

TrackDependency에서 전송합니다. 서버의 종속성에 대한 호출 과 브라우저의 AJAX 호출 성능 및 사용을 보고하는 데 사용됩니다.

경로 Type 참고
remoteDependency [0] async boolean
remoteDependency [0] baseName 문자열
remoteDependency [0] commandName 문자열 예를 들어 "홈/인덱스"
remoteDependency [0] count 정수 100/(샘플링 속도) 예: 4 => 25%.
remoteDependency [0] dependencyTypeName 문자열 HTTP, SQL, ...
remoteDependency [0] durationMetric.value number 호출부터 종속성의 응답 완료까지 걸리는 시간
remoteDependency [0] id 문자열
remoteDependency [0] name 문자열 Url. 최대 길이 250
remoteDependency [0] resultCode 문자열 HTTP 종속성에서
remoteDependency [0] success boolean
remoteDependency [0] type 문자열 Http, Sql,...
remoteDependency [0] url 문자열 최대 길이 2000
remoteDependency [0] urlData.base 문자열 최대 길이 2000
remoteDependency [0] urlData.hashTag 문자열
remoteDependency [0] urlData.host 문자열 최대 길이 200

요청

TrackRequest에서 전송합니다. 표준 모듈이 서버에서 측정된 서버 응답 시간을 보고하는 데 사용됩니다.

경로 Type 참고
request [0] count 정수 100/(샘플링 속도) 예: 4 => 25%.
request [0] durationMetric.value number 요청부터 응답까지 걸리는 시간입니다. 1e7 == 1s
request [0] id 문자열 Operation id
request [0] name 문자열 GET/POST + url 기본입니다. 최대 길이 250
request [0] responseCode 정수 클라이언트에 보낸 HTTP 응답
request [0] success boolean 기본값 == (responseCode < 400)
request [0] url 문자열 호스트를 포함하지 않음
request [0] urlData.base 문자열
request [0] urlData.hashTag 문자열
request [0] urlData.host 문자열

페이지 보기 성능

브라우저에서 전송합니다. 사용자가 요청을 시작할 때부터 표시가 완료될 때까지 페이지 처리 시간을 측정합니다(비동기 AJAX 호출 제외).

컨텍스트 값은 클라이언트 OS 및 브라우저 버전을 표시합니다.

경로 Type 참고
clientPerformance [0] clientProcess.value 정수 HTML 수신 완료부터 페이지 표시까지 걸리는 시간입니다.
clientPerformance [0] name 문자열
clientPerformance [0] networkConnection.value 정수 네트워크 연결을 설정하는 데 걸리는 시간입니다.
clientPerformance [0] receiveRequest.value 정수 요청 전송 완료부터 HTML 응답 수신까지 걸리는 시간입니다.
clientPerformance [0] sendRequest.value 정수 HTTP 요청을 전송하는 데 걸리는 시간입니다.
clientPerformance [0] total.value 정수 요청 전송 시작부터 페이지 표시까지 걸리는 시간입니다.
clientPerformance [0] url 문자열 이 요청의 URL
clientPerformance [0] urlData.base 문자열
clientPerformance [0] urlData.hashTag 문자열
clientPerformance [0] urlData.host 문자열
clientPerformance [0] urlData.protocol 문자열

페이지 보기

trackPageView() 또는 stopTrackPage에서 전송

경로 Type 참고
view [0] count 정수 100/(샘플링 속도) 예: 4 => 25%.
view [0] durationMetric.value 정수 필요에 따라 trackPageView()에서 또는 startTrackPage() - stopTrackPage()에 의해 설정한 값입니다. clientPerformance 값과 다릅니다.
view [0] name 문자열 페이지 제목입니다. 최대 길이 250
view [0] url 문자열
view [0] urlData.base 문자열
view [0] urlData.hashTag 문자열
view [0] urlData.host 문자열

가용성

가용성 웹 테스트를 보고합니다.

경로 Type 참고
availability [0] availabilityMetric.name 문자열 availability
availability [0] availabilityMetric.value number 1.0 또는 0.0
availability [0] count 정수 100/(샘플링 속도) 예: 4 => 25%.
availability [0] dataSizeMetric.name 문자열
availability [0] dataSizeMetric.value 정수
availability [0] durationMetric.name 문자열
availability [0] durationMetric.value number 테스트 기간 1e7==1s
availability [0] message 문자열 오류 진단
availability [0] result 문자열 성공/실패
availability [0] runLocation 문자열 Http 요청의 지역 소스
availability [0] testName 문자열
availability [0] testRunId 문자열
availability [0] testTimestamp 문자열

메트릭

TrackMetric()에서 생성합니다.

메트릭 값은 context.custom.metrics[0]에서 찾을 수 있습니다.

예를 들면 다음과 같습니다.

{
  "metric": [ ],
  "context": {
  ...
    "custom": {
      "dimensions": [
        { "ProcessId": "4068" }
      ],
      "metrics": [
        {
          "dispatchRate": {
            "value": 0.001295,
            "count": 1.0,
            "min": 0.001295,
            "max": 0.001295,
            "stdDev": 0.0,
            "sampledValue": 0.001295,
            "sum": 0.001295
          }
        }
      ]  
    }
  }
}

메트릭 값 정보

메트릭 보고서 및 기타 다른 곳의 메트릭 값은 모두 표준 개체 구조를 사용하여 보고됩니다. 예를 들면 다음과 같습니다.

"durationMetric": {
  "name": "contoso.org",
  "type": "Aggregation",
  "value": 468.71603053650279,
  "count": 1.0,
  "min": 468.71603053650279,
  "max": 468.71603053650279,
  "stdDev": 0.0,
  "sampledValue": 468.71603053650279
}

현재는 표준 SDK 모듈에서 보고되는 모든 값 중에서 count==1namevalue 필드만 유용합니다(향후 변경될 수 있음). 이러한 값이 달라지는 유일한 경우는 TrackMetric 호출을 직접 작성하고 다른 매개 변수를 설정하는 경우입니다.

다른 필드의 목적은 포털로 가는 트래픽을 줄이기 위해 SDK에 메트릭이 집계되도록 허용하는 것입니다. 예를 들어 각 메트릭 보고서를 보내기 전에 여러 연속 판독값의 평균을 낼 수 있습니다. 그런 다음 최소값, 최대값, 표준 편차 및 집계 값(합계 또는 평균)을 계산하고 개수를 보고서에서 표시한 판독값 수로 설정합니다.

위의 테이블에서는 거의 사용되지 않는 필드인 count, min, max, stdDev 및 sampledValue가 생략되었습니다.

원격 분석의 양을 줄여야 하는 경우 사전 집계 메트릭 대신 샘플링 을 사용할 수 있습니다

기간

달리 명시된 경우를 제외하고, 기간은 10분의 1 마이크로초로 표현되므로 10000000.0은 1초를 의미합니다.

참고 항목