System.Net 메트릭
이 문서에서는 System.Net API를 사용하여 생성된 System.Diagnostics.Metrics 기본 제공되는 네트워킹 메트릭에 대해 설명합니다. 대체
팁
System.Net 메트릭을 수집, 보고, 보강 및 테스트하는 방법에 대한 자세한 내용은 .NET
System.Net.NameResolution
System.Net.NameResolution
메트릭은 DnsDNS 이름 확인을 보고합니다.
메트릭: dns.lookup.duration
이름 | 계측 유형 | 단위 | 묘사 |
---|---|---|---|
dns.lookup.duration |
히스토그램 | s |
DNS 조회를 수행하는 데 걸린 시간을 측정합니다. |
속성 | 형 | 묘사 | 예제 | 존재 |
---|---|---|---|---|
dns.question.name |
문자열 | 쿼리할 이름입니다. |
www.example.com ; dot.net |
늘 |
error.type |
문자열 | 잘 알려진 오류 문자열 또는 발생한 예외의 전체 형식 이름입니다. |
host_not_found ; System.Net.Sockets.SocketException |
오류가 발생한 경우 |
이 메트릭은 DNS 요청을 수행하는 데 걸리는 시간을 측정합니다. 이러한 요청은 Dns 메서드를 호출하거나 HttpClient같은 형식의 상위 수준 API 내에서 간접적으로 발생할 수 있습니다.
DNS 조회를 수행할 때 대부분의 오류는 SocketExceptionthrow합니다. 일반적인 오류 사례를 보다 명확하게 구분하기 위해 특정 SocketErrorCode 소켓 예외에는 error.type
명시적 오류 이름이 지정됩니다.
SocketErrorCode | error.type |
---|---|
HostNotFound | host_not_found |
TryAgain | try_again |
AddressFamilyNotSupported | address_family_not_supported |
NoRecovery | no_recovery |
다른 SocketError
값의 소켓 예외는 System.Net.Sockets.SocketException
보고됩니다.
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부터 사용 가능
System.Net.Http
System.Net.Http
메트릭은 System.Net.HttpHTTP 요청 및 연결 정보를 보고합니다.
http.client.open_connections
http.client.connection.duration
http.client.request.duration
http.client.request.time_in_queue
http.client.active_requests
메트릭: http.client.open_connections
이름 | 계측 유형 | 단위(UCUM) | 묘사 |
---|---|---|---|
http.client.open_connections |
UpDownCounter | {connection} |
클라이언트에서 현재 활성화되거나 유휴 상태인 아웃바운드 HTTP 연결 수 |
속성 | 형 | 묘사 | 예제 | 존재 |
---|---|---|---|---|
http.connection.state |
문자열 | HTTP 연결 풀의 HTTP 연결 상태입니다. |
active ; idle |
늘 |
network.protocol.version |
문자열 | 사용된 HTTP 프로토콜의 버전입니다. |
1.1 ; 2 |
늘 |
server.address |
문자열 | HTTP 요청이 전송되는 |
example.com |
늘 |
server.port |
int | HTTP 요청이 전송되는 |
80 ; 8080 ; 443 |
기본값이 아닌 경우(80 체계의 경우http , 443 https ) |
network.peer.address |
문자열 | 소켓 연결의 피어 IP 주소입니다. | 10.5.3.2 |
늘 |
url.scheme |
문자열 | URI 체계는 사용된 프로토콜을 식별하는 구성 요소를. |
http ; https ; ftp |
늘 |
HttpClient기본 SocketsHttpHandler사용하도록 구성된 경우 HTTP 메시지를 보내기 위해 캐시된 네트워크 연결 풀을 유지 관리합니다. 이 메트릭은 현재 풀에 있는 연결 수를 계산합니다. 활성 연결이 활성 요청을 처리하고 있습니다. 활성 연결은 데이터를 전송하거나 클라이언트 또는 서버를 대기할 수 있습니다. 유휴 연결은 요청을 처리하지 않지만 향후 요청을 더 빠르게 처리할 수 있도록 열려 있습니다.
.NET 8부터 사용 가능
메트릭: http.client.connection.duration
이름 | 계측 유형 | 단위(UCUM) | 묘사 |
---|---|---|---|
http.client.connection.duration |
히스토그램 | s |
아웃바운드 HTTP 연결이 성공적으로 설정된 기간입니다. |
속성 | 형 | 묘사 | 예제 | 존재 |
---|---|---|---|---|
network.protocol.version |
문자열 | 사용된 HTTP 프로토콜의 버전입니다. |
1.1 ; 2 |
늘 |
server.address |
문자열 | HTTP 요청이 전송되는 |
example.com |
늘 |
server.port |
int | HTTP 요청이 전송되는 |
80 ; 8080 ; 443 |
기본값이 아닌 경우(80 체계의 경우http , 443 https ) |
network.peer.address |
문자열 | 소켓 연결의 IP 주소입니다. | 10.5.3.2 |
늘 |
url.scheme |
문자열 | URI 체계는 사용된 프로토콜을 식별하는 구성 요소를. |
http ; https ; ftp |
늘 |
이 메트릭은 기본 HttpClient사용하도록 SocketsHttpHandler 구성된 경우에만 캡처됩니다.
이 메트릭은 연결 기간을 추적하고, 여러 요청에 대해 http 연결이 사용되는 것이 이상적이므로 버킷은 요청 기간에 사용되는 것보다 길어야 합니다. 예를 들어 [ 0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10, 30, 60, 120, 300]을 사용하면 5분의 상위 버킷을 제공합니다.
.NET 8부터 사용 가능
메트릭: http.client.request.duration
이름 | 계측 유형 | 단위(UCUM) | 묘사 |
---|---|---|---|
http.client.request.duration |
히스토그램 | s |
아웃바운드 HTTP 요청의 기간입니다. |
속성 | 형 | 묘사 | 예제 | 존재 |
---|---|---|---|---|
error.type |
문자열 | 요청 실패 이유: snake_case |
System.Threading.Tasks.TaskCanceledException ; name_resolution_error ; secure_connection_error ; 404 |
요청이 실패한 경우 |
http.request.method |
문자열 | HTTP 요청 메서드입니다. |
GET ; POST ; HEAD ; _OTHER [2] |
늘 |
http.response.status_code |
int | HTTP 응답 상태 코드 |
200 |
응답을 받은 경우 |
network.protocol.version |
문자열 | 사용된 HTTP 프로토콜의 버전입니다. |
1.1 ; 2 |
응답을 받은 경우 |
server.address |
문자열 | HTTP 요청이 전송되는 |
example.com |
늘 |
server.port |
int | HTTP 요청이 전송되는 |
80 ; 8080 ; 443 |
.NET 버전에 따라 다릅니다. [3] |
url.scheme |
문자열 | URI 체계는 사용된 프로토콜을 식별하는 구성 요소를. |
http ; https ; ftp |
늘 |
[1] error.type
: 요청이 실패하면 값이 다음 중 하나로 설정됩니다.
- 형식이 있는 예외 이름(예: TaskCanceledException)입니다.
- 클라이언트 또는 서버 오류(예:
500
)를 나타내는 상태 코드입니다. -
HttpRequestException이외의 HttpRequestError
Unknown
발생한 경우 뱀 대/소문자의 열거형 값은name_resolution_error
.
[2] http.request.method
:http.request.method
:** 메서드가 RFC9110;에 나열된 잘 알려진 메서드 중 하나인 경우 값에 메서드 이름이 포함됩니다. 그렇지 않으면 값이 _OTHER
. 사용자가 제공한 메서드 이름은 대/소문자를 구분하지 않는 방식으로 알려진 이름에 매핑됩니다. 예를 들어 사용자가 GeT
이름을 제공하는 경우 GET
매핑됩니다.
[3] server.port
: 값의 존재는 버전에 따라 다릅니다.
-
.NET 8: 기본값이 아닌 경우 표시(
80
체계의 경우http
,443
https
) - .NET 9+: 항상 있음
HTTP 클라이언트 요청 기간은 기본 클라이언트 처리기가 요청을 완료하는 데 걸리는 시간을 측정합니다. 요청을 완료하면 네트워크 스트림에서 응답 헤더를 읽는 데 걸리는 시간이 포함됩니다. 응답 본문을 읽는 데 소요된 시간은 포함되지 않습니다.
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부터 사용 가능
팁
보강 이 메트릭에 사용할 수 있습니다.
메트릭: http.client.request.time_in_queue
이름 | 계측 유형 | 단위(UCUM) | 묘사 |
---|---|---|---|
http.client.request.time_in_queue |
히스토그램 | s |
사용 가능한 연결을 기다리는 큐에 소요된 요청의 양입니다. |
속성 | 형 | 묘사 | 예제 | 존재 |
---|---|---|---|---|
http.request.method |
문자열 | HTTP 요청 메서드입니다. |
GET ; POST ; HEAD |
늘 |
network.protocol.version |
문자열 | 사용된 HTTP 프로토콜의 버전입니다. |
1.1 ; 2 |
늘 |
server.address |
문자열 | HTTP 요청이 전송되는 |
example.com |
늘 |
server.port |
int | HTTP 요청이 전송되는 |
80 ; 8080 ; 443 |
기본값이 아닌 경우(80 체계의 경우http , 443 https ) |
url.scheme |
문자열 | URI 체계는 사용된 프로토콜을 식별하는 구성 요소를. |
http ; https ; ftp |
늘 |
HttpClient기본 SocketsHttpHandler사용하도록 구성된 경우 네트워크 연결 풀을 사용하여 HTTP 요청을 보냅니다. 모든 연결이 다른 요청을 처리하는 데 사용 중인 경우 새 요청이 큐에 배치되고 네트워크 연결을 사용할 수 있게 될 때까지 기다립니다. 이 계측기는 HTTP 요청이 네트워크를 통해 전송되기 전에 해당 큐에서 대기하는 데 소요되는 시간을 측정합니다.
.NET 8부터 사용 가능
메트릭: http.client.active_requests
이름 | 계측 유형 | 단위(UCUM) | 묘사 |
---|---|---|---|
http.client.active_requests |
UpDownCounter | {request} |
활성 HTTP 요청 수입니다. |
속성 | 형 | 묘사 | 예제 | 존재 |
---|---|---|---|---|
http.request.method |
문자열 | HTTP 요청 메서드입니다. |
GET ; POST ; HEAD |
늘 |
server.address |
문자열 | HTTP 요청이 전송되는 |
example.com |
늘 |
server.port |
int | HTTP 요청이 전송되는 |
80 ; 8080 ; 443 |
기본값이 아닌 경우(80 체계의 경우http , 443 https ) |
url.scheme |
문자열 | URI 체계는 사용된 프로토콜을 식별하는 구성 요소를. |
http ; https ; ftp |
늘 |
이 메트릭은 활성으로 간주되는 요청 수를 계산합니다. 요청은 http.client.request.duration 계측으로 측정되는 동일한 기간 동안 활성화됩니다.
.NET 8부터 사용 가능
.NET