기본적으로 분산 추적
System.Net 활동
HTTP 클라이언트 요청
SocketsHttpHandler 및 HttpClientHandler OpenTelemetry HTTP 클라이언트 의미 체계 규칙정의된 권장 사항에 따라 HTTP 클라이언트 요청 활동을 보고합니다. 기본 처리기가 요청을 완료하는 시간 간격 동안 HttpClient전송 오버로드에서 보낸 HTTP 요청을 설명합니다. 요청을 완료하면 네트워크 스트림에서 응답 헤더를 읽는 데 걸리는 시간이 포함됩니다. 응답 본문을 읽는 데 소요된 시간은 포함되지 않습니다. SocketsHttpHandler 연결 오류 또는 HTTP 버전 다운그레이드와 같은 요청을 다시 시도할 수 있습니다. 재시도는 별도의 HTTP 클라이언트 요청 활동으로 보고되지 않습니다.
가용도 | ActivitySource 이름 | OperationName | DisplayName |
---|---|---|---|
.NET 9 이상 | System.Net.Http |
System.Net.Http.HttpRequestOut |
{HTTP method} |
메모
System.Net.Http.HttpRequestOut
활동은 실제로 이전 버전의 .NET에서 사용할 수 있지만 Status, DisplayName및 특성(태그)은 .NET 9부터만 채워집니다. 이전 버전에서는 기본 제공 계측의 간격을 채우기 위해 OpenTelemetry.Instrumentation.Http 패키지를 사용하는 것이 좋습니다.
특성(태그)
속성 | 형 | 묘사 | 예제 | 존재 |
---|---|---|---|---|
http.request.method |
string |
HTTP 요청 메서드입니다. [1] |
GET ; POST ; HEAD ; _OTHER |
늘 |
server.address |
string |
HTTP 요청이 전송되는 |
example.com ; 10.1.2.80 |
늘 |
server.port |
int |
HTTP 요청이 전송되는 |
80 ; 8080 ; 443 |
늘 |
url.full |
string |
RFC3986 따라 네트워크 리소스를 설명하는 절대 URL [2] | https://www.foo.bar/search?q=* |
늘 |
error.type |
string |
요청 실패 이유: snake_case |
System.OperationCanceledException ; name_resolution_error ; secure_connection_error ; 404 |
요청이 실패한 경우 |
http.request.method_original |
string |
요청 줄에서 클라이언트가 보낸 원래 HTTP 메서드입니다. |
ACL ; foo |
http.request.method 잘 알려진 메서드가 아닌 경우 |
http.response.status_code |
int |
HTTP 응답 상태 코드 |
200 |
응답을 받은 경우 |
network.protocol.version |
string |
사용된 HTTP 프로토콜의 버전입니다. |
1.1 ; 2 |
응답을 받은 경우 |
[1] http.request.method
: 메서드가 RFC9110;에 나열된 잘 알려진 메서드 중 하나인 경우 값에 메서드 이름이 포함됩니다. 그렇지 않으면 값이 _OTHER
. 사용자가 제공한 메서드 이름은 대/소문자를 구분하지 않는 방식으로 알려진 이름에 매핑됩니다. 예를 들어 사용자가 이름 GeT
제공하는 경우 GET
매핑되고 http.request.method_original
채워지지 않습니다.
[2] url.full
: 비밀이 누출되지 않도록 하려면 기본적으로 값이 수정됩니다. 전체 쿼리는 *
문자로 대체되고 조각 & 사용자 정보가 제거됩니다. 자세한 내용 및 옵트아웃 스위치는 URI 편집 호환성이 손상되는 변경 문서참조하세요.
HTTP 클라이언트 요청: 연결 대기(실험적)
이 활동은 HTTP 클라이언트 요청 활동의 자식입니다. 해당 요청이 요청 큐에서 사용 가능한 연결을 기다리는 시간 간격을 나타냅니다. 요청이 들어올 때 풀에서 무료 연결을 사용할 수 있는 경우 연결 작업이 생성될 때까지
가용도 | ActivitySource 이름 | OperationName | DisplayName |
---|---|---|---|
.NET 9 이상 | Experimental.System.Net.Http.Connections |
Experimental.System.Net.Http.Connections.WaitForConnection |
HTTP wait_for_connection {address}:{port} |
팁
풀에서 연결을 가져오는 데 걸리는 시간도 http.client.request.time_in_queue
메트릭에 의해 보고됩니다.
경고
이 활동은 실험적입니다. 이후 버전에서 변경되거나 삭제될 수 있습니다.
특성(태그)
속성 | 형 | 묘사 | 예제 | 존재 |
---|---|---|---|---|
error.type |
string |
연결 실패 이유: snake_case HTTP 요청 오류 중 하나 또는 전체 예외 유형이. |
System.OperationCanceledException ; name_resolution_error ; secure_connection_error |
연결 시도가 실패하는 경우 |
HTTP 연결 설정(실험적)
이 활동은 HTTP 연결의 설정에 대해 설명합니다. 일반적으로 DNS를 확인하고, 소켓 연결을 설정하고, TLS 핸드셰이크를 수행하는 데 걸리는 시간이 포함됩니다.
가용도 | ActivitySource 이름 | OperationName | DisplayName |
---|---|---|---|
.NET 9 이상 | Experimental.System.Net.Http.Connections |
Experimental.System.Net.Http.Connections.ConnectionSetup |
HTTP connection_setup {address}:{port} |
HTTP 클라이언트 요청HTTP 연결 설정 활동 사이에는 부모-자식 관계가 없습니다. 후자는 항상 별도의 추적에 살고있는 루트 활동이 될 것입니다. 그러나 HTTP 연결 설정으로 표현된 연결 시도가 성공적인 HTTP 연결이 생성되고 해당 연결을 제공하는 요청에 의해 연결이 선택되는 경우 계측은 ActivityLink 활동을 가리키는 HTTP 클라이언트 요청 활동에 추가합니다. 즉, 각 요청은 요청을 처리한 연결에 연결됩니다.
메모
HTTP 연결 설정 실패하면 HTTP 클라이언트 요청연결되지 않습니다.
경고
이 활동은 실험적입니다. 이후 버전에서 변경되거나 삭제될 수 있습니다.
특성(태그)
속성 | 형 | 묘사 | 예제 | 존재 |
---|---|---|---|---|
error.type |
string |
연결 실패 이유: snake_case |
System.Net.Sockets.SocketException ; name_resolution_error ; secure_connection_error |
연결 시도가 실패하는 경우 |
network.peer.address |
string |
소켓 연결의 피어 IP 주소입니다. | 10.5.3.2 |
연결 시도가 성공하면 입니다. |
server.address |
string |
초기 HTTP 요청이 전송되는 |
example.com |
늘 |
server.port |
int |
초기 HTTP 요청이 전송되는 |
늘 | |
url.scheme |
string |
URI 체계는 사용된 프로토콜을 식별하는 구성 요소를. |
http ; https |
늘 |
DNS 조회(실험적)
이 활동은 Dns 호출을 통해 수행되는 DNS 조회에 대해 설명합니다. 기본 OS 확인자에서 수행한 실제 DNS 조회가 아닌 관리되는 호출에 해당합니다. DNS 조회 작업이 HTTP 연결 설정 활동과 함께 보고되면 DNS 조회HTTP 연결 설정자식이 됩니다.
가용도 | ActivitySource 이름 | OperationName | DisplayName |
---|---|---|---|
.NET 9 이상 | Experimental.System.Net.NameResolution |
Experimental.System.Net.NameResolution.DnsLookup |
DNS [reverse] lookup {question} |
팁
DNS 조회 기간은 dns.lookup.duration
메트릭에서도 보고됩니다.
경고
이 활동은 실험적입니다. 이후 버전에서 변경되거나 삭제될 수 있습니다.
특성(태그)
속성 | 형 | 묘사 | 예제 | 존재 |
---|---|---|---|---|
error.type |
string |
오류 코드 또는 예외 이름입니다. [1] | host_not_found |
조회가 실패하는 경우 |
dns.answers |
string[] |
확인된 IP 주소 목록(DNS 조회용) 또는 도메인 이름을 포함하는 단일 요소(역방향 조회용)입니다. | ["10.0.0.1", "2001:0db8:85a3:0000:0000:8a2e:0370:7334"] |
조회가 성공하면 |
dns.question.name |
string |
쿼리할 도메인 이름 또는 IP 주소입니다. | example.com |
늘 |
[1]: 값은 snake_case(SocketError, host_not_found
, try_again
, no_recovery
)의 DNS 관련 address_family_not_supported
또는 전체 예외 이름입니다.
소켓 연결(실험적)
이 활동은 Socket 또는 Connect통해 ConnectAsync 연결의 설정에 대해 설명합니다. 소켓 연결 작업이 HTTP 연결 설정 활동과 함께 보고되면 소켓 연결HTTP 연결 설정자식이 됩니다.
가용도 | ActivitySource 이름 | OperationName | DisplayName |
---|---|---|---|
.NET 9 이상 | Experimental.System.Net.Sockets |
Experimental.System.Net.Sockets.Connect |
socket connect {address}[:{port}] |
경고
이 활동은 실험적입니다. 이후 버전에서 변경되거나 삭제될 수 있습니다.
특성(태그)
속성 | 형 | 묘사 | 예제 | 존재 |
---|---|---|---|---|
error.type |
string |
snake_case SocketError. |
address_already_in_use ; connection_refused |
소켓 연결 시도가 실패하는 경우 |
network.peer.address |
string |
네트워크 연결의 피어 주소 - IP 주소 또는 Unix 도메인 소켓 이름입니다. |
10.5.3.2 ; /tmp/my.sock |
IP 및 UDS 소켓. |
network.peer.port |
int |
IP 연결의 피어 포트 번호입니다. | 65123 |
IP 소켓. |
network.transport |
string |
OSI 전송 계층 또는 프로세스 간 통신 방법 |
tcp ; udp ; unix |
IP 및 UDS 소켓. |
network.type |
string |
OSI 네트워크 계층 또는 비 OSI에 해당하는 |
ipv4 ; ipv6 |
IP 소켓. |
TLS 핸드셰이크(실험적)
이 활동은 SslStream인증 방법을 통해 수행되는 TLS 클라이언트 또는 서버 핸드셰이크를 설명합니다. TLS 핸드셰이크 작업이 HTTP 연결 설정 활동과 함께 클라이언트 쪽 인증에 대해 보고되면 TLS 핸드셰이크HTTP 연결 설정자식이 됩니다.
가용도 | ActivitySource 이름 | OperationName | DisplayName |
---|---|---|---|
.NET 9 이상 | Experimental.System.Net.Security |
Experimental.System.Net.Security.TlsHandshake |
TLS client handshake {host} -또는- TLS server handshake |
경고
이 활동은 실험적입니다. 이후 버전에서는 변경되거나 삭제될 수 있습니다.
특성(태그)
속성 | 형 | 묘사 | 예제 | 존재 |
---|---|---|---|---|
error.type |
string |
작업이 종료된 오류 클래스를 설명합니다. |
System.Net.Security.Authentication.AuthenticationException ; System.OperationCanceledException |
핸드셰이크가 실패하는 경우 |
server.address |
string |
TLS 핸드셰이크 중에 '클라이언트 Hello' 메시지에 사용되는 SNI(서버 이름 표시). | example.com |
클라이언트로 인증하는 경우 |
tls.protocol.name |
string |
협상된 SSL/TLS 프로토콜 버전 원래 문자열에서 구문 분석된 정규화된 소문자 프로토콜 이름 |
ssl ; tls |
프로토콜 정보를 사용할 수 있는 경우 |
tls.protocol.version |
string |
협상된 SSL/TLS 프로토콜 버전의 원래 문자열에서 구문 분석된 버전의 숫자 부분 |
1.2 ; 1.3 |
프로토콜 정보를 사용할 수 있는 경우 |
.NET