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:
http.client.open_connections
http.client.connection.duration
http.client.request.duration
http.client.request.time_in_queue
http.client.active_requests
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
Unknown
name_resolution_error
uppräkningsvärdet i ormfall, till exempelname_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 GeT
mappas det till GET
.
[3] server.port
: Förekomsten av värdet är versionsberoende:
-
.NET 8: Presentera om inte standard (
80
förhttp
schema,443
förhttps
) - .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