ASP.NET Core 메트릭
이 문서의 내용
이 문서에서는 System.Diagnostics.Metrics API를 사용하여 생성된 ASP.NET Core용 기본 제공 메트릭에 대해 설명합니다. 이전 EventCounters API를 기반으로 한 메트릭 목록을 보려면 여기 를 참조하세요.
Microsoft.AspNetCore.Hosting
Microsoft.AspNetCore.Hosting
메트릭은 ASP.NET Core에서 수신한 HTTP 요청에 대한 개략적인 정보를 보고합니다.
메트릭: http.server.request.duration
Attribute
Type
설명
예제
현재 상태
http.route
string
일치하는 경로입니다.
{controller}/{action}/{id?}
사용 가능한 경우.
error.type
string
작업이 종료된 오류 클래스를 설명합니다.
오류로 인해 요청이 종료된 경우.
http.request.method
string
HTTP 요청 메서드입니다.
Always
http.response.status_code
int
HTTP 응답 상태 코드 .
200
하나 보낸 경우.
network.protocol.version
string
network.protocol.name
에 지정된 프로토콜 버전입니다.
3.1.1
Always
url.scheme
string
사용된 프로토콜을 식별하는 URI 체계 구성 요소입니다.
http
: https
Always
aspnetcore.request.is_unhandled
Boolean
애플리케이션 파이프라인에서 요청이 처리되지 않은 경우 True입니다.
true
요청이 처리되지 않은 경우.
ASP.NET Core의 호스팅 계층에서 측정된 인바운드 HTTP 요청을 처리하는 데 사용되는 시간입니다. 기본 웹 호스트가 다음을 수행하면 시간 측정이 시작됩니다.
새 요청을 식별하기 위해 인바운드 네트워크 스트림의 HTTP 요청 헤더를 충분히 구문 분석했습니다.
HttpContext 와 같은 컨텍스트 데이터 구조를 초기화했습니다.
다음과 같은 경우 시간이 종료됩니다.
ASP.NET Core 처리기 파이프라인 실행이 완료되었습니다.
모든 응답 데이터가 전송되었습니다.
요청에 대한 컨텍스트 데이터 구조를 삭제하는 중입니다.
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]으로 설정됩니다.
사용 가능 버전: .NET 8.0.
메트릭: http.server.active_requests
Attribute
Type
설명
예제
현재 상태
http.request.method
string
HTTP 요청 메서드. [1]
Always
url.scheme
string
사용된 프로토콜을 식별하는 URI 체계 구성 요소입니다.
http
: https
Always
사용 가능 버전: .NET 8.0.
Microsoft.AspNetCore.Routing
Microsoft.AspNetCore.Routing
메트릭은 ASP.NET Core 엔드포인트로의 HTTP 요청 라우팅 에 대한 정보를 보고합니다.
메트릭: aspnetcore.routing.match_attempts
Attribute
Type
설명
예제
현재 상태
aspnetcore.routing.match_status
string
일치 결과
success
: failure
Always
aspnetcore.routing.is_fallback_route
부울 값
일치하는 경로가 대체 경로인지 여부를 나타내는 값입니다.
True
경로가 성공적으로 일치된 경우.
http.route
string
일치하는 경로
{controller}/{action}/{id?}
경로가 성공적으로 일치된 경우.
사용 가능 버전: .NET 8.0.
Microsoft.AspNetCore.Diagnostics
Microsoft.AspNetCore.Diagnostics
메트릭은 ASP.NET Core 오류 처리 미들웨어 의 진단 정보를 보고합니다.
메트릭: aspnetcore.diagnostics.exceptions
Attribute
Type
설명
예제
현재 상태
aspnetcore.diagnostics.exception.result
string
ASP.NET Core 예외 미들웨어 처리 결과
handled
: unhandled
Always
aspnetcore.diagnostics.handler.type
string
예외를 처리한 IExceptionHandler
구현의 전체 형식 이름입니다.
Contoso.MyHandler
이 처리기가 예외를 처리한 경우.
exception.type
string
예외 형식의 전체 이름입니다.
System.OperationCanceledException
: Contoso.MyException
Always
사용 가능 버전: .NET 8.0.
Microsoft.AspNetCore.RateLimiting
Microsoft.AspNetCore.RateLimiting
메트릭은 ASP.NET Core 속도 제한 미들웨어 의 속도 제한 정보를 보고합니다.
메트릭: aspnetcore.rate_limiting.active_request_leases
Attribute
Type
설명
예제
현재 상태
aspnetcore.rate_limiting.policy
string
속도 제한 정책 이름입니다.
요청에 대해 일치하는 엔드포인트에 속도 제한 정책이 있는 경우.
사용 가능 버전: .NET 8.0.
메트릭: aspnetcore.rate_limiting.request_lease.duration
Attribute
Type
설명
예제
현재 상태
aspnetcore.rate_limiting.policy
string
속도 제한 정책 이름입니다.
요청에 대해 일치하는 엔드포인트에 속도 제한 정책이 있는 경우.
사용 가능 버전: .NET 8.0.
메트릭: aspnetcore.rate_limiting.queued_requests
Attribute
Type
설명
예제
현재 상태
aspnetcore.rate_limiting.policy
string
속도 제한 정책 이름입니다.
요청에 대해 일치하는 엔드포인트에 속도 제한 정책이 있는 경우.
사용 가능 버전: .NET 8.0.
메트릭: aspnetcore.rate_limiting.request.time_in_queue
Attribute
Type
설명
예제
현재 상태
aspnetcore.rate_limiting.policy
string
속도 제한 정책 이름입니다.
요청에 대해 일치하는 엔드포인트에 속도 제한 정책이 있는 경우.
aspnetcore.rate_limiting.result
string
속도 제한 결과에는 임대 획득 여부 또는 거부 사유가 포함되어 있는지가 표시됨
acquired
: request_canceled
Always
사용 가능 버전: .NET 8.0.
메트릭: aspnetcore.rate_limiting.requests
Attribute
Type
설명
예제
현재 상태
aspnetcore.rate_limiting.policy
string
속도 제한 정책 이름입니다.
요청에 대해 일치하는 엔드포인트에 속도 제한 정책이 있는 경우.
aspnetcore.rate_limiting.result
string
속도 제한 결과에는 임대 획득 여부 또는 거부 사유가 포함되어 있는지가 표시됨
acquired
: request_canceled
Always
사용 가능 버전: .NET 8.0.
Microsoft.AspNetCore.HeaderParsing
메트릭은 ASP.NET Core 헤더 구문 분석 에 대한 정보를 보고합니다.
이름
계측 유형
단위(UCUM)
설명
aspnetcore.header_parsing.parse_errors
카운터
{parse_error}
HTTP 요청 헤더를 구문 분석할 때 발생한 오류 수입니다.
Attribute
Type
설명
예제
현재 상태
aspnetcore.header_parsing.header.name
string
헤더 이름입니다.
Content-Type
Always
error.type
string
오류 메시지입니다.
Unable to parse media type value.
Always
사용 가능 버전: .NET 8.0.
캐싱을 지원하는 HTTP 요청 헤더 파서에 대해서만 메트릭이 내보내집니다.
이름
계측 유형
단위(UCUM)
설명
aspnetcore.header_parsing.cache_accesses
카운터
{cache_access}
구문 분석된 헤더 값을 저장하는 캐시에 액세스한 횟수입니다.
Attribute
Type
설명
예제
현재 상태
aspnetcore.header_parsing.header.name
string
헤더 이름입니다.
Content-Type
Always
aspnetcore.header_parsing.cache_access.type
string
헤더의 값이 캐시에서 발견되었는지 여부를 나타내는 값입니다.
Hit
: Miss
Always
사용 가능 버전: .NET 8.0.
Microsoft.AspNetCore.Server.Kestrel
Microsoft.AspNetCore.Server.Kestrel
메트릭은 ASP.NET Core Kestrel 웹 서버 의 HTTP 연결 정보를 보고합니다.
메트릭: kestrel.active_connections
Attribute
Type
설명
예제
현재 상태
network.transport
string
OSI 전송 계층 또는 프로세스 간 통신 방법 .
tcp
: unix
Always
network.type
string
OSI 네트워크 계층 또는 비OSI와 동등합니다.
ipv4
: ipv6
전송 수단이 tcp
또는 udp
인 경우.
server.address
string
역방향 DNS 조회 없이 사용 가능한 경우 서버 주소 도메인 이름. 그렇지 않으면 IP 주소 또는 Unix 도메인 소켓 이름입니다.
example.com
Always
server.port
int
서버 포트 번호
전송 수단이 tcp
또는 udp
인 경우.
사용 가능 버전: .NET 8.0.
메트릭: kestrel.connection.duration
Attribute
Type
설명
예제
현재 상태
error.type
string
예외 형식의 전체 이름입니다.
System.OperationCanceledException
: Contoso.MyException
예외가 throw된 경우.
network.protocol.name
string
OSI 애플리케이션 계층 또는 비OSI와 동등합니다.
http
: web_sockets
Always
network.protocol.version
string
network.protocol.name
에 지정된 프로토콜 버전입니다.
1.1
: 2
Always
network.transport
string
OSI 전송 계층 또는 프로세스 간 통신 방법 .
tcp
: unix
Always
network.type
string
OSI 네트워크 계층 또는 비OSI와 동등합니다.
ipv4
: ipv6
전송 수단이 tcp
또는 udp
인 경우.
server.address
string
역방향 DNS 조회 없이 사용 가능한 경우 서버 주소 도메인 이름. 그렇지 않으면 IP 주소 또는 Unix 도메인 소켓 이름입니다.
example.com
Always
server.port
int
서버 포트 번호
전송 수단이 tcp
또는 udp
인 경우.
tls.protocol.version
string
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, 300]을 사용하면 5분의 상위 버킷이 제공됩니다.
사용 가능 버전: .NET 8.0.
메트릭: kestrel.rejected_connections
Attribute
Type
설명
예제
현재 상태
network.transport
string
OSI 전송 계층 또는 프로세스 간 통신 방법 .
tcp
: unix
Always
network.type
string
OSI 네트워크 계층 또는 비OSI와 동등합니다.
ipv4
: ipv6
전송 수단이 tcp
또는 udp
인 경우.
server.address
string
역방향 DNS 조회 없이 사용 가능한 경우 서버 주소 도메인 이름. 그렇지 않으면 IP 주소 또는 Unix 도메인 소켓 이름입니다.
example.com
Always
server.port
int
서버 포트 번호
전송 수단이 tcp
또는 udp
인 경우.
현재 활성 개수가 MaxConcurrentConnections
로 구성된 값을 초과하면 연결이 거부됩니다.
사용 가능 버전: .NET 8.0.
메트릭: kestrel.queued_connections
Attribute
Type
설명
예제
현재 상태
network.transport
string
OSI 전송 계층 또는 프로세스 간 통신 방법 .
tcp
: unix
Always
network.type
string
OSI 네트워크 계층 또는 비OSI와 동등합니다.
ipv4
: ipv6
전송 수단이 tcp
또는 udp
인 경우.
server.address
string
역방향 DNS 조회 없이 사용 가능한 경우 서버 주소 도메인 이름. 그렇지 않으면 IP 주소 또는 Unix 도메인 소켓 이름입니다.
example.com
Always
server.port
int
서버 포트 번호
전송 수단이 tcp
또는 udp
인 경우.
사용 가능 버전: .NET 8.0.
메트릭: kestrel.queued_requests
이름
계측 유형
단위(UCUM)
설명
kestrel.queued_requests
UpDownCounter
{request}
현재 큐에 있고 시작을 기다리고 있는 다중 연결(HTTP/2 및 HTTP/3)에 대한 HTTP 요청 수입니다.
Attribute
Type
설명
예제
현재 상태
network.protocol.name
string
OSI 애플리케이션 계층 또는 비OSI와 동등합니다.
http
: web_sockets
Always
network.protocol.version
string
network.protocol.name
에 지정된 프로토콜 버전입니다.
1.1
: 2
Always
network.transport
string
OSI 전송 계층 또는 프로세스 간 통신 방법 .
tcp
: unix
Always
network.type
string
OSI 네트워크 계층 또는 비OSI와 동등합니다.
ipv4
: ipv6
전송 수단이 tcp
또는 udp
인 경우.
server.address
string
역방향 DNS 조회 없이 사용 가능한 경우 서버 주소 도메인 이름. 그렇지 않으면 IP 주소 또는 Unix 도메인 소켓 이름입니다.
example.com
Always
server.port
int
서버 포트 번호
전송 수단이 tcp
또는 udp
인 경우.
사용 가능 버전: .NET 8.0.
메트릭: kestrel.upgraded_connections
Attribute
Type
설명
예제
현재 상태
network.transport
string
OSI 전송 계층 또는 프로세스 간 통신 방법 .
tcp
: unix
Always
network.type
string
OSI 네트워크 계층 또는 비OSI와 동등합니다.
ipv4
: ipv6
전송 수단이 tcp
또는 udp
인 경우.
server.address
string
역방향 DNS 조회 없이 사용 가능한 경우 서버 주소 도메인 이름. 그렇지 않으면 IP 주소 또는 Unix 도메인 소켓 이름입니다.
example.com
Always
server.port
int
서버 포트 번호
전송 수단이 tcp
또는 udp
인 경우.
카운터는 HTTP/1.1 연결만 추적합니다.
사용 가능 버전: .NET 8.0.
메트릭: kestrel.tls_handshake.duration
Attribute
Type
설명
예제
현재 상태
error.type
string
예외 형식의 전체 이름입니다.
System.OperationCanceledException
: Contoso.MyException
예외가 throw된 경우.
network.transport
string
OSI 전송 계층 또는 프로세스 간 통신 방법 .
tcp
: unix
Always
network.type
string
OSI 네트워크 계층 또는 비OSI와 동등합니다.
ipv4
: ipv6
전송 수단이 tcp
또는 udp
인 경우.
server.address
string
역방향 DNS 조회 없이 사용 가능한 경우 서버 주소 도메인 이름. 그렇지 않으면 IP 주소 또는 Unix 도메인 소켓 이름입니다.
example.com
Always
server.port
int
서버 포트 번호
전송 수단이 tcp
또는 udp
인 경우.
tls.protocol.version
string
TLS 프로토콜 버전입니다.
1.2
: 1.3
연결이 TLS로 보호되는 경우.
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]으로 설정됩니다.
사용 가능 버전: .NET 8.0.
메트릭: kestrel.active_tls_handshakes
Attribute
Type
설명
예제
현재 상태
network.transport
string
OSI 전송 계층 또는 프로세스 간 통신 방법 .
tcp
: unix
Always
network.type
string
OSI 네트워크 계층 또는 비OSI와 동등합니다.
ipv4
: ipv6
전송 수단이 tcp
또는 udp
인 경우.
server.address
string
역방향 DNS 조회 없이 사용 가능한 경우 서버 주소 도메인 이름. 그렇지 않으면 IP 주소 또는 Unix 도메인 소켓 이름입니다.
example.com
Always
server.port
int
서버 포트 번호
전송 수단이 tcp
또는 udp
인 경우.
사용 가능 버전: .NET 8.0.
Microsoft.AspNetCore.Http.Connections
Microsoft.AspNetCore.Http.Connections
메트릭은 ASP.NET Core SignalR 의 연결 정보를 보고합니다.
메트릭: signalr.server.connection.duration
Attribute
Type
설명
예제
현재 상태
signalr.connection.status
string
SignalR HTTP 연결 종료 상태입니다.
app_shutdown
: timeout
Always
signalr.transport
string
SignalR 전송 형식
web_sockets
: long_polling
Always
사용 가능 버전: .NET 8.0.
값
설명
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분의 상위 버킷이 제공됩니다.
사용 가능 버전: .NET 8.0.
메트릭: signalr.server.active_connections
Attribute
Type
설명
예제
현재 상태
signalr.connection.status
string
SignalR HTTP 연결 종료 상태입니다.
app_shutdown
: timeout
Always
signalr.transport
string
SignalR 전송 형식
web_sockets
: long_polling
Always
.NET 8.0부터 사용이 가능합니다.