Метрики в Application Insights
Application Insights поддерживает три различных типа метрик: стандартные (предварительно подготовленные), на основе журналов и пользовательские метрики. Каждый из них имеет уникальное значение для мониторинга работоспособности приложений, диагностика и аналитики. Разработчики, которые инструментируют приложения, могут решить, какой тип метрики лучше всего подходит для определенного сценария. Решения основаны на размере приложения, ожидаемом объеме телеметрии и бизнес-требованиях для точности метрик и предупреждений. В этой статье объясняется различие между всеми поддерживаемыми типами метрик.
Стандартные метрики
Стандартные метрики в Application Insights — это предопределенные метрики, которые автоматически собираются и отслеживаются службой. Эти метрики охватывают широкий спектр показателей производительности и использования, таких как использование ЦП, потребление памяти, скорость запросов и время отклика. Стандартные метрики предоставляют полный обзор работоспособности и производительности приложения без дополнительной настройки. Стандартные метрики предварительно агрегируются во время сбора и хранятся в виде временных рядов в специализированном репозитории только с ключевыми измерениями, что дает им лучшую производительность во время запроса. Это делает стандартные метрики лучшим выбором для оповещений почти в реальном времени по измерениям метрик и более адаптивных панелей мониторинга.
Метрики на основе журнала
Метрики на основе журналов в Application Insights — это концепция времени запроса, представленная в виде временных рядов поверх данных журнала приложения. Базовые журналы не предварительно агрегируются во время сбора или хранения и сохраняют все свойства каждой записи журнала. Это хранение позволяет использовать свойства журнала в качестве измерений для метрик на основе журналов во время запроса для фильтрации и разделения метрик, предоставляя метрики на основе журнала превосходные аналитические и диагностические значения. Однако методы уменьшения объема телеметрии, такие как фильтрация выборки и телеметрии, часто используемые с приложениями мониторинга, создающими большие объемы телеметрии, влияют на количество собранных записей журнала и, следовательно, снижают точность метрик на основе журналов.
Пользовательские метрики (предварительная версия)
Пользовательские метрики в Application Insights позволяют определять и отслеживать определенные измерения, уникальные для приложения. Эти метрики можно создать, инструментируя код для отправки пользовательских данных телеметрии в Application Insights. Пользовательские метрики обеспечивают гибкость для мониторинга любого аспекта приложения, не охватываемого стандартными метриками, что позволяет получить более подробную информацию о поведении и производительности приложения.
Дополнительные сведения см. в разделе "Пользовательские метрики" в Azure Monitor (предварительная версия).
Примечание.
Application Insights также предоставляет функцию потока динамических метрик, которая позволяет практически в режиме реального времени отслеживать веб-приложения и не хранить данные телеметрии.
Сравнение метрик
Функция | Стандартные метрики | Метрики на основе журнала | Пользовательские метрики |
---|---|---|---|
Источник данных | Предварительно подготовленные данные временных рядов, собранные во время выполнения. | Производные от данных журнала с помощью запросов Kusto. | Определяемые пользователем метрики, собранные с помощью пакета SDK или API Application Insights. |
Степень детализации | Фиксированные интервалы (1 минуту). | Зависит от детализации самих данных журнала. | Гибкая детализация на основе определяемых пользователем метрик. |
Точность | Высокий, не затронутый выборкой журнала. | Может повлиять на выборку и фильтрацию. | Высокая точность, особенно при использовании предварительно подготовленных методов, таких как GetMetric. |
Стоимость | Включена в цену Application Insights. | На основе затрат на прием данных журнала и затраты на запрос. | См . модель ценообразования и хранение. |
Конфигурация | Автоматически доступен с минимальной конфигурацией. | Требуется настройка запросов журнала для извлечения требуемых метрик из данных журнала. | Требуется пользовательская реализация и конфигурация в коде. |
Производительность запросов | Быстрая, из-за предварительной агрегирования. | Медленнее, так как он включает запрос данных журнала. | Зависит от объема данных и сложности запросов. |
Память | Хранится как данные временных рядов в хранилище метрик Azure Monitor. | Хранится как журналы в рабочей области Log Analytics. | Хранится как в Log Analytics, так и в хранилище метрик Azure Monitor. |
Оповещение | Поддерживает оповещения в режиме реального времени. | Позволяет выполнять сложные сценарии оповещений на основе подробных данных журнала. | Гибкое оповещение на основе определяемых пользователем метрик. |
Ограничение службы | В соответствии с ограничениями Application Insights. | При условии ограничений рабочей области Log Analytics. | Ограничивается квотой для бесплатных метрик и затратами на дополнительные измерения. |
Варианты использования | Мониторинг в режиме реального времени, панели мониторинга производительности и краткие сведения. | Подробные диагностика, устранение неполадок и подробный анализ. | Адаптированные показатели производительности и метрики для конкретного бизнеса. |
Примеры | Использование ЦП, использование памяти, длительность запроса. | Количество запросов, трассировки исключений, вызовы зависимостей. | Пользовательские метрики для конкретных приложений, такие как взаимодействие пользователей, использование функций. |
Предварительная агрегирование метрик
Пакеты SDK OpenTelemetry и более новые пакеты SDK Application Insights (классический API) предварительно агрегировать метрики во время сбора, чтобы уменьшить объем данных, отправленных из пакета SDK в конечную точку канала телеметрии. Этот процесс применяется к стандартным метрикам, отправленным по умолчанию, поэтому точность не влияет на выборку или фильтрацию. Она также применяется к пользовательским метрикам, отправленным с помощью API OpenTelemetry или GetMetric and TrackValue, что приводит к снижению приема данных и снижению затрат. Если ваша версия пакета SDK Application Insights поддерживает GetMetric и TrackValue, это предпочтительный метод отправки пользовательских метрик.
Для пакетов SDK, которые не реализуют предварительную агрегирование (то есть старые версии пакетов SDK Application Insights или инструментирования браузера), серверная часть Application Insights по-прежнему заполняет новые метрики путем агрегирования событий, полученных конечной точкой канала телеметрии Application Insights. Для пользовательских метрик можно использовать метод trackMetric . Хотя вы не пользуетесь меньшим объемом данных, передаваемых по проводу, вы по-прежнему можете использовать предварительно подготовленные метрики и повысить производительность и поддержку практически в реальном времени измерения предупреждений с пакетами SDK, которые не преагрегируют метрики во время сбора.
Конечная точка канала телеметрии предварительно удаляет события перед приемом выборки. По этой причине выборка приема никогда не влияет на точность предварительно подготовленных метрик независимо от версии пакета SDK, используемой с приложением.
В следующих таблицах приведен список, в котором предварительная агрегирование будет предварительно загружена.
Предварительная агрегирование метрик с помощью дистрибутива OpenTelemetry в Azure Monitor
Текущий рабочий пакет SDK | Предварительная агрегирование стандартных метрик | Предварительная агрегирование пользовательских метрик |
---|---|---|
ASP.NET Core | SDK | Пакет SDK с помощью API OpenTelemetry |
.NET (через экспортера) | SDK | Пакет SDK с помощью API OpenTelemetry |
Java (3.x) | SDK | Пакет SDK с помощью API OpenTelemetry |
Java native | SDK | Пакет SDK с помощью API OpenTelemetry |
Node.js | SDK | Пакет SDK с помощью API OpenTelemetry |
Python | SDK | Пакет SDK с помощью API OpenTelemetry |
Предварительная агрегирование метрик с помощью пакета SDK Application Insights (классический API)
Текущий рабочий пакет SDK | Предварительная агрегирование стандартных метрик | Предварительная агрегирование пользовательских метрик |
---|---|---|
.NET Core и .NET Framework | ПАКЕТ SDK (версия 2.13.1+) | Пакет SDK (версия 2.7.2+) с помощью GetMetric Конечная точка канала телеметрии с помощью TrackMetric |
Java (2.x) | Конечная точка канала телеметрии | Конечная точка канала телеметрии с помощью TrackMetric |
JavaScript (для браузера) | Конечная точка канала телеметрии | Конечная точка канала телеметрии с помощью TrackMetric |
Node.js | Конечная точка канала телеметрии | Конечная точка канала телеметрии с помощью TrackMetric |
Python | Конечная точка канала телеметрии | Пакет SDK с помощью OpenCensus.stats (прекращено) Конечная точка канала телеметрии с помощью TrackMetric |
Внимание
Пакет SDK для Java 2.x Application Insights больше не рекомендуется. Вместо этого используйте предложение Java на основе OpenTelemetry.
Пакет SDK для Python OpenCensus снят. Мы рекомендуем использовать предложение Python на основе OpenTelemetry и предоставить рекомендации по миграции.
Предварительная агрегирование метрик с автоинструментацией
При автоинструментации пакет SDK автоматически добавляется в код приложения и не может быть настроен. Для пользовательских метрик требуется инструментирование вручную.
Текущий рабочий пакет SDK | Предварительная агрегирование стандартных метрик | Предварительная агрегирование пользовательских метрик |
---|---|---|
ASP.NET Core | Пакет SDK 1 | Не поддерживается |
ASP.NET | Пакет SDK 2 | Не поддерживается |
Java | SDK | Поддерживается 3 |
Node.js | SDK | Не поддерживается |
Python | SDK | Не поддерживается |
Сноски
- 1 ASP.NET Автоинструментация Core на Служба приложений выдает стандартные метрики без измерений. Для всех измерений требуется ручное инструментирование.
- 2 ASP.NET автоинструментации на виртуальных машинах или масштабируемых наборах виртуальных машин и локальной среде выдает стандартные метрики без измерений. То же самое верно для службы приложение Azure, но для уровня коллекции необходимо задать рекомендуемый уровень. Для всех измерений требуется ручное инструментирование.
- 3 Агент Java, используемый с автоинструментацией, фиксирует метрики, создаваемые популярными библиотеками, и отправляет их в Application Insights в качестве пользовательских метрик.
Пользовательские измерения метрик и предварительная статистическая обработка
Все метрики, отправляемые с помощью OpenTelemetry, trackMetric или GetMetric и TrackValue API, автоматически хранятся как в хранилище метрик, так и в журналах. Эти метрики можно найти в таблице пользовательских метрик в 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. Кроме того, предварительная версия пользовательских метрик без измерений пересылается в хранилище метрик по умолчанию.
Выбор параметра "Включить оповещение о пользовательских измерениях метрик" для хранения всех измерений предварительно подготовленных метрик в хранилище метрик может создавать дополнительные затраты на основе цен на пользовательские метрики.
Доступные метрики
В следующих разделах перечислены метрики с поддерживаемыми агрегатами и измерениями. Сведения о метриках на основе журнала включают в себя базовые инструкции запроса Kusto.
Метрики доступности
Метрики в категории доступности позволяют проверить работоспособность веб-приложения в любой точке мира. Настройте тесты доступности, чтобы начать использовать метрики из этой категории.
Доступность (availabilityResults/availabilityPercentage)
Метрика Доступность показывает процент запусков веб-тестов, в ходе которых не было выявлено проблем. Наименьшее возможное значение равно 0, что означает ошибку при выполнении всех веб-тестов. Значение 100 показывает, что все веб-тесты успешно прошли условия проверки.
Единица измерения | Поддерживаемые агрегирования | Поддерживаемые измерения |
---|---|---|
Процентное отношение | Ср. | Run location , Test name |
Продолжительность теста доступности (availabilityResults/duration)
Метрика Продолжительность теста доступности показывает, сколько времени заняло выполнение веб-теста. Для многошаговых веб-тестов метрика показывает общее время выполнения всех шагов.
Единица измерения | Поддерживаемые агрегирования | Поддерживаемые измерения |
---|---|---|
Миллисекунды | Максимальное, среднее, минимальное | Run location , , Test name Test result |
Тесты доступности (availabilityResults/count)
Метрика тесты доступности отражает количество веб-тестов, выполняемых Azure Monitor.
Единица измерения | Поддерживаемые агрегирования | Поддерживаемые измерения |
---|---|---|
Count | Count | Run location , , Test name Test result |
Метрики браузера
Метрики браузера собираются пакетом SDK JavaScript Application Insights из реальных браузеров конечных пользователей. Они предоставляют полезные сведения о работе пользователей с веб-приложением. Метрики браузера обычно не вычисляются. Это означает, что они обеспечивают более высокую точность определения частоты использования по сравнению с метриками на стороне сервера, которые могут быть искажены в ходе выборки.
Примечание.
Для сбора метрик браузера в приложение необходимо внедрить инструменты с помощью пакета SDK JavaScript для Application Insights.
Время загрузки страницы браузера (browserTimings/totalDuration)
Единица измерения | Поддерживаемые агрегирования | Поддерживаемые измерения |
---|---|---|
Миллисекунды | Максимальное, среднее, минимальное | нет |
Время обработки клиента (browserTiming/processingDuration)
Единица измерения | Поддерживаемые агрегирования | Поддерживаемые измерения |
---|---|---|
Миллисекунды | Максимальное, среднее, минимальное | нет |
Время подключения к сети при загрузке страницы (browserTimings/networkDuration)
Единица измерения | Поддерживаемые агрегирования | Поддерживаемые измерения |
---|---|---|
Миллисекунды | Максимальное, среднее, минимальное | нет |
Время получения отклика (browserTimings/receiveDuration)
Единица измерения | Поддерживаемые агрегирования | Поддерживаемые измерения |
---|---|---|
Миллисекунды | Максимальное, среднее, минимальное | нет |
Время отправки запроса (browserTimings/sendDuration)
Единица измерения | Поддерживаемые агрегирования | Поддерживаемые измерения |
---|---|---|
Миллисекунды | Максимальное, среднее, минимальное | нет |
Метрики сбоев
Метрики в Сбоях показывают проблемы с обработкой запросов, вызовами зависимостей и созданными исключениями.
Исключения браузера (exceptions/browser)
Эта метрика отражает число исключений, вызванных из кода приложения, выполняемого в браузере. В метрику включаются только исключения, которые были записаны с помощью вызова trackException()
API Application Insights.
Единица измерения | Поддерживаемые агрегирования | Поддерживаемые измерения |
---|---|---|
Count | Count | Cloud role name |
Сбои вызова зависимости (dependencies/failed)
Число неудачных вызовов зависимостей.
Единица измерения | Поддерживаемые агрегирования | Поддерживаемые измерения |
---|---|---|
Count | Count | Cloud role instance , Cloud role name , Dependency performance Dependency type Is traffic synthetic Result code Target of dependency call |
Исключения (exceptions/count)
Каждый раз при регистрации исключения в Application Insights возникает вызов метода trackException() пакета SDK. Метрика исключений показывает количество зарегистрированных исключений.
Единица измерения | Поддерживаемые агрегирования | Поддерживаемые измерения |
---|---|---|
Count | Count | Cloud role instance , , Cloud role name Device type |
Неудачные запросы (requests/failed)
Число отслеженных запросов к серверу, отмеченных как неудачные. По умолчанию пакет SDK Application Insights автоматически помечает каждый запрос сервера, который вернул код ответа HTTP 5xx или 4xx в качестве неудачного запроса. Эту логику можно настроить, изменив свойство success элемента телеметрии запроса в пользовательском инициализаторе телеметрии.
Единица измерения | Поддерживаемые агрегирования | Поддерживаемые измерения |
---|---|---|
Count | Count | Cloud role instance , , Cloud role name Is synthetic traffic , Request performance Result code |
Исключения сервера (exceptions/server)
Эта метрика показывает количество исключений сервера.
Единица измерения | Поддерживаемые агрегирования | Поддерживаемые измерения |
---|---|---|
Count | Count | Cloud role instance , Cloud role name |
Счетчики производительности
Используйте метрики в категории Счетчики производительности для доступа к счетчикам производительности системы, собранным Application Insights.
Доступная память (performanceCounters/availableMemory)
Единица измерения | Поддерживаемые агрегирования | Поддерживаемые измерения |
---|---|---|
Мегабайты / Гигабайты (зависимые от данных) | Максимальное, среднее, минимальное | Cloud role instance |
Частота исключений (performanceCounters/exceptionRate)
Единица измерения | Поддерживаемые агрегирования | Поддерживаемые измерения |
---|---|---|
Count | Максимальное, среднее, минимальное | Cloud role instance |
Время выполнения запроса НТТР (performanceCounters/requestExecutionTime)
Единица измерения | Поддерживаемые агрегирования | Поддерживаемые измерения |
---|---|---|
Миллисекунды | Максимальное, среднее, минимальное | Cloud role instance |
Скорость HTTP-запроса (performanceCounters/requestsPerSecond)
Единица измерения | Поддерживаемые агрегирования | Поддерживаемые измерения |
---|---|---|
Число запросов в секунду | Максимальное, среднее, минимальное | Cloud role instance |
НТТР-запросы в очереди приложений (performanceCounters/requestsInQueue)
Единица измерения | Поддерживаемые агрегирования | Поддерживаемые измерения |
---|---|---|
Count | Максимальное, среднее, минимальное | Cloud role instance |
ЦП процесса (performanceCounters/processCpuPercentage)
Метрика показывает, какая часть общей мощности процессора потребляется процессом, на котором размещается отслеживаемое приложение.
Единица измерения | Поддерживаемые агрегирования | Поддерживаемые измерения |
---|---|---|
Процентное отношение | Максимальное, среднее, минимальное | Cloud role instance |
Примечание.
Диапазон метрики — от 0 до 100 * n, где n — число доступных ядер ЦП. Например, значение метрики 200 % может означать полное использование двух ядер ЦП или половину использования 4 ядер ЦП и т. д. Нормализованная загрузка ЦП процесса — это альтернативная метрика, собираемая многими пакетами SDK, которая представляет одно и то же значение, но делит его на число доступных ядер ЦП. Таким образом, диапазон метрики Нормализованная загрузка ЦП процесса составляет от 0 до 100.
Скорость ввода-вывода процесса (performanceCounters/processIOBytesPerSecond)
Единица измерения | Поддерживаемые агрегирования | Поддерживаемые измерения |
---|---|---|
Байты в секунду | Среднее, Мин., Макс. | Cloud role instance |
Байты исключительного пользования процесса (performanceCounters/processPrivateBytes)
Объем необщей памяти, выделенной отслеживаемой процедурой для ее данных.
Единица измерения | Поддерживаемые агрегирования | Поддерживаемые измерения |
---|---|---|
Байт | Среднее, Мин., Макс. | Cloud role instance |
Загруженность процессора (performanceCounters/processorCpuPercentage)
Использование ЦП всеми процессами, работающими на экземпляре контролируемого сервера.
Единица измерения | Поддерживаемые агрегирования | Поддерживаемые измерения |
---|---|---|
Процентное отношение | Среднее, Мин., Макс. | Cloud role instance |
Примечание.
Метрика загруженности процессора недоступна для приложений, размещенных в службах приложений Azure. Используйте метрику ЦП процесса для отслеживания загрузки ЦП веб-приложениями, размещенными в службах приложений.
Метрики сервера
Вызовы зависимостей (dependencies/count)
Эта метрика зависит от количества вызовов зависимостей.
Единица измерения | Поддерживаемые агрегирования | Поддерживаемые измерения |
---|---|---|
Count | Count | Cloud role instance , Cloud role name , Dependency performance Dependency type Is traffic synthetic Result code Successful call Target of a dependency call |
Длительность зависимости (dependencies/duration)
Эта метрика относится к длительности вызовов зависимостей.
Единица измерения | Поддерживаемые агрегирования | Поддерживаемые измерения |
---|---|---|
Миллисекунды | Максимальное, среднее, минимальное | Cloud role instance , Cloud role name , Dependency performance Dependency type Is traffic synthetic Result code Successful call Target of a dependency call |
Частота запросов к серверу (requests/rate)
Эта метрика отражает количество входящих запросов сервера, полученных веб-приложением.
Единица измерения | Поддерживаемые агрегирования | Поддерживаемые измерения |
---|---|---|
Количество в секунду | Ср. | Cloud role instance , , Cloud role name , Request performance Result code Is traffic synthetic Successful request |
Запросы сервера (requests/count)
Единица измерения | Поддерживаемые агрегирования | Поддерживаемые измерения |
---|---|---|
Count | Count | Cloud role instance , , Cloud role name , Request performance Result code Is traffic synthetic Successful request |
Время ответа сервера (requests/duration)
Эта метрика отражает время, затраченное на обработку входящих запросов серверами.
Единица измерения | Поддерживаемые агрегирования | Поддерживаемые измерения |
---|---|---|
Миллисекунды | Максимальное, среднее, минимальное | Cloud role instance , , Cloud role name , Request performance Result code Is traffic synthetic Successful request |
Метрики использования
Время загрузки страницы (pageViews/duration)
Эта метрика относится к количеству времени, затраченного на загрузку событий PageView.
Единица измерения | Поддерживаемые агрегирования | Поддерживаемые измерения |
---|---|---|
Миллисекунды | Максимальное, среднее, минимальное | Cloud role name , Is traffic synthetic |
Просмотры страниц (pageViews/Count)
Число событий PageView, регистрируемых с помощью метода TrackPageView() API Application Insights.
Единица измерения | Поддерживаемые агрегирования | Поддерживаемые измерения |
---|---|---|
Count | Count | Cloud role name , Is traffic synthetic |
Трассировки (traces/count)
Число трассировочных инструкций, регистрируемых с помощью вызова метода TrackTrace() Application Insights API.
Единица измерения | Поддерживаемые агрегирования | Поддерживаемые измерения |
---|---|---|
Count | Count | Cloud role instance , , Cloud role name Is traffic synthetic Severity level |
Пользовательские метрики
Неприменимо к стандартным метрикам.
Доступ к метрикам на основе журналов непосредственно с помощью REST API Application Insights
REST API Application Insights позволяет программным способом получить метрики на основе журналов. Он также содержит необязательный параметрai.include-query-payload
, который при добавлении в строку запроса запрашивает API не только данные временных рядов, но и инструкцию язык запросов Kusto (KQL), используемую для получения. Этот параметр может быть особенно полезным для пользователей, стремясь понять связь между необработанными событиями в Log Analytics и результирующей метрикой на основе журналов.
Чтобы получить доступ к данным напрямую, передайте параметр ai.include-query-payload
в API Application Insights в запросе с помощью KQL.
Примечание.
Чтобы получить базовый запрос журналов, DEMO_APP
и DEMO_KEY
не нужно заменить его. Если вы просто хотите получить инструкцию KQL, а не данные временных рядов собственного приложения, вы можете скопировать и вставить его непосредственно в строку поиска браузера.
api.applicationinsights.io/v1/apps/DEMO_APP/metrics/users/authenticated?api_key=DEMO_KEY&prefer=ai.include-query-payload
Ниже приведен пример возвращаемой инструкции KQL для метрики "Прошедшие проверку подлинности пользователей". (В этом примере "users/authenticated"
— это идентификатор метрики.)
output
{
"value": {
"start": "2024-06-21T09:14:25.450Z",
"end": "2024-06-21T21:14:25.450Z",
"users/authenticated": {
"unique": 0
}
},
"@ai.query": "union (traces | where timestamp >= datetime(2024-06-21T09:14:25.450Z) and timestamp < datetime(2024-06-21T21:14:25.450Z)), (requests | where timestamp >= datetime(2024-06-21T09:14:25.450Z) and timestamp < datetime(2024-06-21T21:14:25.450Z)), (pageViews | where timestamp >= datetime(2024-06-21T09:14:25.450Z) and timestamp < datetime(2024-06-21T21:14:25.450Z)), (dependencies | where timestamp >= datetime(2024-06-21T09:14:25.450Z) and timestamp < datetime(2024-06-21T21:14:25.450Z)), (customEvents | where timestamp >= datetime(2024-06-21T09:14:25.450Z) and timestamp < datetime(2024-06-21T21:14:25.450Z)), (availabilityResults | where timestamp >= datetime(2024-06-21T09:14:25.450Z) and timestamp < datetime(2024-06-21T21:14:25.450Z)), (exceptions | where timestamp >= datetime(2024-06-21T09:14:25.450Z) and timestamp < datetime(2024-06-21T21:14:25.450Z)), (customMetrics | where timestamp >= datetime(2024-06-21T09:14:25.450Z) and timestamp < datetime(2024-06-21T21:14:25.450Z)), (browserTimings | where timestamp >= datetime(2024-06-21T09:14:25.450Z) and timestamp < datetime(2024-06-21T21:14:25.450Z)) | where notempty(user_AuthenticatedId) | summarize ['users/authenticated_unique'] = dcount(user_AuthenticatedId)"
}