Dela via


System.Net mått

I den här artikeln beskrivs de inbyggda nätverksmåtten för System.Net som produceras med hjälp av System.Diagnostics.Metrics-API:et. En lista över mått baserat på det alternativa EventCounters API finns i Välkända EventCounters i .NET.

Dricks

Mer information om hur du samlar in, rapporterar, berikar och testar System.Net mått finns i Nätverksmått i .NET.

System.Net.NameResolution

System.Net.NameResolution mått rapporterar DNS-namnmatchning från Dns:

Mått: dns.lookup.duration
Namn Instrumenttyp Enhet Beskrivning
dns.lookup.duration Histogram s Mäter den tid det tar att utföra en DNS-sökning.
Attribut Typ Beskrivning Exempel Närvaro
dns.question.name sträng Namnet som efterfrågas. www.example.com; dot.net Alltid
error.type sträng En välkänd felsträng eller det fullständiga typnamnet för ett undantag som inträffade. host_not_found; System.Net.Sockets.SocketException Om ett fel uppstod

Det här måttet mäter tiden det tar att göra DNS-begäranden. Dessa begäranden kan inträffa genom att anropa metoder på Dns eller indirekt inom API:er på högre nivå på typer som HttpClient.

De flesta fel när du gör en DNS-sökning genererar en SocketException. För att bättre skilja de vanliga felfallen får socket-undantag med specifika SocketErrorCode explicita felnamn i error.type:

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

Socket-undantag med andra SocketError värde rapporteras som System.Net.Sockets.SocketException.

När du använder OpenTelemetry är standard bucketarna för det här måttet inställda på [ 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 ].

Tillgänglig från och med: .NET 8

System.Net.Http

System.Net.Http-måtten rapporterar HTTP-begäran och anslutningsinformation från System.Net.Http:

Mått: http.client.open_connections
Namn Instrumenttyp Enhet (UCUM) Beskrivning
http.client.open_connections UpDownCounter {connection} Antal utgående HTTP-anslutningar som för närvarande är aktiva eller inaktiva på klienten
Attribut Typ Beskrivning Exempel Närvaro
http.connection.state sträng Tillståndet för HTTP-anslutningen i HTTP-anslutningspoolen. active; idle Alltid
network.protocol.version sträng Version av HTTP-protokollet som används. 1.1; 2 Alltid
server.address sträng Värdidentifierare för "URI-ursprung" HTTP-begäran skickas till. example.com Alltid
server.port Int Portidentifierare för "URI-ursprung" HTTP-begäran skickas till. 80; 8080; 443 Om inte standard (80 för http schema, 443 för https)
network.peer.address sträng Peer-IP-adress för socketanslutningen. 10.5.3.2 Alltid
url.scheme sträng Det URI-schemat komponent som identifierar det använda protokollet. http; https; ftp Alltid

HttpClient, när den är konfigurerad för att använda standard SocketsHttpHandler, har en cachelagrad pool med nätverksanslutningar för att skicka HTTP-meddelanden. Det här måttet räknar hur många anslutningar som för närvarande finns i poolen. Aktiva anslutningar hanterar aktiva begäranden. Aktiva anslutningar kan överföra data eller vänta på klienten eller servern. Inaktiva anslutningar hanterar inga begäranden, men lämnas öppna så att framtida begäranden kan hanteras snabbare.

Tillgänglig från och med: .NET 8

Mått: http.client.connection.duration
Namn Instrumenttyp Enhet (UCUM) Beskrivning
http.client.connection.duration Histogram s Varaktigheten för upprättade utgående HTTP-anslutningar.
Attribut Typ Beskrivning Exempel Närvaro
network.protocol.version sträng Version av HTTP-protokollet som används. 1.1; 2 Alltid
server.address sträng Värdidentifierare för "URI-ursprung" HTTP-begäran skickas till. example.com Alltid
server.port Int Portidentifierare för "URI-ursprung" HTTP-begäran skickas till. 80; 8080; 443 Om inte standard (80 för http schema, 443 för https)
network.peer.address sträng IP-adressen för socketanslutningen. 10.5.3.2 Alltid
url.scheme sträng Det URI-schemat komponent som identifierar det använda protokollet. http; https; ftp Alltid

Det här måttet registreras bara när HttpClient har konfigurerats för att använda standardvärdet SocketsHttpHandler.

Eftersom det här måttet spårar anslutningens varaktighet, och helst http-anslutningar används för flera begäranden, bör bucketarna vara längre än de som används för begärandevaraktighet. Om du till exempel använder [ 0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10, 30, 60, 120, 300 ] får du en övre bucket på 5 minuter.

Tillgänglig från och med: .NET 8

Mått: http.client.request.duration
Namn Instrumenttyp Enhet (UCUM) Beskrivning
http.client.request.duration Histogram s Varaktigheten för utgående HTTP-begäranden.
Attribut Typ Beskrivning Exempel Närvaro
error.type sträng Orsak till fel vid begäran: ett av HTTP-begärandefel i snake_case, eller en fullständig undantagstyp eller en HTTP 4xx/5xx-statuskod. System.Threading.Tasks.TaskCanceledException; name_resolution_error; secure_connection_error ; 404 Om begäran har misslyckats.
http.request.method sträng HTTP-begärandemetod. GET; POST; HEAD; _OTHER [2] Alltid
http.response.status_code Int HTTP-svarsstatuskod. 200 Om svaret togs emot.
network.protocol.version sträng Version av HTTP-protokollet som används. 1.1; 2 Om svaret togs emot.
server.address sträng Värdidentifierare för "URI-ursprung" HTTP-begäran skickas till. example.com Alltid
server.port Int Portidentifierare för "URI-ursprung" HTTP-begäran skickas till. 80; 8080; 443 Beror på .NET-version. [3]
url.scheme sträng Det URI-schemat komponent som identifierar det använda protokollet. http; https; ftp Alltid

[1] error.type: Om begäran har misslyckats anges värdet till något av följande:

  • Ett undantagsnamn med typ, till exempel TaskCanceledException.
  • En statuskod som anger ett klient- eller serverfel, till exempel 500.
  • Om en HttpRequestException inträffat med en annan HttpRequestError än Unknownname_resolution_erroruppräkningsvärdet i ormfall, till exempel name_resolution_error.

[2] http.request.method:http.request.method:** Värdet innehåller metodnamnet, om metoden är en av de välkända metoder som anges i RFC9110; annars är värdet _OTHER. De användardefinierade metodnamnen mappas till kända namn på ett skiftlägesokänsligt sätt. Om användaren till exempel anger namnet GeTmappas det till GET.

[3] server.port: Förekomsten av värdet är versionsberoende:

  • .NET 8: Presentera om inte standard (80 för http schema, 443 för https)
  • .NET 9+: Alltid närvarande

Varaktigheten för HTTP-klientbegäran mäter den tid som den underliggande klienthanteraren tar för att slutföra begäran. När du slutför begäran kan du läsa svarshuvuden från nätverksströmmen. Det inkluderar inte den tid som ägnas åt att läsa svarstexten.

När du använder OpenTelemetry är standard bucketarna för det här måttet inställda på [ 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 ].

Tillgänglig från och med: .NET 8

Dricks

Enrichment är möjligt för det här måttet.

Mått: http.client.request.time_in_queue
Namn Instrumenttyp Enhet (UCUM) Beskrivning
http.client.request.time_in_queue Histogram s Hur lång tid begäranden har lagts på en kö som väntar på en tillgänglig anslutning.
Attribut Typ Beskrivning Exempel Närvaro
http.request.method sträng HTTP-begärandemetod. GET; POST; HEAD Alltid
network.protocol.version sträng Version av HTTP-protokollet som används. 1.1; 2 Alltid
server.address sträng Värdidentifierare för "URI-ursprung" HTTP-begäran skickas till. example.com Alltid
server.port Int Portidentifierare för "URI-ursprung" HTTP-begäran skickas till. 80; 8080; 443 Om inte standard (80 för http schema, 443 för https)
url.scheme sträng Det URI-schemat komponent som identifierar det använda protokollet. http; https; ftp Alltid

HttpClientskickar , när den är konfigurerad för att använda standard SocketsHttpHandler, HTTP-begäranden med hjälp av en pool med nätverksanslutningar. Om alla anslutningar är upptagna med att hantera andra begäranden placeras nya begäranden i en kö och väntar tills en nätverksanslutning är tillgänglig för användning. Det här instrumentet mäter hur lång tid HTTP-begäranden lägger på att vänta i kön innan något skickas i nätverket.

Tillgänglig från och med: .NET 8

Mått: http.client.active_requests
Namn Instrumenttyp Enhet (UCUM) Beskrivning
http.client.active_requests UpDownCounter {request} Antal aktiva HTTP-begäranden.
Attribut Typ Beskrivning Exempel Närvaro
http.request.method sträng HTTP-begärandemetod. GET; POST; HEAD Alltid
server.address sträng Värdidentifierare för "URI-ursprung" HTTP-begäran skickas till. example.com Alltid
server.port Int Portidentifierare för "URI-ursprung" HTTP-begäran skickas till. 80; 8080; 443 Om inte standard (80 för http schema, 443 för https)
url.scheme sträng Det URI-schemat komponent som identifierar det använda protokollet. http; https; ftp Alltid

Det här måttet räknar hur många begäranden som anses vara aktiva. Begäranden är aktiva under samma tidsperiod som mäts av http.client.request.duration instrument.

Tillgänglig från och med: .NET 8