В этой статье описываются встроенные метрики для 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
Атрибут |
Тип |
Описание |
Примеры |
Присутствие |
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
Атрибут |
Тип |
Описание |
Примеры |
Присутствие |
aspnetcore.rate_limiting.policy |
струна |
Имя политики ограничения скорости. |
fixed ; sliding ; token |
Если соответствующая конечная точка для запроса имела политику ограничения скорости. |
.
Метрика: aspnetcore.rate_limiting.request_lease.duration
Атрибут |
Тип |
Описание |
Примеры |
Присутствие |
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
Атрибут |
Тип |
Описание |
Примеры |
Присутствие |
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
Метрики сообщают о синтаксическом анализе заголовка ASP.NET Core:
Имя |
Тип инструмента |
Единица (UCUM) |
Описание |
aspnetcore.header_parsing.parse_errors |
Счетчик |
{parse_error} |
Количество ошибок, возникших при анализе заголовков HTTP-запроса. |
Атрибут |
Тип |
Описание |
Примеры |
Присутствие |
aspnetcore.header_parsing.header.name |
струна |
Имя заголовка. |
Content-Type |
Всегда |
error.type |
струна |
Сообщение об ошибке. |
Unable to parse media type value. |
Всегда |
.
Эта метрика создается только для средства синтаксического анализа заголовка 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
Атрибут |
Тип |
Описание |
Примеры |
Присутствие |
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
Атрибут |
Тип |
Описание |
Примеры |
Присутствие |
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
Атрибут |
Тип |
Описание |
Примеры |
Присутствие |
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
Атрибут |
Тип |
Описание |
Примеры |
Присутствие |
signalr.connection.status |
струна |
SignalR Состояние закрытия HTTP-подключения. |
app_shutdown ; timeout |
Всегда |
signalr.transport |
струна |
SignalR Тип транспорта |
web_sockets ; long_polling |
Всегда |
.
Ценность |
Описание |
normal_closure |
Подключение было закрыто обычно. |
timeout |
Подключение было закрыто из-за времени ожидания. |
app_shutdown |
Подключение было закрыто, так как приложение завершает работу. |
signalr.transport
является одним из следующих вариантов:
Так как эта метрика отслеживает длительность подключения, и в идеале 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 см. в разделе "Доступные счетчики".
Microsoft.AspNetCore.Hosting
Microsoft.AspNetCore.Hosting
Метрики сообщают высокоуровневую информацию о HTTP-запросах, полученных ASP.NET Core:
Метрика: http.server.request.duration
Атрибут |
Тип |
Описание |
Примеры |
Присутствие |
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
Атрибут |
Тип |
Описание |
Примеры |
Присутствие |
aspnetcore.rate_limiting.policy |
струна |
Имя политики ограничения скорости. |
fixed ; sliding ; token |
Если соответствующая конечная точка для запроса имела политику ограничения скорости. |
Метрика: aspnetcore.rate_limiting.request_lease.duration
Атрибут |
Тип |
Описание |
Примеры |
Присутствие |
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
Атрибут |
Тип |
Описание |
Примеры |
Присутствие |
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
Метрики сообщают о синтаксическом анализе заголовка ASP.NET Core:
Имя |
Тип инструмента |
Единица (UCUM) |
Описание |
aspnetcore.header_parsing.parse_errors |
Счетчик |
{parse_error} |
Количество ошибок, возникших при анализе заголовков HTTP-запроса. |
Атрибут |
Тип |
Описание |
Примеры |
Присутствие |
aspnetcore.header_parsing.header.name |
струна |
Имя заголовка. |
Content-Type |
Всегда |
error.type |
струна |
Сообщение об ошибке. |
Unable to parse media type value. |
Всегда |
Эта метрика создается только для средства синтаксического анализа заголовка 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
Атрибут |
Тип |
Описание |
Примеры |
Присутствие |
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 минут.
Метрика: kestrel.rejected_connections
Атрибут |
Тип |
Описание |
Примеры |
Присутствие |
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
Атрибут |
Тип |
Описание |
Примеры |
Присутствие |
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
Атрибут |
Тип |
Описание |
Примеры |
Присутствие |
signalr.connection.status |
струна |
SignalR Состояние закрытия HTTP-подключения. |
app_shutdown ; timeout |
Всегда |
signalr.transport |
струна |
SignalR Тип транспорта |
web_sockets ; long_polling |
Всегда |
Ценность |
Описание |
normal_closure |
Подключение было закрыто обычно. |
timeout |
Подключение было закрыто из-за времени ожидания. |
app_shutdown |
Подключение было закрыто, так как приложение завершает работу. |
signalr.transport
является одним из следующих вариантов:
Так как эта метрика отслеживает длительность подключения, и в идеале 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 |
Всегда |