Udostępnij za pośrednictwem


Wbudowane działania na platformie .NET

Jest to odwołanie do działań śledzenia rozproszonego emitowanych natywnie przez program . Wbudowane wystąpienia ActivitySource platformy NET.

działania System.Net

Żądanie klienta HTTP

i zgłaszać działanie żądania klienta HTTP zgodnie z zaleceniami zdefiniowanymi w Konwencje semantyczne klienta HTTP. Opisuje ona żądanie HTTP wysyłane przez HttpClientprzeciążenia wysyłania w przedziale czasu, w ramach którego program obsługi bazowej kończy żądanie. Ukończenie żądania obejmuje czas odczytywania nagłówków odpowiedzi ze strumienia sieciowego. Nie obejmuje to czasu spędzonego na odczytywaniu treści odpowiedzi. SocketsHttpHandler może ponowić próby żądań, na przykład w przypadku awarii połączenia lub obniżenia wersji HTTP. Ponowne próby nie są zgłaszane jako oddzielne żądania klienta HTTP działania.

Dostępność nazwa ActivitySource OperationName DisplayName
.NET 9+ System.Net.Http System.Net.Http.HttpRequestOut {HTTP method}

Nuta

Działanie System.Net.Http.HttpRequestOut jest w rzeczywistości dostępne we wcześniejszych wersjach platformy .NET, jednak jego Status, DisplayNamei atrybuty (tagi) są wypełniane tylko na platformie .NET 9. W starszych wersjach pakiet OpenTelemetry.Instrumentation.Http zaleca się wypełnienie luk wbudowanych instrumentacji.

Atrybuty (tagi)

Atrybut Typ Opis Przykłady Obecność
http.request.method string Metoda żądania HTTP. [1] GET; POST; HEAD; _OTHER Zawsze
server.address string Identyfikator hosta "źródło identyfikatora URI" żądanie HTTP jest wysyłane do. example.com; 10.1.2.80 Zawsze
server.port int Identyfikator portu "źródło identyfikatora URI" wysyłane jest żądanie HTTP. 80; 8080; 443 Zawsze
url.full string Bezwzględny adres URL opisujący zasób sieciowy zgodnie z RFC3986 [2] https://www.foo.bar/search?q=* Zawsze
error.type string Przyczyna niepowodzenia żądania: jeden z błędów żądania HTTP w snake_case lub pełnego typu wyjątku albo kod stanu HTTP 4xx/5xx. System.OperationCanceledException; name_resolution_error; secure_connection_error ; 404 Jeśli żądanie nie powiodło się.
http.request.method_original string Oryginalna metoda HTTP wysłana przez klienta w wierszu żądania. ACL; foo Jeśli http.request.method nie jest dobrze znaną metodą.
http.response.status_code int kod stanu odpowiedzi HTTP. 200 Jeśli otrzymano odpowiedź.
network.protocol.version string Używana wersja protokołu HTTP. 1.1; 2 Jeśli otrzymano odpowiedź.

[1] http.request.method: Wartość zawiera nazwę metody, jeśli metoda jest jedną z dobrze znanych metod wymienionych w RFC9110; w przeciwnym razie wartość to _OTHER. Nazwy metod dostarczonych przez użytkownika są mapowane na znane nazwy w sposób niewrażliwy na wielkość liter. Jeśli na przykład użytkownik podaje nazwę GeT, zostanie on zamapowany na GETi http.request.method_original nie zostanie wypełniony.

[2] url.full: Aby uniknąć wycieku wpisów tajnych, wartość jest domyślnie redacted: całe zapytanie jest zastępowane znakiem *, a informacje o użytkowniku & fragment są usuwane. Aby uzyskać więcej informacji i wyłączyć przełączniki, zobacz dokumentację zmiany powodującej niezgodność identyfikatora URI .

Żądanie klienta HTTP: oczekiwanie na połączenie (eksperymentalne)

To działanie jest elementem podrzędnym działania żądania klienta HTTP. Reprezentuje interwał czasu oczekiwania odpowiedniego żądania na dostępne połączenie w kolejce żądań. Jeśli bezpłatne połączenie jest dostępne w puli, gdy pojawi się żądanie, nie zostanie utworzone żadne oczekiwanie na połączenie działania. Należy pamiętać, że czekać na połączenie nie reprezentuje rzeczywistego ustanowienia połączenia; jest modelowany przez działanie konfiguracji połączenia HTTP . SocketsHttpHandler może ponowić próby żądań, na przykład w przypadku awarii połączenia lub obniżenia wersji HTTP. Ponowne próby nie są zgłaszane jako oddzielne żądania klienta HTTP działania; jednak każda nowa próba połączenia spowoduje utworzenie nowego oczekiwanie na działanie połączenia w ramach działania żądania nadrzędnego.

Dostępność nazwa ActivitySource OperationName DisplayName
.NET 9+ Experimental.System.Net.Http.Connections Experimental.System.Net.Http.Connections.WaitForConnection HTTP wait_for_connection {address}:{port}

Napiwek

Czas potrzebny na uzyskanie połączenia z puli jest również zgłaszany przez metrykę http.client.request.time_in_queue.

Ostrzeżenie

To działanie jest eksperymentalne. Może zostać ona zmieniona lub usunięta w przyszłej wersji.

Atrybuty (tagi)

Atrybut Typ Opis Przykłady Obecność
error.type string Przyczyna błędu połączenia: jeden z błędów żądania HTTP w snake_case lub pełnego typu wyjątku. System.OperationCanceledException; name_resolution_error; secure_connection_error Jeśli próba połączenia zakończy się niepowodzeniem.

Konfiguracja połączenia HTTP (eksperymentalna)

To działanie opisuje utworzenie połączenia HTTP. Zazwyczaj obejmuje to czas potrzebny na rozwiązanie problemu z systemem DNS, nawiązanie połączenia gniazda i wykonanie uzgadniania protokołu TLS.

Dostępność nazwa ActivitySource OperationName DisplayName
.NET 9+ Experimental.System.Net.Http.Connections Experimental.System.Net.Http.Connections.ConnectionSetup HTTP connection_setup {address}:{port}

Nie ma relacji nadrzędny-podrzędny między żądania klienta HTTP a działań konfiguracji połączenia HTTP; ten ostatni zawsze będzie działaniem głównym, żyjącym w osobnym śladzie. Jeśli jednak próba połączenia reprezentowana przez konfigurację połączenia HTTP powoduje pomyślnie nawiązane połączenie HTTP i połączenie zostanie odebrane przez żądanie obsługi, instrumentacja dodaje ActivityLink do żądania klienta HTTP działania wskazujące na działanie konfiguracji połączenia HTTP. Oznacza to, że każde żądanie jest połączone z połączeniem, które obsłużyło żądanie.

Nuta

Jeśli konfiguracja połączenia HTTP zakończy się niepowodzeniem, nie zostanie ona połączona z żadnym żądaniem klienta HTTP .

Ostrzeżenie

To działanie jest eksperymentalne. Może zostać ona zmieniona lub usunięta w przyszłej wersji.

Atrybuty (tagi)

Atrybut Typ Opis Przykłady Obecność
error.type string Przyczyna niepowodzenia połączenia: jeden z błędów żądania HTTP w snake_case lub pełnego typu wyjątku. System.Net.Sockets.SocketException; name_resolution_error; secure_connection_error Jeśli próba połączenia zakończy się niepowodzeniem.
network.peer.address string Równorzędny adres IP połączenia gniazda. 10.5.3.2 Jeśli próba połączenia zakończy się pomyślnie.
server.address string Identyfikator hosta "źródło identyfikatora URI" wysyłane jest początkowe żądanie HTTP. example.com Zawsze
server.port int Identyfikator portu "źródło identyfikatora URI" wysyłane jest początkowe żądanie HTTP. Zawsze
url.scheme string Schemat identyfikatora URI składnik identyfikujący używany protokół. http; https Zawsze

Wyszukiwanie DNS (eksperymentalne)

To działanie opisuje wyszukiwania DNS wykonywane za pośrednictwem Dns wywołań. Odpowiada ono wywołaniu zarządzanemu, a nie fizycznym wyszukiwaniom DNS wykonywanym przez podstawowy program rozpoznawania systemu operacyjnego. Gdy działanie wyszukiwania dns jest zgłaszane wraz z działaniem konfiguracji połączenia HTTP, wyszukiwanie DNS staje się elementem podrzędnym konfiguracji połączenia HTTP .

Dostępność nazwa ActivitySource OperationName DisplayName
.NET 9+ Experimental.System.Net.NameResolution Experimental.System.Net.NameResolution.DnsLookup DNS [reverse] lookup {question}

Napiwek

Czas trwania wyszukiwania DNS jest również zgłaszany przez metryki dns.lookup.duration.

Ostrzeżenie

To działanie jest eksperymentalne. Może zostać ona zmieniona lub usunięta w przyszłej wersji.

Atrybuty (tagi)

Atrybut Typ Opis Przykłady Obecność
error.type string Kod błędu lub nazwa wyjątku. [1] host_not_found Jeśli wyszukiwanie zakończy się niepowodzeniem.
dns.answers string[] Lista rozpoznanych adresów IP (dla wyszukiwania DNS) lub pojedynczego elementu zawierającego nazwę domeny (dla wyszukiwania wstecznego). ["10.0.0.1", "2001:0db8:85a3:0000:0000:8a2e:0370:7334"] Jeśli wyszukiwanie zakończy się pomyślnie.
dns.question.name string Nazwa domeny lub adres IP, którego dotyczy zapytanie. example.com Zawsze

[1]: Wartość jest SocketErrorSocketError dns w snake_case (try_again, no_recovery, address_family_not_supported, ) lub pełną nazwę wyjątku.

Socket connect (eksperymentalne)

To działanie opisuje ustanowienie połączenia Socket za pośrednictwem Connect lub ConnectAsync. Gdy działanie socket connect jest zgłaszane wraz z działaniem konfiguracji połączenia HTTP , socket connect staje się elementem podrzędnym konfiguracji połączenia HTTP .

Dostępność nazwa ActivitySource OperationName DisplayName
.NET 9+ Experimental.System.Net.Sockets Experimental.System.Net.Sockets.Connect socket connect {address}[:{port}]

Ostrzeżenie

To działanie jest eksperymentalne. Może zostać ona zmieniona lub usunięta w przyszłej wersji.

Atrybuty (tagi)

Atrybut Typ Opis Przykłady Obecność
error.type string SocketError w snake_case. address_already_in_use; connection_refused Jeśli próba połączenia gniazda zakończy się niepowodzeniem.
network.peer.address string Adres równorzędny połączenia sieciowego — adres IP lub nazwa gniazda domeny systemu Unix. 10.5.3.2; /tmp/my.sock Gniazda IP i UDS.
network.peer.port int Numer portu komunikacji równorzędnej połączenia IP. 65123 Gniazda IP.
network.transport string warstwy transportu OSI lub metody komunikacji między procesami. tcp; udp; unix Gniazda IP i UDS.
network.type string warstwy sieciowej OSI lub nieprzyleżące do osi. ipv4; ipv6 Gniazda IP.

Uzgadnianie protokołu TLS (eksperymentalne)

To działanie opisuje uzgadnianie klienta lub serwera TLS wykonywane za pośrednictwem metod uwierzytelniania SslStream. Gdy działanie uzgadniania protokołu TLS jest zgłaszane na potrzeby uwierzytelniania po stronie klienta wraz z działaniem konfiguracji połączenia HTTP, uzgadnianie protokołu TLS staje się elementem podrzędnym konfiguracji połączenia HTTP .

Dostępność nazwa ActivitySource OperationName DisplayName
.NET 9+ Experimental.System.Net.Security Experimental.System.Net.Security.TlsHandshake TLS client handshake {host} -or- TLS server handshake

Ostrzeżenie

To działanie jest eksperymentalne. Może zostać zmieniony lub usunięty w przyszłych wersjach.

Atrybuty (tagi)

Atrybut Typ Opis Przykłady Obecność
error.type string Opisuje klasę błędów zakończoną operacją. System.Net.Security.Authentication.AuthenticationException; System.OperationCanceledException Jeśli uzgadnianie zakończy się niepowodzeniem.
server.address string Wskazanie nazwy serwera (SNI) używane w komunikacie "Client Hello" podczas uzgadniania protokołu TLS. example.com Podczas uwierzytelniania jako klient.
tls.protocol.name string Znormalizowana nazwa protokołu z małymi literami przeanalizowana z oryginalnego ciągu wynegocjowanego wersji protokołu SSL/TLS ssl; tls Gdy informacje o protokole są dostępne.
tls.protocol.version string Część liczbowa wersji przeanalizowana z oryginalnego ciągu wynegocjowanego wersji protokołu SSL/TLS 1.2; 1.3 Gdy informacje o protokole są dostępne.