Поделиться через


встроенные метрики ASP.NET Core

В этой статье описываются встроенные метрики для ASP.NET Core, созданные с помощью System.Diagnostics.Metrics API. Список метрик на основе старого API EventCounters см. в разделе "Доступные счетчики".

Сведения о сборе, обогащении и тестировании ASP.NET Основных метрик см. в статье "Использование ASP.NET Основных метрик "

Microsoft.AspNetCore.Hosting

Microsoft.AspNetCore.Hosting Метрики сообщают высокоуровневую информацию о HTTP-запросах, полученных ASP.NET Core:

Метрика: http.server.request.duration

Имя Тип инструмента Единица (UCUM) Описание
http.server.request.duration Гистограмма s Измеряет длительность входящих HTTP-запросов.
Атрибут Тип Описание Примеры Присутствие
http.route струна Соответствующий маршрут. {controller}/{action}/
{id?}
Если он доступен.
error.type струна Описывает класс ошибки, с которым закончилась операция. timeout; name_resolution_error; 500 Если запрос завершился ошибкой.
http.request.method струна Метод HTTP-запроса. GET; POST; HEAD Всегда
http.response.status_code инт код состояния http-ответа. 200 Если он был отправлен.
network.protocol.version струна Версия протокола, указанного в network.protocol.name. 3.1.1 Всегда
url.scheme струна Схема URI компонент, определяющий используемый протокол. http; https Всегда
aspnetcore.request.is_unhandled булевый Значение True, если запрос не был обработан конвейером приложения. true Если запрос был необработанным.

Время, используемое для обработки входящего HTTP-запроса, измеряемого на уровне размещения ASP.NET Core. Измерение времени начинается после того, как базовый веб-узел имеет следующие значения:

  • Достаточно проанализировать заголовки HTTP-запроса в входящего сетевого потока, чтобы определить новый запрос.
  • Инициализировал структуры данных контекста, такие как HttpContext.

Время заканчивается, когда:

  • Конвейер обработчика ядра ASP.NET завершен.
  • Все данные ответа отправлены.
  • Структуры данных контекста для запроса удаляются.

При использовании OpenTelemetry контейнеры по умолчанию для этой метрики имеют значение [ 0.005, 0.01, 0.025, 0.05, 0.075, 0.1, 0.25, 0.5, 0.75, 1, 2.5, 5, 7.5, 10 ].

Метрика: http.server.active_requests

Имя Тип инструмента Единица (UCUM) Описание
http.server.active_requests UpDownCounter {request} Измеряет количество одновременных HTTP-запросов, которые в настоящее время выполняются в режиме полета.
Атрибут Тип Описание Примеры Присутствие
http.request.method струна Метод HTTP-запроса. [1] GET; POST; HEAD Всегда
url.scheme струна Схема URI компонент, определяющий используемый протокол. http; https Всегда

.

Microsoft.AspNetCore.Routing

Microsoft.AspNetCore.Routing Метрики сообщают сведения о маршрутизации HTTP-запросов к конечным точкам ASP.NET Core:

Метрика: aspnetcore.routing.match_attempts

Имя Тип инструмента Единица (UCUM) Описание
aspnetcore.routing.match_attempts Счетчик {match_attempt} Количество запросов, которые пытались сопоставить с конечной точкой.
Атрибут Тип Описание Примеры Присутствие
aspnetcore.routing.match_status струна Результат сопоставления success; failure Всегда
aspnetcore.routing.is_fallback_route булевый Значение, указывающее, является ли соответствующий маршрут резервным. True Если маршрут был успешно сопоставлен.
http.route струна Соответствующий маршрут {controller}/{action}/
{id?}
Если маршрут был успешно сопоставлен.

.

Microsoft.AspNetCore.Diagnostics

Сведения Microsoft.AspNetCore.Diagnostics о диагностике метрик из по промежуточного слоя обработки ошибок ASP.NET Core:

Метрика: aspnetcore.diagnostics.exceptions

Имя Тип инструмента Единица (UCUM) Описание
aspnetcore.diagnostics.exceptions Счетчик {exception} Количество исключений, пойманных по промежуточному слоям обработки исключений.
Атрибут Тип Описание Примеры Присутствие
aspnetcore.diagnostics.exception.result струна ASP.NET результат обработки по промежуточному слоям исключений ASP.NET handled; unhandled Всегда
aspnetcore.diagnostics.handler.type струна Полное имя IExceptionHandler типа реализации, обрабатывающей исключение. Contoso.MyHandler Если исключение было обработано этим обработчиком.
exception.type струна Полное имя типа исключения. System.OperationCanceledException; Contoso.MyException Всегда

.

Microsoft.AspNetCore.RateLimiting

Microsoft.AspNetCore.RateLimiting Метрики сообщают о скорости, ограничивающей информацию из ASP.NET по промежуточному по промежуточному слоям, ограничивающим частоту основных показателей:

Метрика: aspnetcore.rate_limiting.active_request_leases

Имя Тип инструмента Единица (UCUM) Описание
aspnetcore.rate_limiting.active_request_leases UpDownCounter {request} Количество запросов, которые в настоящее время активны на сервере, в которых хранится ограничение скорости аренды.
Атрибут Тип Описание Примеры Присутствие
aspnetcore.rate_limiting.policy струна Имя политики ограничения скорости. fixed; sliding; token Если соответствующая конечная точка для запроса имела политику ограничения скорости.

.

Метрика: aspnetcore.rate_limiting.request_lease.duration

Имя Тип инструмента Единица (UCUM) Описание
aspnetcore.rate_limiting.request_lease.duration Гистограмма s Длительность ограничения скорости аренды, удерживаемой запросами на сервере.
Атрибут Тип Описание Примеры Присутствие
aspnetcore.rate_limiting.policy струна Имя политики ограничения скорости. fixed; sliding; token Если соответствующая конечная точка для запроса имела политику ограничения скорости.

.

Метрика: aspnetcore.rate_limiting.queued_requests

Имя Тип инструмента Единица (UCUM) Описание
aspnetcore.rate_limiting.queued_requests UpDownCounter {request} Количество запросов, которые в настоящее время находятся в очереди, ожидающих получения ограничения скорости аренды.
Атрибут Тип Описание Примеры Присутствие
aspnetcore.rate_limiting.policy струна Имя политики ограничения скорости. fixed; sliding; token Если соответствующая конечная точка для запроса имела политику ограничения скорости.

.

Метрика: aspnetcore.rate_limiting.request.time_in_queue

Имя Тип инструмента Единица (UCUM) Описание
aspnetcore.rate_limiting.request.time_in_queue Гистограмма s Время, затраченное в очереди, ожидающее получения ограничения скорости аренды.
Атрибут Тип Описание Примеры Присутствие
aspnetcore.rate_limiting.policy струна Имя политики ограничения скорости. fixed; sliding; token Если соответствующая конечная точка для запроса имела политику ограничения скорости.
aspnetcore.rate_limiting.result струна Результат ограничения скорости показывает, была ли получена аренда или содержит причину отклонения. acquired; request_canceled Всегда

.

Метрика: aspnetcore.rate_limiting.requests

Имя Тип инструмента Единица (UCUM) Описание
aspnetcore.rate_limiting.requests Счетчик {request} Количество запросов, пытающихся получить ограничение скорости аренды.
Атрибут Тип Описание Примеры Присутствие
aspnetcore.rate_limiting.policy струна Имя политики ограничения скорости. fixed; sliding; token Если соответствующая конечная точка для запроса имела политику ограничения скорости.
aspnetcore.rate_limiting.result струна Результат ограничения скорости показывает, была ли получена аренда или содержит причину отклонения. acquired; request_canceled Всегда

.

Microsoft.AspNetCore.HeaderParsing

Microsoft.AspNetCore.HeaderParsing Метрики сообщают о синтаксическом анализе заголовка ASP.NET Core:

Метрика: aspnetcore.header_parsing.parse_errors

Имя Тип инструмента Единица (UCUM) Описание
aspnetcore.header_parsing.parse_errors Счетчик {parse_error} Количество ошибок, возникших при анализе заголовков HTTP-запроса.
Атрибут Тип Описание Примеры Присутствие
aspnetcore.header_parsing.header.name струна Имя заголовка. Content-Type Всегда
error.type струна Сообщение об ошибке. Unable to parse media type value. Всегда

.

Метрика: aspnetcore.header_parsing.cache_accesses

Эта метрика создается только для средства синтаксического анализа заголовка HTTP-запроса, поддерживающие кэширование.

Имя Тип инструмента Единица (UCUM) Описание
aspnetcore.header_parsing.cache_accesses Счетчик {cache_access} Количество попыток доступа к кэшу, в котором хранятся значения синтаксического заголовка.
Атрибут Тип Описание Примеры Присутствие
aspnetcore.header_parsing.header.name струна Имя заголовка. Content-Type Всегда
aspnetcore.header_parsing.cache_access.type струна Значение, указывающее, найдено ли значение заголовка в кэше или нет. Hit; Miss Всегда

.

Microsoft.AspNetCore.Server.Kestrel

Microsoft.AspNetCore.Server.Kestrel Метрики сообщают сведения о подключении HTTP из веб-сервера ASP.NET CoreKestrel:

Метрика: kestrel.active_connections

Имя Тип инструмента Единица (UCUM) Описание
kestrel.active_connections UpDownCounter {connection} Количество подключений, которые в настоящее время активны на сервере.
Атрибут Тип Описание Примеры Присутствие
network.transport струна транспортный слой OSI или метод обмена данными между процессами. tcp; unix Всегда
network.type струна сетевой слой OSI или эквивалентный не OSI. ipv4; ipv6 Если транспорт имеет tcp значение или udp.
server.address струна Доменное имя сервера, если доступно без обратного поиска DNS; в противном случае IP-адрес или имя сокета домена Unix. example.com Всегда
server.port инт Номер порта сервера 80; 8080; 443 Если транспорт имеет tcp значение или udp.

.

Метрика: kestrel.connection.duration

Имя Тип инструмента Единица (UCUM) Описание
kestrel.connection.duration Гистограмма s Длительность подключений на сервере.
Атрибут Тип Описание Примеры Присутствие
error.type струна Описывает тип ошибки, с которым завершилось подключение или необработанным типом исключения, вызванным во время конвейера подключения. Известные ошибки подключения можно найти в семантических соглашениях для Kestrel метрик веб-сервера. connection_reset; invalid_request_headers; System.OperationCanceledException Если соединение закончилось с известной ошибкой или возникло исключение.
network.protocol.name струна Уровень приложений OSI или эквивалентный не OSI. http; web_sockets Всегда
network.protocol.version струна Версия протокола, указанного в network.protocol.name. 1.1; 2 Всегда
network.transport струна транспортный слой OSI или метод обмена данными между процессами. tcp; unix Всегда
network.type струна сетевой слой OSI или эквивалентный не OSI. ipv4; ipv6 Если транспорт имеет tcp значение или udp.
server.address струна Доменное имя сервера, если доступно без обратного поиска DNS; в противном случае IP-адрес или имя сокета домена Unix. example.com Всегда
server.port инт Номер порта сервера 80; 8080; 443 Если транспорт имеет tcp значение или udp.
tls.protocol.version струна Версия протокола TLS. 1.2; 1.3 Если подключение защищено с помощью TLS.

Так как эта метрика отслеживает длительность подключения, и в идеале http-подключения используются для нескольких запросов, контейнеры должны быть длиннее, чем те, которые используются для длительности запроса. Например, использование [ 0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10, 30, 60, 120, 3000] предоставляет верхний контейнер 5 минут.

Если соединение заканчивается известной ошибкой, error.type значение атрибута устанавливается в известный тип ошибки. Известные ошибки подключения можно найти в семантических соглашениях для Kestrel метрик веб-сервера.

Метрика: kestrel.rejected_connections

Имя Тип инструмента Единица (UCUM) Описание
kestrel.rejected_connections Счетчик {connection} Количество подключений, отклоненных сервером.
Атрибут Тип Описание Примеры Присутствие
network.transport струна транспортный слой OSI или метод обмена данными между процессами. tcp; unix Всегда
network.type струна сетевой слой OSI или эквивалентный не OSI. ipv4; ipv6 Если транспорт имеет tcp значение или udp.
server.address струна Доменное имя сервера, если доступно без обратного поиска DNS; в противном случае IP-адрес или имя сокета домена Unix. example.com Всегда
server.port инт Номер порта сервера 80; 8080; 443 Если транспорт имеет tcp значение или udp.

Подключения отклоняются, если текущее активное число превышает значение, настроенное с MaxConcurrentConnectionsпомощью .

.

Метрика: kestrel.queued_connections

Имя Тип инструмента Единица (UCUM) Описание
kestrel.queued_connections UpDownCounter {connection} Количество подключений, которые в настоящее время находятся в очереди и ожидают запуска.
Атрибут Тип Описание Примеры Присутствие
network.transport струна транспортный слой OSI или метод обмена данными между процессами. tcp; unix Всегда
network.type струна сетевой слой OSI или эквивалентный не OSI. ipv4; ipv6 Если транспорт имеет tcp значение или udp.
server.address струна Доменное имя сервера, если доступно без обратного поиска DNS; в противном случае IP-адрес или имя сокета домена Unix. example.com Всегда
server.port инт Номер порта сервера 80; 8080; 443 Если транспорт имеет tcp значение или udp.

.

Метрика: kestrel.queued_requests

Имя Тип инструмента Единица (UCUM) Описание
kestrel.queued_requests UpDownCounter {request} Количество HTTP-запросов в мультиплексированных подключениях (HTTP/2 и HTTP/3), которые в настоящее время находятся в очереди и ожидают запуска.
Атрибут Тип Описание Примеры Присутствие
network.protocol.name струна Уровень приложений OSI или эквивалентный не OSI. http; web_sockets Всегда
network.protocol.version струна Версия протокола, указанного в network.protocol.name. 1.1; 2 Всегда
network.transport струна транспортный слой OSI или метод обмена данными между процессами. tcp; unix Всегда
network.type струна сетевой слой OSI или эквивалентный не OSI. ipv4; ipv6 Если транспорт имеет tcp значение или udp.
server.address струна Доменное имя сервера, если доступно без обратного поиска DNS; в противном случае IP-адрес или имя сокета домена Unix. example.com Всегда
server.port инт Номер порта сервера 80; 8080; 443 Если транспорт имеет tcp значение или udp.

.

Метрика: kestrel.upgraded_connections

Имя Тип инструмента Единица (UCUM) Описание
kestrel.upgraded_connections UpDownCounter {connection} Количество подключений, которые в настоящее время обновлены (WebSockets).
Атрибут Тип Описание Примеры Присутствие
network.transport струна транспортный слой OSI или метод обмена данными между процессами. tcp; unix Всегда
network.type струна сетевой слой OSI или эквивалентный не OSI. ipv4; ipv6 Если транспорт имеет tcp значение или udp.
server.address струна Доменное имя сервера, если доступно без обратного поиска DNS; в противном случае IP-адрес или имя сокета домена Unix. example.com Всегда
server.port инт Номер порта сервера 80; 8080; 443 Если транспорт имеет tcp значение или udp.

Счетчик отслеживает только подключения HTTP/1.1.

.

Метрика: kestrel.tls_handshake.duration

Имя Тип инструмента Единица (UCUM) Описание
kestrel.tls_handshake.duration Гистограмма s Длительность подтверждения TLS на сервере.
Атрибут Тип Описание Примеры Присутствие
error.type струна Полное имя типа исключения. System.OperationCanceledException; Contoso.MyException Если исключение было создано.
network.transport струна транспортный слой OSI или метод обмена данными между процессами. tcp; unix Всегда
network.type струна сетевой слой OSI или эквивалентный не OSI. ipv4; ipv6 Если транспорт имеет tcp значение или udp.
server.address струна Доменное имя сервера, если доступно без обратного поиска DNS; в противном случае IP-адрес или имя сокета домена Unix. example.com Всегда
server.port инт Номер порта сервера 80; 8080; 443 Если транспорт имеет tcp значение или udp.
tls.protocol.version струна Версия протокола TLS. 1.2; 1.3 Если подключение защищено с помощью TLS.

При использовании OpenTelemetry контейнеры по умолчанию для этого metic имеют значение [ 0.005, 0.01, 0.025, 0.05, 0.075, 0.1, 0.25, 0.5, 0.75, 1, 2.5, 5, 7.5, 10 ].

.

Метрика: kestrel.active_tls_handshakes

Имя Тип инструмента Единица (UCUM) Описание
kestrel.active_tls_handshakes UpDownCounter {handshake} Количество подтверждения TLS, которые в настоящее время выполняются на сервере.
Атрибут Тип Описание Примеры Присутствие
network.transport струна транспортный слой OSI или метод обмена данными между процессами. tcp; unix Всегда
network.type струна сетевой слой OSI или эквивалентный не OSI. ipv4; ipv6 Если транспорт имеет tcp значение или udp.
server.address струна Доменное имя сервера, если доступно без обратного поиска DNS; в противном случае IP-адрес или имя сокета домена Unix. example.com Всегда
server.port инт Номер порта сервера 80; 8080; 443 Если транспорт имеет tcp значение или udp.

.

Microsoft.AspNetCore.Http.Connections

Microsoft.AspNetCore.Http.Connections Метрики сообщают сведения о подключении из ASP.NET CoreSignalR:

Метрика: signalr.server.connection.duration

Имя Тип инструмента Единица (UCUM) Описание
signalr.server.connection.duration Гистограмма s Длительность подключений на сервере.
Атрибут Тип Описание Примеры Присутствие
signalr.connection.status струна SignalR Состояние закрытия HTTP-подключения. app_shutdown; timeout Всегда
signalr.transport струна SignalR Тип транспорта web_sockets; long_polling Всегда

.

Ценность Описание
normal_closure Подключение было закрыто обычно.
timeout Подключение было закрыто из-за времени ожидания.
app_shutdown Подключение было закрыто, так как приложение завершает работу.

signalr.transport является одним из следующих вариантов:

Ценность Протокол
server_sent_events События, отправленные сервером
long_polling Длинный опрос
web_sockets WebSocket

Так как эта метрика отслеживает длительность подключения, и в идеале SignalR подключения устойчивы, контейнеры должны быть длиннее, чем те, которые используются для длительности запроса. Например, при использовании [0, 0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10, 30, 60, 120, 300] предоставляется верхний контейнер 5 минут.

.

Метрика: signalr.server.active_connections

Имя Тип инструмента Единица (UCUM) Описание
signalr.server.active_connections UpDownCounter {connection} Количество подключений, которые в настоящее время активны на сервере.
Атрибут Тип Описание Примеры Присутствие
signalr.connection.status струна SignalR Состояние закрытия HTTP-подключения. app_shutdown; timeout Всегда
signalr.transport струна SignalR Тип транспорта web_sockets; long_polling Всегда

.

Microsoft.AspNetCore.Authorization

Microsoft.AspNetCore.Authorization Метрики сообщают сведения о попытках авторизации в приложениях ASP.NET Core:

Метрика: aspnetcore.authorization.attempts

Имя Тип инструмента Единица (UCUM) Описание
aspnetcore.authorization.attempts Счетчик {request} Общее количество запросов, для которых была предпринята попытка авторизации.
Атрибут Тип Описание Примеры Присутствие
user.is_authenticated булевый Указывает, поступил ли запрос от пользователя, прошедшего проверку подлинности true Required
aspnetcore.authorization.policy струна Имя политики авторизации. AtLeast21; EmployeeOnly Conditionally required Если используется политика авторизации
aspnetcore.authorization.result струна Успешно ли выполнена авторизация или завершилась ли ошибка. success; failure Conditionally Required Если исключение не возникает во время авторизации
error.type струна Полное имя типа исключения. System.InvalidOperationException; Contoso.MyException Conditionally Required Значение , если запрос завершился ошибкой

.

Microsoft.AspNetCore.Authentication

Microsoft.AspNetCore.Authentication Метрики сообщают сведения о проверке подлинности в приложениях ASP.NET Core:

Метрика: aspnetcore.authentication.authenticate.duration

Имя Тип инструмента Единица (UCUM) Описание
aspnetcore.authentication.authenticate.duration Гистограмма s Длительность проверки подлинности для запроса.
Атрибут Тип Описание Примеры Присутствие
aspnetcore.authentication.result струна Результат проверки подлинности. success; failure; none; _OTHER Conditionally Required Если запрос не закончился ошибкой
aspnetcore.authentication.scheme струна Имя схемы проверки подлинности. Bearer; Cookies Conditionally Required Если запрос не закончился ошибкой
error.type струна Полное имя типа исключения. System.InvalidOperationException; Contoso.MyException Conditionally Required Если проверка подлинности завершилась ошибкой или запрос завершился ошибкой

.

Метрика: aspnetcore.authentication.challenges

Имя Тип инструмента Единица (UCUM) Описание
aspnetcore.authentication.challenges Счетчик {request} Общее количество вызовов схемы.
Атрибут Тип Описание Примеры Присутствие
aspnetcore.authentication.scheme струна Имя схемы проверки подлинности. Bearer; Cookies Conditionally Required Если запрос не закончился ошибкой
error.type струна Полное имя типа исключения. System.InvalidOperationException; Contoso.MyException Conditionally Required Значение , если запрос завершился ошибкой

.

Метрика: aspnetcore.authentication.forbids

Имя Тип инструмента Единица (UCUM) Описание
aspnetcore.authentication.forbids Счетчик {request} Общее количество попыток пользователя, прошедшего проверку подлинности, для доступа к ресурсу, к который они не могут получить доступ.
Атрибут Тип Описание Примеры Присутствие
aspnetcore.authentication.scheme струна Имя схемы проверки подлинности. Bearer; Cookies Conditionally Required Если запрос не закончился ошибкой
error.type струна Полное имя типа исключения. System.InvalidOperationException; Contoso.MyException Conditionally Required Значение , если запрос завершился ошибкой

.

Метрика: aspnetcore.authentication.sign_ins

Имя Тип инструмента Единица (UCUM) Описание
aspnetcore.authentication.sign_ins Счетчик {request} Общее количество операций входа субъекта с помощью схемы.
Атрибут Тип Описание Примеры Присутствие
aspnetcore.authentication.scheme струна Имя схемы проверки подлинности. Bearer; Cookies Conditionally Required Если запрос не закончился ошибкой
error.type струна Полное имя типа исключения. System.InvalidOperationException; Contoso.MyException Conditionally Required Значение , если запрос завершился ошибкой

.

Метрика: aspnetcore.authentication.sign_outs

Имя Тип инструмента Единица (UCUM) Описание
aspnetcore.authentication.sign_outs Счетчик {request} Общее количество раз, когда субъект выходит из схемы.
Атрибут Тип Описание Примеры Присутствие
aspnetcore.authentication.scheme струна Имя схемы проверки подлинности. Bearer; Cookies Conditionally Required Если запрос не закончился ошибкой
error.type струна Полное имя типа исключения. System.InvalidOperationException; Contoso.MyException Conditionally Required Значение , если запрос завершился ошибкой

В этой статье описываются встроенные метрики для ASP.NET Core, созданные с помощью System.Diagnostics.Metrics API. Список метрик на основе старого API EventCounters см. в разделе "Доступные счетчики".

Подсказка

Дополнительные сведения о сборе, обогащении и тестировании ASP.NET основных метрик см. в разделе "Использование ASP.NET основных метрик".

Microsoft.AspNetCore.Hosting

Microsoft.AspNetCore.Hosting Метрики сообщают высокоуровневую информацию о HTTP-запросах, полученных ASP.NET Core:

Метрика: http.server.request.duration
Имя Тип инструмента Единица (UCUM) Описание
http.server.request.duration Гистограмма s Измеряет длительность входящих HTTP-запросов.
Атрибут Тип Описание Примеры Присутствие
http.route струна Соответствующий маршрут. {controller}/{action}/{id?} Если он доступен.
error.type струна Описывает класс ошибки, с которым закончилась операция. timeout; name_resolution_error; 500 Если запрос завершился ошибкой.
http.request.method струна Метод HTTP-запроса. GET; POST; HEAD Всегда
http.response.status_code инт код состояния http-ответа. 200 Если он был отправлен.
network.protocol.version струна Версия протокола, указанного в network.protocol.name. 3.1.1 Всегда
url.scheme струна Схема URI компонент, определяющий используемый протокол. http; https Всегда
aspnetcore.request.is_unhandled булевый Значение True, если запрос не был обработан конвейером приложения. true Если запрос был необработанным.

Время, используемое для обработки входящего HTTP-запроса, измеряемого на уровне размещения ASP.NET Core. Измерение времени начинается после того, как базовый веб-узел имеет следующие значения:

  • Достаточно проанализировать заголовки HTTP-запроса в входящего сетевого потока, чтобы определить новый запрос.
  • Инициализировал структуры данных контекста, такие как HttpContext.

Время заканчивается, когда:

  • Конвейер обработчика ядра ASP.NET завершен.
  • Все данные ответа отправлены.
  • Структуры данных контекста для запроса удаляются.

При использовании OpenTelemetry контейнеры по умолчанию для этой метрики имеют значение [ 0.005, 0.01, 0.025, 0.05, 0.075, 0.1, 0.25, 0.5, 0.75, 1, 2.5, 5, 7.5, 10 ].

Метрика: http.server.active_requests
Имя Тип инструмента Единица (UCUM) Описание
http.server.active_requests UpDownCounter {request} Измеряет количество одновременных HTTP-запросов, которые в настоящее время выполняются в режиме полета.
Атрибут Тип Описание Примеры Присутствие
http.request.method струна Метод HTTP-запроса. [1] GET; POST; HEAD Всегда
url.scheme струна Схема URI компонент, определяющий используемый протокол. http; https Всегда

Microsoft.AspNetCore.Routing

Microsoft.AspNetCore.Routing Метрики сообщают сведения о маршрутизации HTTP-запросов к конечным точкам ASP.NET Core:

Метрика: aspnetcore.routing.match_attempts
Имя Тип инструмента Единица (UCUM) Описание
aspnetcore.routing.match_attempts Счетчик {match_attempt} Количество запросов, которые пытались сопоставить с конечной точкой.
Атрибут Тип Описание Примеры Присутствие
aspnetcore.routing.match_status струна Результат сопоставления success; failure Всегда
aspnetcore.routing.is_fallback_route булевый Значение, указывающее, является ли соответствующий маршрут резервным. True Если маршрут был успешно сопоставлен.
http.route струна Соответствующий маршрут {controller}/{action}/{id?} Если маршрут был успешно сопоставлен.

Microsoft.AspNetCore.Diagnostics

Сведения Microsoft.AspNetCore.Diagnostics о диагностике метрик из по промежуточного слоя обработки ошибок ASP.NET Core:

Метрика: aspnetcore.diagnostics.exceptions
Имя Тип инструмента Единица (UCUM) Описание
aspnetcore.diagnostics.exceptions Счетчик {exception} Количество исключений, пойманных по промежуточному слоям обработки исключений.
Атрибут Тип Описание Примеры Присутствие
aspnetcore.diagnostics.exception.result струна ASP.NET результат обработки по промежуточному слоям исключений ASP.NET handled; unhandled Всегда
aspnetcore.diagnostics.handler.type струна Полное имя IExceptionHandler типа реализации, обрабатывающей исключение. Contoso.MyHandler Если исключение было обработано этим обработчиком.
exception.type струна Полное имя типа исключения. System.OperationCanceledException; Contoso.MyException Всегда

Microsoft.AspNetCore.RateLimiting

Microsoft.AspNetCore.RateLimiting Метрики сообщают о скорости, ограничивающей информацию из ASP.NET по промежуточному по промежуточному слоям, ограничивающим частоту основных показателей:

Метрика: aspnetcore.rate_limiting.active_request_leases
Имя Тип инструмента Единица (UCUM) Описание
aspnetcore.rate_limiting.active_request_leases UpDownCounter {request} Количество запросов, которые в настоящее время активны на сервере, в которых хранится ограничение скорости аренды.
Атрибут Тип Описание Примеры Присутствие
aspnetcore.rate_limiting.policy струна Имя политики ограничения скорости. fixed; sliding; token Если соответствующая конечная точка для запроса имела политику ограничения скорости.
Метрика: aspnetcore.rate_limiting.request_lease.duration
Имя Тип инструмента Единица (UCUM) Описание
aspnetcore.rate_limiting.request_lease.duration Гистограмма s Длительность ограничения скорости аренды, удерживаемой запросами на сервере.
Атрибут Тип Описание Примеры Присутствие
aspnetcore.rate_limiting.policy струна Имя политики ограничения скорости. fixed; sliding; token Если соответствующая конечная точка для запроса имела политику ограничения скорости.
Метрика: aspnetcore.rate_limiting.queued_requests
Имя Тип инструмента Единица (UCUM) Описание
aspnetcore.rate_limiting.queued_requests UpDownCounter {request} Количество запросов, которые в настоящее время находятся в очереди, ожидающих получения ограничения скорости аренды.
Атрибут Тип Описание Примеры Присутствие
aspnetcore.rate_limiting.policy струна Имя политики ограничения скорости. fixed; sliding; token Если соответствующая конечная точка для запроса имела политику ограничения скорости.
Метрика: aspnetcore.rate_limiting.request.time_in_queue
Имя Тип инструмента Единица (UCUM) Описание
aspnetcore.rate_limiting.request.time_in_queue Гистограмма s Время, затраченное в очереди, ожидающее получения ограничения скорости аренды.
Атрибут Тип Описание Примеры Присутствие
aspnetcore.rate_limiting.policy струна Имя политики ограничения скорости. fixed; sliding; token Если соответствующая конечная точка для запроса имела политику ограничения скорости.
aspnetcore.rate_limiting.result струна Результат ограничения скорости показывает, была ли получена аренда или содержит причину отклонения. acquired; request_canceled Всегда
Метрика: aspnetcore.rate_limiting.requests
Имя Тип инструмента Единица (UCUM) Описание
aspnetcore.rate_limiting.requests Счетчик {request} Количество запросов, пытающихся получить ограничение скорости аренды.
Атрибут Тип Описание Примеры Присутствие
aspnetcore.rate_limiting.policy струна Имя политики ограничения скорости. fixed; sliding; token Если соответствующая конечная точка для запроса имела политику ограничения скорости.
aspnetcore.rate_limiting.result струна Результат ограничения скорости показывает, была ли получена аренда или содержит причину отклонения. acquired; request_canceled Всегда

Microsoft.AspNetCore.HeaderParsing

Microsoft.AspNetCore.HeaderParsing Метрики сообщают о синтаксическом анализе заголовка ASP.NET Core:

Метрика: aspnetcore.header_parsing.parse_errors
Имя Тип инструмента Единица (UCUM) Описание
aspnetcore.header_parsing.parse_errors Счетчик {parse_error} Количество ошибок, возникших при анализе заголовков HTTP-запроса.
Атрибут Тип Описание Примеры Присутствие
aspnetcore.header_parsing.header.name струна Имя заголовка. Content-Type Всегда
error.type струна Сообщение об ошибке. Unable to parse media type value. Всегда
Метрика: aspnetcore.header_parsing.cache_accesses

Эта метрика создается только для средства синтаксического анализа заголовка HTTP-запроса, поддерживающие кэширование.

Имя Тип инструмента Единица (UCUM) Описание
aspnetcore.header_parsing.cache_accesses Счетчик {cache_access} Количество попыток доступа к кэшу, в котором хранятся значения синтаксического заголовка.
Атрибут Тип Описание Примеры Присутствие
aspnetcore.header_parsing.header.name струна Имя заголовка. Content-Type Всегда
aspnetcore.header_parsing.cache_access.type струна Значение, указывающее, найдено ли значение заголовка в кэше или нет. Hit; Miss Всегда

Microsoft.AspNetCore.Server.Kestrel

Microsoft.AspNetCore.Server.Kestrel Метрики сообщают сведения о подключении HTTP из веб-сервера ASP.NET CoreKestrel:

Метрика: kestrel.active_connections
Имя Тип инструмента Единица (UCUM) Описание
kestrel.active_connections UpDownCounter {connection} Количество подключений, которые в настоящее время активны на сервере.
Атрибут Тип Описание Примеры Присутствие
network.transport струна транспортный слой OSI или метод обмена данными между процессами. tcp; unix Всегда
network.type струна сетевой слой OSI или эквивалентный не OSI. ipv4; ipv6 Если транспорт имеет tcp значение или udp.
server.address струна Доменное имя сервера, если доступно без обратного поиска DNS; в противном случае IP-адрес или имя сокета домена Unix. example.com Всегда
server.port инт Номер порта сервера 80; 8080; 443 Если транспорт имеет tcp значение или udp.
Метрика: kestrel.connection.duration
Имя Тип инструмента Единица (UCUM) Описание
kestrel.connection.duration Гистограмма s Длительность подключений на сервере.
Атрибут Тип Описание Примеры Присутствие
error.type струна Описывает тип ошибки, с которым завершилось подключение или необработанным типом исключения, вызванным во время конвейера подключения. Известные ошибки подключения можно найти в семантических соглашениях для Kestrel метрик веб-сервера. connection_reset; invalid_request_headers; System.OperationCanceledException Если соединение закончилось с известной ошибкой или возникло исключение.
network.protocol.name струна Уровень приложений OSI или эквивалентный не OSI. http; web_sockets Всегда
network.protocol.version струна Версия протокола, указанного в network.protocol.name. 1.1; 2 Всегда
network.transport струна транспортный слой OSI или метод обмена данными между процессами. tcp; unix Всегда
network.type струна сетевой слой OSI или эквивалентный не OSI. ipv4; ipv6 Если транспорт имеет tcp значение или udp.
server.address струна Доменное имя сервера, если доступно без обратного поиска DNS; в противном случае IP-адрес или имя сокета домена Unix. example.com Всегда
server.port инт Номер порта сервера 80; 8080; 443 Если транспорт имеет tcp значение или udp.
tls.protocol.version струна Версия протокола TLS. 1.2; 1.3 Если подключение защищено с помощью TLS.

Так как эта метрика отслеживает длительность подключения, и в идеале http-подключения используются для нескольких запросов, контейнеры должны быть длиннее, чем те, которые используются для длительности запроса. Например, использование [ 0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10, 30, 60, 120, 3000] предоставляет верхний контейнер 5 минут.

Если соединение заканчивается известной ошибкой, error.type значение атрибута устанавливается в известный тип ошибки. Известные ошибки подключения можно найти в семантических соглашениях для Kestrel метрик веб-сервера.

Метрика: kestrel.rejected_connections
Имя Тип инструмента Единица (UCUM) Описание
kestrel.rejected_connections Счетчик {connection} Количество подключений, отклоненных сервером.
Атрибут Тип Описание Примеры Присутствие
network.transport струна транспортный слой OSI или метод обмена данными между процессами. tcp; unix Всегда
network.type струна сетевой слой OSI или эквивалентный не OSI. ipv4; ipv6 Если транспорт имеет tcp значение или udp.
server.address струна Доменное имя сервера, если доступно без обратного поиска DNS; в противном случае IP-адрес или имя сокета домена Unix. example.com Всегда
server.port инт Номер порта сервера 80; 8080; 443 Если транспорт имеет tcp значение или udp.

Подключения отклоняются, если текущее активное число превышает значение, настроенное с MaxConcurrentConnectionsпомощью .

Метрика: kestrel.queued_connections
Имя Тип инструмента Единица (UCUM) Описание
kestrel.queued_connections UpDownCounter {connection} Количество подключений, которые в настоящее время находятся в очереди и ожидают запуска.
Атрибут Тип Описание Примеры Присутствие
network.transport струна транспортный слой OSI или метод обмена данными между процессами. tcp; unix Всегда
network.type струна сетевой слой OSI или эквивалентный не OSI. ipv4; ipv6 Если транспорт имеет tcp значение или udp.
server.address струна Доменное имя сервера, если доступно без обратного поиска DNS; в противном случае IP-адрес или имя сокета домена Unix. example.com Всегда
server.port инт Номер порта сервера 80; 8080; 443 Если транспорт имеет tcp значение или udp.
Метрика: kestrel.queued_requests
Имя Тип инструмента Единица (UCUM) Описание
kestrel.queued_requests UpDownCounter {request} Количество HTTP-запросов в мультиплексированных подключениях (HTTP/2 и HTTP/3), которые в настоящее время находятся в очереди и ожидают запуска.
Атрибут Тип Описание Примеры Присутствие
network.protocol.name струна Уровень приложений OSI или эквивалентный не OSI. http; web_sockets Всегда
network.protocol.version струна Версия протокола, указанного в network.protocol.name. 1.1; 2 Всегда
network.transport струна транспортный слой OSI или метод обмена данными между процессами. tcp; unix Всегда
network.type струна сетевой слой OSI или эквивалентный не OSI. ipv4; ipv6 Если транспорт имеет tcp значение или udp.
server.address струна Доменное имя сервера, если доступно без обратного поиска DNS; в противном случае IP-адрес или имя сокета домена Unix. example.com Всегда
server.port инт Номер порта сервера 80; 8080; 443 Если транспорт имеет tcp значение или udp.
Метрика: kestrel.upgraded_connections
Имя Тип инструмента Единица (UCUM) Описание
kestrel.upgraded_connections UpDownCounter {connection} Количество подключений, которые в настоящее время обновлены (WebSockets).
Атрибут Тип Описание Примеры Присутствие
network.transport струна транспортный слой OSI или метод обмена данными между процессами. tcp; unix Всегда
network.type струна сетевой слой OSI или эквивалентный не OSI. ipv4; ipv6 Если транспорт имеет tcp значение или udp.
server.address струна Доменное имя сервера, если доступно без обратного поиска DNS; в противном случае IP-адрес или имя сокета домена Unix. example.com Всегда
server.port инт Номер порта сервера 80; 8080; 443 Если транспорт имеет tcp значение или udp.

Счетчик отслеживает только подключения HTTP/1.1.

Метрика: kestrel.tls_handshake.duration
Имя Тип инструмента Единица (UCUM) Описание
kestrel.tls_handshake.duration Гистограмма s Длительность подтверждения TLS на сервере.
Атрибут Тип Описание Примеры Присутствие
error.type струна Полное имя типа исключения. System.OperationCanceledException; Contoso.MyException Если исключение было создано.
network.transport струна транспортный слой OSI или метод обмена данными между процессами. tcp; unix Всегда
network.type струна сетевой слой OSI или эквивалентный не OSI. ipv4; ipv6 Если транспорт имеет tcp значение или udp.
server.address струна Доменное имя сервера, если доступно без обратного поиска DNS; в противном случае IP-адрес или имя сокета домена Unix. example.com Всегда
server.port инт Номер порта сервера 80; 8080; 443 Если транспорт имеет tcp значение или udp.
tls.protocol.version струна Версия протокола TLS. 1.2; 1.3 Если подключение защищено с помощью TLS.

При использовании OpenTelemetry контейнеры по умолчанию для этого metic имеют значение [ 0.005, 0.01, 0.025, 0.05, 0.075, 0.1, 0.25, 0.5, 0.75, 1, 2.5, 5, 7.5, 10 ].

Метрика: kestrel.active_tls_handshakes
Имя Тип инструмента Единица (UCUM) Описание
kestrel.active_tls_handshakes UpDownCounter {handshake} Количество подтверждения TLS, которые в настоящее время выполняются на сервере.
Атрибут Тип Описание Примеры Присутствие
network.transport струна транспортный слой OSI или метод обмена данными между процессами. tcp; unix Всегда
network.type струна сетевой слой OSI или эквивалентный не OSI. ipv4; ipv6 Если транспорт имеет tcp значение или udp.
server.address струна Доменное имя сервера, если доступно без обратного поиска DNS; в противном случае IP-адрес или имя сокета домена Unix. example.com Всегда
server.port инт Номер порта сервера 80; 8080; 443 Если транспорт имеет tcp значение или udp.

Microsoft.AspNetCore.Http.Connections

Microsoft.AspNetCore.Http.Connections Метрики сообщают сведения о подключении из ASP.NET CoreSignalR:

Метрика: signalr.server.connection.duration
Имя Тип инструмента Единица (UCUM) Описание
signalr.server.connection.duration Гистограмма s Длительность подключений на сервере.
Атрибут Тип Описание Примеры Присутствие
signalr.connection.status струна SignalR Состояние закрытия HTTP-подключения. app_shutdown; timeout Всегда
signalr.transport струна SignalR Тип транспорта web_sockets; long_polling Всегда
Ценность Описание
normal_closure Подключение было закрыто обычно.
timeout Подключение было закрыто из-за времени ожидания.
app_shutdown Подключение было закрыто, так как приложение завершает работу.

signalr.transport является одним из следующих вариантов:

Ценность Протокол
server_sent_events События, отправленные сервером
long_polling Длинный опрос
web_sockets WebSocket

Так как эта метрика отслеживает длительность подключения, и в идеале SignalR подключения устойчивы, контейнеры должны быть длиннее, чем те, которые используются для длительности запроса. Например, при использовании [0, 0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10, 30, 60, 120, 300] предоставляется верхний контейнер 5 минут.

Метрика: signalr.server.active_connections
Имя Тип инструмента Единица (UCUM) Описание
signalr.server.active_connections UpDownCounter {connection} Количество подключений, которые в настоящее время активны на сервере.
Атрибут Тип Описание Примеры Присутствие
signalr.connection.status струна SignalR Состояние закрытия HTTP-подключения. app_shutdown; timeout Всегда
signalr.transport струна SignalR Тип транспорта web_sockets; long_polling Всегда