Delen via


metrische gegevens System.Net

In dit artikel worden de ingebouwde metrische netwerkgegevens voor System.Net beschreven met behulp van de System.Diagnostics.Metrics-API. Zie Bekende EventCounters in .NETvoor een lijst met metrische gegevens op basis van de alternatieve EventCounters API.

Fooi

Zie Metrische netwerkgegevens in .NETvoor meer informatie over het verzamelen, rapporteren, verrijken en testen van System.Net metrische gegevens over netwerken.

System.Net.NameResolution

De System.Net.NameResolution metrische gegevens rapporteren DNS-naamomzetting van Dns:

Metrische gegevens: dns.lookup.duration
Naam Instrumenttype Eenheid Beschrijving
dns.lookup.duration Histogram s Meet de tijd die nodig is om een DNS-zoekopdracht uit te voeren.
Attribuut Type Beschrijving Voorbeelden Aanwezigheid
dns.question.name snaar De naam die wordt opgevraagd. www.example.com; dot.net Altijd
error.type snaar Een bekende fouttekenreeks of de volledige typenaam van een uitzondering die is opgetreden. host_not_found; System.Net.Sockets.SocketException Als er een fout is opgetreden

Deze metrische waarde meet de tijd die nodig is om DNS-aanvragen te maken. Deze aanvragen kunnen optreden door methoden aan te roepen op Dns of indirect binnen API's op een hoger niveau op typen zoals HttpClient.

De meeste fouten bij het uitvoeren van een DNS-zoekopdracht genereren een SocketException. Om de veelvoorkomende foutcases beter te identificeren, krijgen socket-uitzonderingen met specifieke SocketErrorCode expliciete foutnamen in error.type:

SocketErrorCode error.type
HostNotFound host_not_found
TryAgain try_again
AddressFamilyNotSupported address_family_not_supported
NoRecovery no_recovery

Socket-uitzonderingen met een andere SocketError-waarde worden gerapporteerd als System.Net.Sockets.SocketException.

Wanneer u OpenTelemetry gebruikt, worden de standaard buckets voor deze metrische waarde ingesteld op [ 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 ].

Beschikbaar vanaf: .NET 8

System.Net.Http

De System.Net.Http metrische gegevens rapporteren HTTP-aanvraag- en verbindingsgegevens uit System.Net.Http:

Metrische gegevens: http.client.open_connections
Naam Instrumenttype Eenheid (UCUM) Beschrijving
http.client.open_connections UpDownCounter {connection} Aantal uitgaande HTTP-verbindingen die momenteel actief of inactief zijn op de client
Attribuut Type Beschrijving Voorbeelden Aanwezigheid
http.connection.state snaar Status van HTTP-verbinding in de HTTP-verbindingsgroep. active; idle Altijd
network.protocol.version snaar Versie van het GEBRUIKTE HTTP-protocol. 1.1; 2 Altijd
server.address snaar Host-id van de 'URI origin' HTTP-aanvraag wordt verzonden. example.com Altijd
server.port Int Poort-id van de 'URI-oorsprong' HTTP-aanvraag wordt verzonden. 80; 8080; 443 Als dit niet de standaardinstelling is (80 voor http schema, 443 voor https)
network.peer.address snaar Peer-IP-adres van de socketverbinding. 10.5.3.2 Altijd
url.scheme snaar Het URI-schema onderdeel waarmee het gebruikte protocol wordt geïdentificeerd. http; https; ftp Altijd

HttpClient, wanneer deze is geconfigureerd voor het gebruik van de standaard-SocketsHttpHandler, onderhoudt een groep netwerkverbindingen in de cache voor het verzenden van HTTP-berichten. Met deze metrische waarde wordt geteld hoeveel verbindingen zich momenteel in de pool bevinden. Actieve verbindingen verwerken actieve aanvragen. Actieve verbindingen kunnen gegevens verzenden of wachten op de client of server. Niet-actieve verbindingen verwerken geen aanvragen, maar blijven open, zodat toekomstige aanvragen sneller kunnen worden verwerkt.

Beschikbaar vanaf: .NET 8

Metrische gegevens: http.client.connection.duration
Naam Instrumenttype Eenheid (UCUM) Beschrijving
http.client.connection.duration Histogram s De duur van het tot stand gebrachte uitgaande HTTP-verbindingen.
Attribuut Type Beschrijving Voorbeelden Aanwezigheid
network.protocol.version snaar Versie van het GEBRUIKTE HTTP-protocol. 1.1; 2 Altijd
server.address snaar Host-id van de 'URI origin' HTTP-aanvraag wordt verzonden. example.com Altijd
server.port Int Poort-id van de 'URI-oorsprong' HTTP-aanvraag wordt verzonden. 80; 8080; 443 Als dit niet de standaardinstelling is (80 voor http schema, 443 voor https)
network.peer.address snaar IP-adres van de socketverbinding. 10.5.3.2 Altijd
url.scheme snaar Het URI-schema onderdeel waarmee het gebruikte protocol wordt geïdentificeerd. http; https; ftp Altijd

Deze metrische waarde wordt alleen vastgelegd wanneer HttpClient is geconfigureerd voor het gebruik van de standaard-SocketsHttpHandler.

Omdat deze metrische waarde de verbindingsduur bijhoudt en http-verbindingen in het ideale geval worden gebruikt voor meerdere aanvragen, moeten de buckets langer zijn dan de buckets die worden gebruikt voor aanvraagduur. Als u bijvoorbeeld [ 0.01, 0.02, 0,05, 0.1, 0.2, 0,5, 1, 2, 5, 10, 30, 60, 120, 300 ] gebruikt, biedt u een bovenste bucket van 5 minuten.

Beschikbaar vanaf: .NET 8

Metrische gegevens: http.client.request.duration
Naam Instrumenttype Eenheid (UCUM) Beschrijving
http.client.request.duration Histogram s De duur van uitgaande HTTP-aanvragen.
Attribuut Type Beschrijving Voorbeelden Aanwezigheid
error.type snaar Reden van aanvraagfout: een van de HTTP-aanvraagfouten in snake_case, of een volledig uitzonderingstype, of een HTTP 4xx/5xx-statuscode. System.Threading.Tasks.TaskCanceledException; name_resolution_error; secure_connection_error ; 404 Als de aanvraag is mislukt.
http.request.method snaar HTTP-aanvraagmethode. GET; POST; HEAD; _OTHER [2] Altijd
http.response.status_code Int HTTP-antwoordstatuscode. 200 Als het antwoord is ontvangen.
network.protocol.version snaar Versie van het GEBRUIKTE HTTP-protocol. 1.1; 2 Als het antwoord is ontvangen.
server.address snaar Host-id van de 'URI origin' HTTP-aanvraag wordt verzonden. example.com Altijd
server.port Int Poort-id van de 'URI-oorsprong' HTTP-aanvraag wordt verzonden. 80; 8080; 443 Is afhankelijk van de .NET-versie. [3]
url.scheme snaar Het URI-schema onderdeel waarmee het gebruikte protocol wordt geïdentificeerd. http; https; ftp Altijd

[1] error.type: Als de aanvraag is mislukt, wordt de waarde ingesteld op een van de volgende opties:

  • Een uitzonderingsnaam met het type, bijvoorbeeld TaskCanceledException.
  • Een statuscode die een client- of serverfout aangeeft, bijvoorbeeld 500.
  • Als een HttpRequestException heeft plaatsgevonden met een andere HttpRequestError dan Unknown, is de opsommingswaarde in slang bijvoorbeeld name_resolution_error.

[2] http.request.method:http.request.method:** De waarde bevat de naam van de methode 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 op een niet-hoofdlettergevoelige manier toegewezen aan bekende namen. Als de gebruiker bijvoorbeeld de naam GeTopgeeft, wordt deze toegewezen aan GET.

[3] server.port: De aanwezigheid van de waarde is afhankelijk van de versie:

  • .NET 8-: Indien niet standaard aanwezig (80 voor http schema, 443 voor https)
  • .NET 9+: Altijd aanwezig

De duur van de HTTP-clientaanvraag meet de tijd die de onderliggende clienthandler nodig heeft om de aanvraag te voltooien. 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.

Wanneer u OpenTelemetry gebruikt, worden de standaard buckets voor deze metrische waarde ingesteld op [ 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 ].

Beschikbaar vanaf: .NET 8

Fooi

verrijking is mogelijk voor deze metrische waarde.

Metrische gegevens: http.client.request.time_in_queue
Naam Instrumenttype Eenheid (UCUM) Beschrijving
http.client.request.time_in_queue Histogram s De hoeveelheid tijd die wordt besteed aan een wachtrij die wacht op een beschikbare verbinding.
Attribuut Type Beschrijving Voorbeelden Aanwezigheid
http.request.method snaar HTTP-aanvraagmethode. GET; POST; HEAD Altijd
network.protocol.version snaar Versie van het GEBRUIKTE HTTP-protocol. 1.1; 2 Altijd
server.address snaar Host-id van de 'URI origin' HTTP-aanvraag wordt verzonden. example.com Altijd
server.port Int Poort-id van de 'URI-oorsprong' HTTP-aanvraag wordt verzonden. 80; 8080; 443 Als dit niet de standaardinstelling is (80 voor http schema, 443 voor https)
url.scheme snaar Het URI-schema onderdeel waarmee het gebruikte protocol wordt geïdentificeerd. http; https; ftp Altijd

HttpClient, wanneer deze is geconfigureerd voor het gebruik van de standaard-SocketsHttpHandler, HTTP-aanvragen verzendt met behulp van een groep netwerkverbindingen. Als alle verbindingen bezig zijn met het verwerken van andere aanvragen, worden nieuwe aanvragen in een wachtrij geplaatst en gewacht totdat een netwerkverbinding beschikbaar is voor gebruik. Dit instrument meet de hoeveelheid tijd die HTTP-aanvragen in die wachtrij wachten, voordat er iets via het netwerk wordt verzonden.

Beschikbaar vanaf: .NET 8

Metrische gegevens: http.client.active_requests
Naam Instrumenttype Eenheid (UCUM) Beschrijving
http.client.active_requests UpDownCounter {request} Aantal actieve HTTP-aanvragen.
Attribuut Type Beschrijving Voorbeelden Aanwezigheid
http.request.method snaar HTTP-aanvraagmethode. GET; POST; HEAD Altijd
server.address snaar Host-id van de 'URI origin' HTTP-aanvraag wordt verzonden. example.com Altijd
server.port Int Poort-id van de 'URI-oorsprong' HTTP-aanvraag wordt verzonden. 80; 8080; 443 Als dit niet de standaardinstelling is (80 voor http schema, 443 voor https)
url.scheme snaar Het URI-schema onderdeel waarmee het gebruikte protocol wordt geïdentificeerd. http; https; ftp Altijd

Met deze metrische waarde wordt geteld hoeveel aanvragen als actief worden beschouwd. Aanvragen zijn actief voor dezelfde periode die wordt gemeten door het http.client.request.duration instrument.

Beschikbaar vanaf: .NET 8