Share via


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
이름 계측 유형 단위(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