Экспорт данных телеметрии из Application Insights

Хотите ли вы хранить данные телеметрии дольше стандартного срока хранения? Или вы хотите обработать его каким-то специализированным способом? Для этой цели идеально подходит непрерывный экспорт. События, которые отображаются на портале Application Insights, можно экспортировать в хранилище в Azure в формате JSON. Из этого расположения можно скачать данные и написать любой код, необходимый для их обработки.

Важно!

Прежде чем настраивать функцию непрерывного экспорта, рассмотрите некоторые альтернативные варианты.

После того как непрерывный экспорт копирует данные в хранилище, где они могут оставаться сколько угодно, они по-прежнему доступны в Application Insights в течение обычного периода хранения.

Поддерживаемые регионы

Непрерывный экспорт поддерживается в следующих регионах:

  • Юго-Восточная Азия
  • Центральная Канада
  • Центральная Индия
  • Северная Европа
  • южная часть Соединенного Королевства
  • Восточная Австралия
  • Восточная Япония
  • Республика Корея, центральный регион
  • Центральная Франция
  • Восточная Азия
  • западная часть США
  • Центральная часть США
  • восточная часть США 2
  • Центрально-южная часть США
  • западная часть США 2
  • Северная часть ЮАР;
  • Центрально-северная часть США
  • Brazil South
  • Северная Швейцария
  • Australia Southeast
  • западная часть Соединенного Королевства
  • Центрально-Западная Германия
  • Западная Швейцария
  • Центральная Австралия 2
  • Центральная часть ОАЭ.
  • Юго-Восточная Бразилия
  • Центральная Австралия
  • Северная часть ОАЭ;
  • Восточная Норвегия;
  • Западная Япония

Примечание

Непрерывный экспорт будет продолжать работать для приложений в восточной части США и Западной Европе, если экспорт был настроен до 23 февраля 2021 г. Новые правила непрерывного экспорта не могут быть настроены ни в одном приложении в восточной части США или Западной Европе, независимо от того, когда было создано приложение.

Расширенная конфигурация хранилища для непрерывного экспорта

Непрерывный экспорт не поддерживает следующие функции и конфигурации службы хранилища Azure:

Создание непрерывного экспорта

Примечание

Приложение не может экспортировать более 3 ТБ данных в день. Если экспортируется более 3 ТБ в день, экспорт будет отключен. Для экспорта без ограничения используйте экспорт на основе параметров диагностики.

  1. В ресурсе Application Insights для приложения в разделе Настройка слева откройте непрерывный экспорт и выберите Добавить.

  2. Выберите типы данных телеметрии, которые хотите экспортировать.

  3. Создайте или выберите учетную запись хранения Azure , в которой вы хотите хранить данные. Дополнительные сведения о ценах на хранилище см. на странице цен.

    Выберите Добавить>учетную запись храненияназначения> экспорта. Затем создайте новое хранилище или выберите существующее.

    Предупреждение

    По умолчанию учетная запись хранения будет относиться к тому же географическому региону, что и ресурс Application Insights. При хранении в другом регионе может взиматься плата за передачу.

  4. Создайте или выберите контейнер в хранилище.

Примечание

После создания экспорта новые данные начнут поступать в Хранилище BLOB-объектов Azure. Непрерывный экспорт передает только новые данные телеметрии, созданные или приеманные после включения непрерывного экспорта. Все данные, которые существовали до включения непрерывного экспорта, не будут экспортированы. Нет поддерживаемого способа ретроактивного экспорта ранее созданных данных с помощью непрерывного экспорта.

Возможна задержка около часа до появления данных в хранилище.

После завершения первого экспорта вы увидите следующую структуру в контейнере хранилища BLOB-объектов. (Эта структура зависит от собираемых данных.)

Имя Описание
Доступность Это свойство создает отчеты о веб-тестах на доступность.
Событие Пользовательские события, создаваемые элементом TrackEvent().
Исключения Отправляются сведения об исключениях на сервере и в браузере.
Сообщения Отправитель: TrackTrace и адаптеры ведения журналов.
Метрики Создается вызовами API метрик.
PerformanceCounters Данные счетчиков производительности, собранные службой Application Insights.
Requests (Запросы) Отправитель: TrackRequest. Стандартные модули используют запросы для создания отчетов о времени отклика сервера (измеряется на сервере).

Изменение непрерывного экспорта

Выберите Непрерывный экспорт и учетную запись хранения для изменения.

Остановка непрерывного экспорта

Чтобы остановить экспорт, выберите Отключить. При повторном нажатии кнопки Включить экспорт перезапускается с новыми данными. Пока экспорт был отключен, вы не будете получать данные, которые поступают на портал.

Чтобы остановить экспорт навсегда, удалите его. Это действие не повлечет удаление данных из хранилища.

Не удается добавить или изменить параметры экспорта?

Чтобы добавить или изменить параметры экспорта, требуются права владельца, участника или участника Application Insights. Дополнительные сведения о ролях.

Какие события вы получаете?

Экспортируются необработанные данные телеметрии, которую мы получаем от вашего приложения, с дополнительными сведениями о расположении на основе IP-адреса клиента.

Данные, которые были отброшены выборкой, не включаются в экспортированные данные.

Другие вычисляемые метрики не включаются. Например, мы не экспортируем показатель среднего использования ЦП, но экспортируем необработанные данные телеметрии, на основе которых можно вычислить это среднее значение.

Данные также содержат результаты любого настроенного веб-теста доступности.

Примечание

Если приложение отправляет много данных, функция выборки может работать и отправлять только часть созданных данных телеметрии. Дополнительная информация о выборке.

Изучение данных

Проверить хранилище можно непосредственно на портале. Выберите Главная в крайнем левом меню. В верхней части окна службы Azure выберите Учетные записи хранения. Выберите имя учетной записи хранения и на странице Обзор выберите Службы>BLOB-объекты. Наконец, выберите имя контейнера.

Чтобы проверить службу хранилища Azure в Visual Studio, выберите Просмотреть>облачные Обозреватель. Если у вас нет этой команды меню, необходимо установить пакет Azure SDK. Откройте диалоговое окно Новый проект, разверните узел Visual C#/Cloud и выберите Получить Пакет Microsoft Azure SDK для .NET.

При открытии хранилища больших двоичных объектов вы увидите контейнер с набором файлов больших двоичных объектов. Вы увидите универсальный код ресурса (URI) каждого файла, производного от имени ресурса Application Insights, его ключ инструментирования, а также тип телеметрии, дату и время. Имя ресурса в нижнем регистре, а в ключе инструментирования отсутствуют дефисы.

Снимок экрана: проверка хранилища BLOB-объектов с помощью подходящего средства.

Примечание

Поддержка приема ключей инструментирования будет завершена 31 марта 31, 2025 г. Функция продолжит работать, но не будет обновляться или поддерживаться. Перейдите на строки подключения, чтобы использовать новые возможности.

Дата и время — это время в формате UTC, а не дата, когда данные телеметрии были сложены в хранилище, а не время ее создания. По этой причине, если вы напишете код для загрузки данных, он может линейно перемещаться по данным.

Путь имеет следующий вид.

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

Где:

  • blobCreationTimeUtc — время создания большого двоичного объекта во внутреннем промежуточном хранилище.
  • blobDeliveryTimeUtc — это время копирования большого двоичного объекта в хранилище назначения экспорта.

Формат данных

Данные форматируются таким образом, чтобы:

  • Каждый большой двоичный объект — это текстовый файл, содержащий несколько \nразделенных строк. Он содержит данные телеметрии, обрабатываемые примерно раз в 30 секунд.

  • Каждая строка представляет точку данных телеметрии, например запрос или представление страницы.

  • Каждая строка представляет собой неформатированный JSON-документ. Если вы хотите просмотреть строки, откройте большой двоичный объект в Visual Studio и выберите Изменить>файл расширенного>форматирования.

    Снимок экрана: просмотр данных телеметрии с помощью подходящего средства

Продолжительность времени измеряется в тактах, где 10 000 тактов составляют 1 мс. Например, следующие значения показывают время 1 мс для отправки запроса из браузера, 3 мс для его получения и 1,8 с для обработки страницы в браузере.

"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.

Существует ли предел для объема данных, помещаемых в мое хранилище?

Нет. Мы будем хранить переданные данные в хранилище, пока вы не удалите данные экспорта. Мы остановимся, если достигнут внешних ограничений для хранилища BLOB-объектов, но это ограничение будет огромным. Вы можете настроить объем используемого хранилища.

Сколько больших двоичных объектов отображается в хранилище?

  • Для каждого типа данных, выбранного для экспорта, каждую минуту создается новый большой двоичный объект, если данные доступны.
  • Для приложений с большим объемом трафика выделяются дополнительные единицы секционирования. В этом случае каждая единица создает BLOB-объект каждую минуту.

Я повторно вернул ключ к хранилищу или изменил имя контейнера, но почему экспорт не работает?

Измените экспорт и выберите вкладку Назначение экспорта . Оставьте то же хранилище, что и раньше, и нажмите кнопку ОК , чтобы подтвердить. Экспорт будет перезапущен. Если это изменение было сделано в течение последних нескольких дней, данные не будут потеряны.

Можно ли приостановить экспорт?

Да. Выберите Отключить.

Примеры кода

Экспорт на основе параметров диагностики

Экспорт параметров диагностики предпочтителен, так как он предоставляет дополнительные возможности:

  • Учетные записи хранения Azure с виртуальными сетями, брандмауэрами и приватными каналами.
  • Экспорт в Центры событий Azure.

Экспорт параметров диагностики отличается от непрерывного экспорта в следующих аспектах:

  • Обновленная схема.
  • Данные телеметрии отправляются по мере поступления, а не пакетами.

Важно!

Дополнительные расходы могут возникнуть из-за увеличения числа вызовов к месту назначения, например из-за учетной записи хранения.

Чтобы перейти к экспорту параметров диагностики, выполните указанные ниже действия.

  1. Включите параметры диагностики в классической Application Insights.
  2. Настройка экспорта данных. Выберите Параметры диагностики>Добавить параметр диагностики из ресурса Application Insights.
  3. Убедитесь, что новый экспорт данных настроен так же, как и при непрерывном экспорте

Внимание!

Если вы хотите хранить журналы диагностики в рабочей области Log Analytics, следует учитывать два момента, чтобы избежать дублирования данных в Application Insights:

  • Назначение не может быть той же рабочей областью Log Analytics, на которой основан ресурс Application Insights.
  • У пользователя Application Insights не может быть доступа к обеим рабочим областям. Установите для параметра Режим управления доступом Log Analytics значение Требуются разрешения рабочей области. С помощью управления доступом на основе ролей Azure убедитесь, что пользователь имеет доступ только к рабочей области Log Analytics, на основе которого основан ресурс Application Insights.

Эти действия необходимы, так как Application Insights обращается к данным телеметрии ресурсов Application Insights, включая рабочие области Log Analytics, чтобы обеспечить полные операции транзакций и точные карты приложений. Так как журналы диагностики используют те же имена таблиц, возможно отображение повторяющихся данных телеметрии, если у пользователя есть доступ к нескольким ресурсам, содержащим одни и те же данные.

Экспорт модели данных Application Insights

В этой таблице перечислены свойства телеметрии, отправляемой из различных пакетов SDK для Application Insights на портал. Вы увидите эти свойства в выходных данных непрерывного экспорта. Они также отображаются в фильтрах свойств в обозревателе метрик и при диагностическом поиске.

Примечания:

  • [0] в этих таблицах обозначает точку в пути, куда необходимо вставить индекс. При этом значение не всегда равно 0.
  • Продолжительность времени указана в десятых долях микросекунды, поэтому 10 000 000 = 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.custom.dimensions [0] объект [ ] Набор пар "ключ — значение", заданный параметром пользовательских свойств. Максимальная длина ключа — 100, максимальная длина значения —1024. Более 100 уникальных значений. Свойства можно использовать для поиска, но не для сегментации. Максимальное количество — 200 ключей на ключ ikey.
context.custom.metrics [0] объект [ ] Набор пар "ключ — значение", заданный параметром пользовательских измерений и метриками TrackMetric. Максимальная длина ключа — 100. Значения могут быть числовыми.
context.data.eventTime строка Формат UTC.
context.data.isSynthetic Логическое Запрос поступает от программы-робота или веб-теста.
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 строка ОС узла
context.device.roleInstance строка Идентификатор узла сервера
context.device.roleName строка
context.device.screenResolution строка
context.device.type строка ПК, браузер…
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 Логическое
context.user.accountAcquisitionDate строка
context.user.accountId строка
context.user.anonAcquisitionDate строка
context.user.anonId строка
context.user.authAcquisitionDate строка прошедший проверку пользователь
context.user.authId строка
context.user.isAuthenticated Логическое
context.user.storeRegion строка
internal.data.documentVersion строка
internal.data.id строка Unique id, присваиваемый при передаче элемента в Application Insights

События

Пользовательские события, создаваемые элементом TrackEvent().

Путь Тип Примечания
event [0] count Целое число 100/(частотавыборки ). Например, 4 = > 25 %.
event [0] name строка Имя события. Максимальная длина: 250
event [0] url строка
event [0] urlData.base строка
event [0] urlData.host строка

Исключения

Отправляются сведения об исключениях на сервере и в браузере.

Путь Тип Примечания
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 Логическое
basicException [0] id строка
basicException [0] method строка
basicException [0] message строка Сообщение об исключении. Максимальная длина: 10 000
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 строка Максимальная длина: 10 000
basicException [0] typeName строка

Сообщения трассировки

Отправитель: TrackTrace и адаптеры ведения журналов.

Путь Тип Примечания
message [0] loggerName строка
message [0] parameters строка
message [0] raw строка Сообщение журнала, максимальная длина — 10 тысяч символов.
message [0] severityLevel строка

Удаленная зависимость

Отправитель: TrackDependency. Используется для создания отчетов о производительности и использовании вызовов к зависимостям на сервере, а также вызовов AJAX в браузере.

Путь Тип Примечания
remoteDependency [0] async Логическое
remoteDependency [0] baseName строка
remoteDependency [0] commandName строка Например, home/index
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 Логическое
remoteDependency [0] type строка HTTP, SQL, …
remoteDependency [0] url строка Максимальная длина: 2000
remoteDependency [0] urlData.base строка Максимальная длина: 2000
remoteDependency [0] urlData.hashTag строка
remoteDependency [0] urlData.host строка Максимальная длина: 200

Requests

Отправитель: TrackRequest. Используется стандартными модулями для создания отчетов о времени отклика сервера (измеряется на сервере).

Путь Тип Примечания
request [0] count Целое число 100/(частотавыборки ). Например: 4 => 25 %.
request [0] durationMetric.value number Время от поступления запроса до отклика. 1e7 = 1 с.
request [0] id строка Operation id
request [0] name строка GET или POST + базовый URL-адрес. Максимальная длина: 250
request [0] responseCode Целое число HTTP-отклик, отправленный клиенту.
request [0] success Логическое Значение по умолчанию == (responseCode < 400)
request [0] url строка Не включая узел.
request [0] urlData.base строка
request [0] urlData.hashTag строка
request [0] urlData.host строка

Производительность просмотра страницы

Отправитель: браузер. Измеряет время обработки страницы — с момента инициации пользователем запроса до полного отображения страницы (за исключением асинхронных вызовов AJAX).

Контекстные значения показывают версию клиентской ОС и версию браузера.

Путь Тип Примечания
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

Путь Тип Примечания
view [0] count Целое число 100/(частотавыборки ). Например, 4 = > 25 %.
view [0] durationMetric.value Целое число При необходимости значение можно указать в методе trackPageView() или с помощью метода start/stopTrackPage(). Не совпадает со значениями clientPerformance.
view [0] name строка Заголовок страницы. Максимальная длина: 250
view [0] url строка
view [0] urlData.base строка
view [0] urlData.hashTag строка
view [0] urlData.host строка

Доступность

Это свойство создает отчеты о веб-тестах на доступность.

Путь Тип Примечания
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 = 1 с.
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, полезными являются только поля name и value, а также count==1. Они будут отличаться, только если вы напишете собственный вызов TrackMetric, указав другие параметры.

Другие поля нужны для того, чтобы разрешить статистическое вычисление метрик в пакете SDK, тем самым снизив нагрузку (в виде трафика) на портал. Например, перед отправкой каждого отчета с метриками вы можете получить среднее значение для нескольких последовательных показаний. Затем вы можете рассчитать минимальное и максимальное значение, а также стандартное отклонение и агрегированное значение (сумму или среднее), а затем указать в счетчике количество показаний, представленных в отчете.

В таблицах выше мы опустили редко используемые поля count, min, max, stdDev и sampledValue.

Вместо предварительного статистического вычисления метрик вы можете использовать выборки , чтобы сократить объем данных телеметрии.

Длительность

За исключением оговоренных случаев, показатели длительности представлены в десятых долях микросекунды, то есть 10 000 000,0 — это 1 с.

См. также раздел