Delen via


Ingebouwde activiteiten in .NET

Dit is een verwijzing voor gedistribueerde tracering activiteiten systeemeigen verzonden door . Ingebouwde exemplaren van NET ActivitySource.

System.Net activiteiten

Fooi

Zie Gedistribueerde traceringen in .NETvoor een uitgebreide handleiding over het verzamelen en rapporteren van System.Net traceringen.

HTTP-clientaanvraag

SocketsHttpHandler en HttpClientHandler de http-clientaanvraagactiviteit rapporteren volgens de aanbevelingen die zijn gedefinieerd in OpenTelemetry Semantic Conventions voor HTTP-client. Hierin wordt de HTTP-aanvraag beschreven die wordt verzonden door HttpClient's overbelastingen verzenden tijdens het tijdsinterval dat de onderliggende handler de aanvraag voltooit. Het voltooien van de aanvraag omvat de tijd voor het lezen van antwoordheaders uit de netwerkstroom. Het bevat niet de tijd die nodig is om de hoofdtekst van het antwoord te lezen. SocketsHttpHandler kan aanvragen opnieuw proberen, bijvoorbeeld bij verbindingsfouten of downgrades van HTTP-versies. Nieuwe pogingen worden niet gerapporteerd als afzonderlijke HTTP-clientaanvraag activiteiten.

Beschikbaarheid ActivitySource naam OperationName DisplayName
.NET 9+ System.Net.Http System.Net.Http.HttpRequestOut {HTTP method}

Notitie

De System.Net.Http.HttpRequestOut activiteit is in feite beschikbaar in eerdere versies van .NET, maar de Status, DisplayNameen kenmerken (tags) worden alleen gevuld vanaf .NET 9. In eerdere versies wordt het pakket OpenTelemetry.Instrumentation.Http aanbevolen om de hiaten van de ingebouwde instrumentatie te vullen.

Kenmerken (tags)

Attribuut Type Beschrijving Voorbeelden Aanwezigheid
http.request.method string HTTP-aanvraagmethode. [1] GET; POST; HEAD; _OTHER Altijd
server.address string Host-id van de 'URI origin' HTTP-aanvraag wordt verzonden. example.com; 10.1.2.80 Altijd
server.port int Poort-id van de 'URI-oorsprong' HTTP-aanvraag wordt verzonden. 80; 8080; 443 Altijd
url.full string Absolute URL die een netwerkresource beschrijft volgens RFC3986 [2] https://www.foo.bar/search?q=* Altijd
error.type string Reden van aanvraagfout: een van de HTTP-aanvraagfouten in snake_case, of een volledig uitzonderingstype, of een HTTP 4xx/5xx-statuscode. System.OperationCanceledException; name_resolution_error; secure_connection_error ; 404 Als de aanvraag is mislukt.
http.request.method_original string De oorspronkelijke HTTP-methode die door de client in de aanvraagregel is verzonden. ACL; foo Als http.request.method geen bekende methode is.
http.response.status_code int HTTP-antwoordstatuscode. 200 Als het antwoord is ontvangen.
network.protocol.version string Versie van het GEBRUIKTE HTTP-protocol. 1.1; 2 Als het antwoord is ontvangen.

[1] http.request.method: De waarde bevat de methodenaam als de methode een van de bekende methoden is die worden vermeld in RFC9110; anders wordt de waarde _OTHER. De door de gebruiker verstrekte methodenamen worden toegewezen aan bekende namen op een niet-hoofdlettergevoelige manier. Als de gebruiker bijvoorbeeld de naam GeTopgeeft, wordt deze toegewezen aan GETen wordt http.request.method_original niet ingevuld.

[2] url.full: Om te voorkomen dat geheimen worden gelekt, wordt de waarde standaard opnieuw uitgevoerd: de hele query wordt vervangen door een * teken en de gebruikersgegevens & fragment worden verwijderd. Zie de URI-documenten voor wijzigingsfouten die fouten veroorzakenvoor meer informatie en opt-outswitches.

HTTP-clientaanvraag: wachten op verbinding (experimenteel)

Deze activiteit is een onderliggend element van een HTTP-clientaanvraag activiteit. Het vertegenwoordigt het tijdsinterval dat de bijbehorende aanvraag wacht op een beschikbare verbinding in de aanvraagwachtrij. Als er een gratis verbinding beschikbaar is in de groep wanneer de aanvraag binnenkomt, wordt er geen gewacht op verbinding activiteit wordt gemaakt. Houd er rekening mee dat wachten op verbinding niet de werkelijke verbindingsinstelling vertegenwoordigt; dat is gemodelleerd door de HTTP-verbinding instellen activiteit. SocketsHttpHandler kan aanvragen opnieuw proberen, bijvoorbeeld bij verbindingsfouten of downgrades van HTTP-versies. Nieuwe pogingen worden niet gerapporteerd als afzonderlijke HTTP-clientaanvraag activiteiten; Elke nieuwe verbindingspoging resulteert echter in een nieuwe te wachten op verbinding activiteit onder de bovenliggende aanvraagactiviteit.

Beschikbaarheid ActivitySource naam OperationName DisplayName
.NET 9+ Experimental.System.Net.Http.Connections Experimental.System.Net.Http.Connections.WaitForConnection HTTP wait_for_connection {address}:{port}

Fooi

De tijd die nodig is om een verbinding van de pool op te halen, wordt ook gerapporteerd door de metrische gegevens van de http.client.request.time_in_queue.

Waarschuwing

Deze activiteit is experimenteel. Het kan worden gewijzigd of verwijderd in een toekomstige versie.

Kenmerken (tags)

Attribuut Type Beschrijving Voorbeelden Aanwezigheid
error.type string De reden van de verbindingsfout: een van de HTTP-aanvraagfouten in snake_case of een volledig uitzonderingstype. System.OperationCanceledException; name_resolution_error; secure_connection_error Als de verbindingspoging mislukt.

Installatie van HTTP-verbinding (experimenteel)

Deze activiteit beschrijft de instelling van een HTTP-verbinding. Dit omvat doorgaans de tijd die nodig is om de DNS om te zetten, de socketverbinding tot stand te brengen en de TLS-handshake uit te voeren.

Beschikbaarheid ActivitySource naam OperationName DisplayName
.NET 9+ Experimental.System.Net.Http.Connections Experimental.System.Net.Http.Connections.ConnectionSetup HTTP connection_setup {address}:{port}

Er is geen relatie tussen de HTTP-clientaanvraag en de http-verbinding instellen activiteiten; de laatste zal altijd een hoofdactiviteit zijn, die in een afzonderlijke tracering leeft. Als de verbindingspoging die wordt vertegenwoordigd door het instellen van HTTP-verbinding resulteert in een geslaagde HTTP-verbinding en die verbinding wordt opgehaald door een aanvraag om deze te verwerken, voegt de instrumentatie een ActivityLink toe aan de HTTP-clientaanvraag activiteit die verwijst naar de HTTP-verbinding instellen activiteit. Dat wil gezegd, elke aanvraag is gekoppeld aan de verbinding die de aanvraag heeft geleverd.

Notitie

Als het instellen van HTTP-verbinding mislukt, wordt deze niet gekoppeld aan een HTTP-clientaanvraag.

Waarschuwing

Deze activiteit is experimenteel. Het kan worden gewijzigd of verwijderd in een toekomstige versie.

Kenmerken (tags)

Attribuut Type Beschrijving Voorbeelden Aanwezigheid
error.type string Reden voor verbindingsfout: een van de HTTP-aanvraagfouten in snake_case of een volledig uitzonderingstype. System.Net.Sockets.SocketException; name_resolution_error; secure_connection_error Als de verbindingspoging mislukt.
network.peer.address string Peer-IP-adres van de socketverbinding. 10.5.3.2 Als de verbindingspoging is geslaagd.
server.address string Host-id van de 'URI-oorsprong' de eerste HTTP-aanvraag wordt verzonden. example.com Altijd
server.port int Poort-id van de 'URI-oorsprong' de eerste HTTP-aanvraag wordt verzonden. Altijd
url.scheme string Het URI-schema onderdeel waarmee het gebruikte protocol wordt geïdentificeerd. http; https Altijd

DNS-zoekactie (experimenteel)

In deze activiteit worden DNS-zoekopdrachten beschreven die worden uitgevoerd via Dns-aanroepen. Het komt overeen met de beheerde aanroep en niet de fysieke DNS-zoekacties die worden uitgevoerd door de onderliggende besturingssysteemomzetting. Wanneer de DNS-opzoekactiviteit wordt gerapporteerd, samen met een HTTP-verbinding instellen activiteit, wordt DNS-zoekopdracht een onderliggend element van HTTP-verbinding instellen.

Beschikbaarheid ActivitySource naam OperationName DisplayName
.NET 9+ Experimental.System.Net.NameResolution Experimental.System.Net.NameResolution.DnsLookup DNS [reverse] lookup {question}

Fooi

De duur van de DNS-zoekopdracht wordt ook gerapporteerd door de dns.lookup.duration metrische gegevens.

Waarschuwing

Deze activiteit is experimenteel. Het kan worden gewijzigd of verwijderd in een toekomstige versie.

Kenmerken (tags)

Attribuut Type Beschrijving Voorbeelden Aanwezigheid
error.type string De foutcode of uitzonderingsnaam. [1] host_not_found Als de zoekactie mislukt.
dns.answers string[] Lijst met opgeloste IP-adressen (voor DNS-zoekacties) of één element met domeinnaam (voor reverse lookup). ["10.0.0.1", "2001:0db8:85a3:0000:0000:8a2e:0370:7334"] Als de zoekactie slaagt.
dns.question.name string De domeinnaam of een IP-adres dat wordt opgevraagd. example.com Altijd

[1]: De waarde is een DNS-gerelateerde SocketError in snake_case (host_not_found, try_again, no_recovery, address_family_not_supported) of een volledige uitzonderingsnaam.

Socketverbinding (experimenteel)

Deze activiteit beschrijft de oprichting van een Socket verbinding via Connect of ConnectAsync. Wanneer de socketverbinding activiteit wordt gerapporteerd, samen met een HTTP-verbinding instellen activiteit, wordt socketverbinding een onderliggend element van HTTP-verbinding instellen.

Beschikbaarheid ActivitySource naam OperationName DisplayName
.NET 9+ Experimental.System.Net.Sockets Experimental.System.Net.Sockets.Connect socket connect {address}[:{port}]

Waarschuwing

Deze activiteit is experimenteel. Het kan worden gewijzigd of verwijderd in een toekomstige versie.

Kenmerken (tags)

Attribuut Type Beschrijving Voorbeelden Aanwezigheid
error.type string De SocketError in snake_case. address_already_in_use; connection_refused Als de socketverbindingspoging mislukt.
network.peer.address string Peeradres van de netwerkverbinding - IP-adres of Unix-domeinnaam. 10.5.3.2; /tmp/my.sock IP- en UDS-sockets.
network.peer.port int Peerpoortnummer van de IP-verbinding. 65123 IP-sockets.
network.transport string OSI-transportlaag of communicatiemethode tussen processen. tcp; udp; unix IP- en UDS-sockets.
network.type string OSI-netwerklaag of niet-OSI-equivalent. ipv4; ipv6 IP-sockets.

TLS-handshake (experimenteel)

Deze activiteit beschrijft de TLS-client of serverhanddruk die wordt uitgevoerd via de verificatiemethoden van SslStream. Wanneer de TLS-handshake activiteit wordt gerapporteerd voor verificatie aan de clientzijde, samen met de HTTP-verbinding instellen activiteit, wordt TLS-handshake een onderliggend element van HTTP-verbinding instellen.

Beschikbaarheid ActivitySource naam OperationName DisplayName
.NET 9+ Experimental.System.Net.Security Experimental.System.Net.Security.TlsHandshake TLS client handshake {host} -of- TLS server handshake

Waarschuwing

Deze activiteit is experimenteel. Het kan in toekomstige versies worden gewijzigd of verwijderd.

Kenmerken (tags)

Attribuut Type Beschrijving Voorbeelden Aanwezigheid
error.type string Beschrijft een foutklasse waarmee de bewerking is beëindigd. System.Net.Security.Authentication.AuthenticationException; System.OperationCanceledException Als de handshake mislukt.
server.address string De servernaamindicatie (SNI) gebruikt in het bericht Client Hello tijdens TLS-handshake. example.com Bij het verifiëren als client.
tls.protocol.name string Genormaliseerde protocolnaam in kleine letters geparseerd uit de oorspronkelijke tekenreeks van de onderhandelde versie van het SSL/TLS-protocol ssl; tls Wanneer de protocolgegevens beschikbaar zijn.
tls.protocol.version string Numeriek deel van de versie die is geparseerd uit de oorspronkelijke tekenreeks van de onderhandelde SSL/TLS-protocolversie 1.2; 1.3 Wanneer de protocolgegevens beschikbaar zijn.