Метрики на основе журналов и предварительно подготовленные в Application Insights
Примечание.
В следующей документации используется классический API Application Insights. Долгосрочный план Application Insights — сбор данных с помощью OpenTelemetry. Дополнительные сведения см. в статье "Включение Azure Monitor OpenTelemetry для .NET", Node.js, приложений Python и Java и нашей стратегии OpenTelemetry. Рекомендации по миграции доступны для .NET, Node.js и Python.
В этой статье объясняется различие между "традиционными" метриками Application Insights, основанными на журналах и предварительно подготовленных метрик. Оба типа метрик доступны пользователям Application Insights. Каждый из них имеет уникальное значение для мониторинга работоспособности приложений, диагностика и аналитики. Разработчики, которые инструментируют приложения, могут решить, какой тип метрики лучше всего подходит для конкретного сценария. Решения основаны на размере приложения, ожидаемом объеме телеметрии и бизнес-требованиях для точности метрик и предупреждений.
Метрики на основе журнала
В прошлом модель данных телеметрии мониторинга приложений в Application Insights была основана исключительно на нескольких предопределенных типах событий, таких как запросы, исключения, вызовы зависимостей и представления страниц. Разработчики могут использовать пакет SDK для отправки этих событий вручную, написав код, который явно вызывает пакет SDK. Или они могут полагаться на автоматическую коллекцию событий из автоинструментации. В любом случае серверная часть Application Insights сохраняет все собранные события в виде журналов. Области Application Insights в портал Azure выступает в качестве аналитического и диагностического средства для визуализации данных на основе событий из журналов.
Использование журналов для хранения полного набора событий может оказаться очень полезным при аналитике и диагностике. Например, вы можете получить точные сведения о количестве запросов к определенному URL-адресу, а также о количестве отдельных пользователей, которые совершили эти запросы. Кроме того, вы можете получить подробные диагностические трассировки, включая исключения или вызовы зависимостей для любого сеанса пользователя. Наличие такой информации может улучшить видимость работоспособности и использования приложения. Это также может сократить время, необходимое для диагностики проблем с приложением.
В то же время сбор полного набора событий может оказаться непрактичным или даже невозможным для приложений, создающих большой объем данных телеметрии. В ситуациях, когда объем событий слишком велик, Application Insights реализует несколько методов уменьшения объема телеметрии, которые снижают количество собранных и сохраненных событий. Эти методы включают выборку и фильтрацию. К сожалению, при уменьшении количества хранимых событий снижается точность метрики, которая, по сути, должна выполнять агрегирование событий, которые хранятся в журналах, во время выполнения запросов.
Примечание.
В Application Insights метрики, которые основаны на агрегировании данных о событиях и измерениях, хранящихся в журналах, при выполнении запросов, называются метриками на основе журналов. Эти метрики обычно имеют множество измерений из свойств события, что делает их превосходными для аналитики. Точность этих метрик негативно влияет на выборку и фильтрацию.
Предварительно подготовленные метрики
Помимо метрик на основе журналов в конце 2018 года команда Application Insights отправила общедоступную предварительную версию метрик, которые хранятся в специализированном репозитории, оптимизированном для временных рядов. Новые метрики больше не хранятся в виде отдельных событий с большим количеством свойств. Вместо этого они хранятся как предварительно подготовленные временные ряды и только с ключевыми измерениями. Это изменение делает новые метрики выше во время запроса. Получение данных выполняется быстрее и требует меньше вычислительной мощности. В результате новые сценарии включены, такие как оповещение почти в режиме реального времени о измерениях метрик и более адаптивных панелей мониторинга.
Внимание
Метрики на основе журналов и предварительно подготовленные метрики сосуществуют в Application Insights. Чтобы отличить два, в интерфейсе пользователя Application Insights предварительно подготовленные метрики теперь называются стандартными метриками. Традиционные метрики из событий были переименованы в метрики на основе журналов.
Новые пакеты SDK (пакет SDK Application Insights 2.7 или более поздней версии для .NET) предварительно удаляют метрики во время сбора. Этот процесс применяется к стандартным метрикам, отправленным по умолчанию, поэтому точность не влияет на выборку или фильтрацию. Она также применяется к пользовательским метрикам, отправленным с помощью GetMetric, что приводит к снижению приема данных и снижению затрат.
Для пакетов SDK, которые не реализуют предварительную агрегирование (то есть старые версии пакетов SDK Application Insights или инструментирования браузера), серверная часть Application Insights по-прежнему заполняет новые метрики путем агрегирования событий, полученных конечной точкой сбора событий Application Insights. Хотя вы не пользуетесь меньшим объемом данных, передаваемых по проводу, вы по-прежнему можете использовать предварительно подготовленные метрики и повысить производительность и поддержку практически в реальном времени измерения предупреждений с пакетами SDK, которые не преагрегируют метрики во время сбора.
Конечная точка коллекции предварительно удаляет события перед приемом выборки. По этой причине выборка приема никогда не влияет на точность предварительно подготовленных метрик независимо от версии пакета SDK, используемой с приложением.
Поддерживаемые предварительно подготовленные таблицы метрик SDK
Текущие рабочие пакеты SDK | Стандартные метрики (предварительная обработка пакета SDK) | Пользовательские метрики (без предварительной статистической обработки пакета SDK) | Пользовательские метрики (с предварительной агрегацией пакета SDK) |
---|---|---|---|
.NET Core и .NET Framework | Поддерживается (версия 2.13.1 +) | Поддерживается через TrackMetric | Поддерживается (версия 2.7.2 +) через GetMetric |
Java | Не поддерживается | Поддерживается через TrackMetric | Не поддерживается |
Node.js | Поддерживается (версия 2.0.0 +) | Поддерживается через TrackMetric | Не поддерживается |
Python | Не поддерживается | Поддерживается | Частично поддерживается через OpenCensus.stats |
Примечание.
Реализация метрик для Python с помощью OpenCensus.stats отличается от GetMetric. Дополнительные сведения см. в документации по Python по метрикам.
Таблица предварительно подготовленных метрик без кода
Текущие рабочие пакеты SDK | Стандартные метрики (предварительная обработка пакета SDK) | Пользовательские метрики (без предварительной статистической обработки пакета SDK) | Пользовательские метрики (с предварительной агрегацией пакета SDK) |
---|---|---|---|
ASP.NET | Поддерживается 1 | Не поддерживается | Не поддерживается |
ASP.NET Core | Поддерживается 2 | Не поддерживается | Не поддерживается |
Java | Не поддерживается | Не поддерживается | Поддерживается |
Node.js | Не поддерживается | Не поддерживается | Не поддерживается |
- ASP.NET автоинструментацию на виртуальных машинах или масштабируемых наборах виртуальных машин и локальных средах выдает стандартные метрики без измерений. То же самое верно для службы приложение Azure, но для уровня коллекции необходимо задать рекомендуемый уровень. Пакет SDK необходим для всех измерений.
- ASP.NET автоинструментация Core на Служба приложений выдает стандартные метрики без измерений. Для всех измерений требуется пакет SDK.
Использование предварительной статистической обработки с пользовательскими метриками Application Insights
Вы можете использовать предварительную агрегирование с пользовательскими метриками. Ниже приведены два основных преимущества:
- Настройка и оповещение для измерения пользовательской метрики
- Уменьшение объема данных, отправляемых из пакета SDK в конечную точку сбора Application Insights
Существует несколько способов отправки пользовательских метрик из пакета SDK Application Insights. Если ваша версия пакета SDK предлагает GetMetric и TrackValue, эти методы являются предпочтительным способом отправки пользовательских метрик. В этом случае предварительная агрегирование происходит внутри пакета SDK. Этот подход снижает объем данных, хранящихся в Azure, а также объем данных, передаваемых из пакета SDK в Application Insights. В противном случае используйте метод trackMetric, который предварительно выполняет события метрик во время приема данных.
Пользовательские измерения метрик и предварительная статистическая обработка
Все метрики, отправляемые с помощью OpenTelemetry, trackMetric или GetMetric и TrackValue API, автоматически хранятся в журналах и хранилищах метрик. Эти метрики можно найти в таблице customMetrics в Application Insights и обозревателе метрик в пространстве имен пользовательской метрики с именем azure.applicationinsights. Хотя версия пользовательской метрики на основе журнала всегда сохраняет все измерения, предварительная версия метрики хранится по умолчанию без измерений. Сохранение измерений пользовательских метрик — это функция предварительной версии, которую можно включить на вкладке "Использование" и "Предполагаемые затраты ", выбрав "С измерениями " в разделе "Отправка пользовательских метрик в Хранилище метрик Azure".
Планы продаж
Предварительно подготовленные метрики хранятся в виде временных рядов в Azure Monitor. Применяются квоты Azure Monitor для пользовательских метрик.
Примечание.
Превышение квоты может привести к непредвиденным последствиям. Служба Azure Monitor может стать ненадежной в вашей подписке или регионе. Дополнительные сведения о том, как избежать превышения квоты, см. в разделе Ограничения и рекомендации по проектированию.
Почему сбор измерений пользовательских метрик выключен по умолчанию?
Коллекция пользовательских измерений метрик отключена по умолчанию, так как в будущем хранение пользовательских метрик с измерениями будет выставлено отдельно от Application Insights. Хранение немеренных пользовательских метрик остается бесплатным (до квоты). Вы можете узнать о предстоящих изменениях модели ценообразования на нашей официальной странице с ценами.
Создание диаграмм и изучение стандартных предварительно подготовленных метрик на основе журналов
Используйте обозреватель метрик Azure Monitor для построения диаграмм из предварительно подготовленных и журналных метрик и создания панелей мониторинга с диаграммами. Выбрав нужный ресурс Application Insights, используйте средство выбора пространства имен для переключения между стандартными и метриками на основе журналов. Вы также можете выбрать пользовательское пространство имен метрик.
Модели ценообразования для метрик Application Insights
Прием метрик в Application Insights, основанных на журналах или предварительно подготовленных, создает затраты на основе размера приема данных. Дополнительные сведения см. в разделе Azure Log Analytics.* Пользовательские метрики, включая все его измерения, всегда хранятся в хранилище журналов Application Insights. Кроме того, предварительная версия пользовательских метрик без измерений пересылается в хранилище метрик по умолчанию.
Выбор параметра "Включить оповещение о пользовательских измерениях метрик" для хранения всех измерений предварительно подготовленных метрик в хранилище метрик может создавать дополнительные затраты на основе цен на пользовательские метрики.