System.Net 메트릭
이 문서에서는 System.Diagnostics.Metrics API를 사용하여 생성된 System.Net용 기본 제공 네트워킹 메트릭에 대해 설명합니다. 대체 EventCounters API를 기반으로 하는 메트릭 목록은 .NET에서 잘 알려진 EventCounters를 참조하세요.
팁
System.Net 메트릭을 수집, 보고, 보강 및 테스트하는 방법에 대한 자세한 내용은 .NET의 네트워킹 메트릭을 참조하세요.
System.Net.NameResolution
System.Net.NameResolution
메트릭은 Dns의 DNS 이름 확인을 보고합니다.
메트릭: dns.lookup.duration
이름 | 기기 형식 | 단위 | 설명 |
---|---|---|---|
dns.lookup.duration |
히스토그램 | s |
DNS 조회를 수행하는 데 걸린 시간을 측정합니다. |
Attribute | Type | 설명 | 예제 | 현재 상태 |
---|---|---|---|---|
dns.question.name |
string | 쿼리 중인 이름입니다. | www.example.com ; dot.net |
Always |
error.type |
string | 잘 알려진 오류 문자열 또는 발생한 예외의 전체 유형 이름입니다. | host_not_found ; System.Net.Sockets.SocketException |
오류가 발생한 경우 |
이 메트릭은 DNS 요청을 수행하는 데 걸리는 시간을 측정합니다. 이러한 요청은 Dns에서 메서드를 호출하거나 HttpClient과(와) 같은 유형의 상위 수준 API 내에서 간접적으로 발생할 수 있습니다.
DNS 조회를 수행할 때 대부분의 오류는 SocketException을(를) throw합니다. 일반적인 오류 사례를 더 명확하게 구분하기 위해 특정 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
메트릭은 HTTP 요청 및 System.Net.Http의 연결 정보를 보고합니다.
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 연결 수 |
Attribute | Type | 설명 | 예제 | 현재 상태 |
---|---|---|---|---|
http.connection.state |
string | HTTP 연결 풀의 HTTP 연결 상태입니다. | active ; idle |
Always |
network.protocol.version |
string | 사용된 애플리케이션 계층 프로토콜의 버전입니다. | 1.1 ; 2 |
Always |
server.address |
string | HTTP 요청이 전송되는 "URI 원본"의 호스트 식별자입니다. | example.com |
Always |
server.port |
int | HTTP 요청이 전송되는 "URI 원본"의 포트 식별자입니다. | 80 ; 8080 ; 443 |
기본값이 아닌 경우(http 체계의 경우 80 , https 의 경우 443 ) |
network.peer.address |
string | 소켓 연결의 피어 IP 주소입니다. | 10.5.3.2 |
Always |
url.scheme |
string | 사용된 프로토콜을 식별하는 URI 체계 구성 요소입니다. | http ; https ; ftp |
Always |
HttpClient이(가) 기본값 SocketsHttpHandler을(를) 사용하도록 구성한 경우 HTTP 메시지 전송을 위해 캐시된 네트워크 연결 풀을 유지합니다. 이 메트릭은 현재 풀에 있는 연결 수를 계산합니다. 활성 연결이 활성 요청을 처리하고 있습니다. 활성 연결은 데이터를 전송 중이거나 클라이언트 또는 서버를 기다리는 중일 수 있습니다. 유휴 연결은 요청을 처리하지 않지만 향후 요청을 더 빨리 처리할 수 있도록 열려 있는 상태입니다.
사용 가능 버전: .NET 8
메트릭: http.client.connection.duration
이름 | 계측 유형 | 단위(UCUM) | 설명 |
---|---|---|---|
http.client.connection.duration |
히스토그램 | s |
아웃바운드 HTTP 연결이 성공적으로 설정된 기간입니다. |
Attribute | Type | 설명 | 예제 | 현재 상태 |
---|---|---|---|---|
network.protocol.version |
string | 사용된 애플리케이션 계층 프로토콜의 버전입니다. | 1.1 ; 2 |
Always |
server.address |
string | HTTP 요청이 전송되는 "URI 원본"의 호스트 식별자입니다. | example.com |
Always |
server.port |
int | HTTP 요청이 전송되는 "URI 원본"의 포트 식별자입니다. | 80 ; 8080 ; 443 |
기본값이 아닌 경우(http 체계의 경우 80 , https 의 경우 443 ) |
network.peer.address |
string | 소켓 연결의 IP 주소입니다. | 10.5.3.2 |
Always |
url.scheme |
string | 사용된 프로토콜을 식별하는 URI 체계 구성 요소입니다. | http ; https ; ftp |
Always |
이 메트릭은 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 요청의 기간입니다. |
Attribute | Type | 설명 | 예제 | 현재 상태 |
---|---|---|---|---|
error.type |
string | 요청 실패 이유: HTTP 요청 오류 또는 전체 예외 유형 또는 HTTP 4xx/5xx 상태 코드 중 하나입니다. | System.Threading.Tasks.TaskCanceledException ; name_resolution_error ; secure_connection_error ; 404 |
요청이 실패한 경우입니다. |
http.request.method |
string | HTTP 요청 메서드입니다. | GET ; POST ; HEAD |
Always |
http.response.status_code |
int | HTTP 응답 상태 코드. | 200 |
하나를 수신된 경우입니다. |
network.protocol.version |
string | 사용된 애플리케이션 계층 프로토콜의 버전입니다. | 1.1 ; 2 |
응답을 받은 경우입니다. |
server.address |
string | HTTP 요청이 전송되는 "URI 원본"의 호스트 식별자입니다. | example.com |
Always |
server.port |
int | HTTP 요청이 전송되는 "URI 원본"의 포트 식별자입니다. | 80 ; 8080 ; 443 |
기본값이 아닌 경우(http 체계의 경우 80 , https 의 경우 443 ) |
url.scheme |
string | 사용된 프로토콜을 식별하는 URI 체계 구성 요소입니다. | http ; https ; ftp |
Always |
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 |
요청이 큐에서 사용 가능한 연결을 기다리는 데 소요된 시간입니다. |
Attribute | Type | 설명 | 예제 | 현재 상태 |
---|---|---|---|---|
http.request.method |
string | HTTP 요청 메서드입니다. | GET ; POST ; HEAD |
Always |
network.protocol.version |
string | 사용된 애플리케이션 계층 프로토콜의 버전입니다. | 1.1 ; 2 |
Always |
server.address |
string | HTTP 요청이 전송되는 "URI 원본"의 호스트 식별자입니다. | example.com |
Always |
server.port |
int | HTTP 요청이 전송되는 "URI 원본"의 포트 식별자입니다. | 80 ; 8080 ; 443 |
기본값이 아닌 경우(http 체계의 경우 80 , https 의 경우 443 ) |
url.scheme |
string | 사용된 프로토콜을 식별하는 URI 체계 구성 요소입니다. | http ; https ; ftp |
Always |
HttpClient이(가) 기본 SocketsHttpHandler을(를) 사용하도록 구성된 경우 네트워크 연결 풀을 사용하여 HTTP 요청을 보냅니다. 모든 연결이 다른 요청을 처리하는 중이면 새 요청은 큐에 배치되어 네트워크 연결을 사용할 수 있게 될 때까지 대기합니다. 이 계측기는 네트워크를 통해 전송되기 전에 HTTP 요청이 해당 큐에서 대기하는 시간을 측정합니다.
사용 가능 버전: .NET 8
메트릭: http.client.active_requests
이름 | 계측 유형 | 단위(UCUM) | 설명 |
---|---|---|---|
http.client.active_requests |
UpDownCounter | {request} |
활성 HTTP 요청 수입니다. |
Attribute | Type | 설명 | 예제 | 현재 상태 |
---|---|---|---|---|
http.request.method |
string | HTTP 요청 메서드입니다. | GET ; POST ; HEAD |
Always |
server.address |
string | HTTP 요청이 전송되는 "URI 원본"의 호스트 식별자입니다. | example.com |
Always |
server.port |
int | HTTP 요청이 전송되는 "URI 원본"의 포트 식별자입니다. | 80 ; 8080 ; 443 |
기본값이 아닌 경우(http 체계의 경우 80 , https 의 경우 443 ) |
url.scheme |
string | 사용된 프로토콜을 식별하는 URI 체계 구성 요소입니다. | http ; https ; ftp |
Always |
이 메트릭은 활성으로 간주되는 요청 수를 계산합니다. 요청은 http.client.request.duration 계측으로 측정되는 동일한 기간 동안 활성화됩니다.
사용 가능 버전: .NET 8
.NET
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기