Megosztás a következőn keresztül:


System.Net metrikák

Ez a cikk a System.Net API használatával létrehozott System.Diagnostics.Metrics beépített hálózati metrikákat ismerteti. A másodlagos EventCounters API-n alapuló metrikák listáját a .NETjól ismert EventCounters című témakörben talál.

Borravaló

Az System.Net metrikák gyűjtéséről, jelentéséről, bővítéséről és teszteléséről további információt a .NET-hálózatkezelési metrikákban talál.

System.Net.NameResolution

A System.Net.NameResolution metrikák a DNS-névfeloldás Dns:

Metrika: dns.lookup.duration
Név Műszer típusa Egység Leírás
dns.lookup.duration Hisztogram s A DNS-keresés végrehajtásához szükséges időt méri.
Attribútum Típus Leírás Példák Jelenlét
dns.question.name string A lekérdezett név. www.example.com; dot.net Mindig
error.type string Egy jól ismert hibasztring vagy egy kivétel teljes típusának neve. host_not_found; System.Net.Sockets.SocketException Hiba esetén

Ez a metrika azt méri, hogy mennyi ideig tart a DNS-kérések végrehajtása. Ezek a kérések úgy fordulhatnak elő, hogy metódusokat hívnak meg Dns vagy közvetve magasabb szintű API-kon belül, például HttpClient.

A DNS-keresés során felmerülő legtöbb hiba SocketExceptionokoz. A gyakori hibaesetek egyértelműsítése érdekében a szoftvercsatornák adott SocketErrorCode kivételei explicit hibaneveket kapnak a error.type:

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

A szoftvercsatornák kivételei bármely más SocketError értékkel együtt System.Net.Sockets.SocketExceptionként jelennek meg.

OpenTelemetria használatakor a metrika alapértelmezett gyűjtői a következők: [ 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 ].

A következő címen érhető el: .NET 8.

System.Net.Http

A System.Net.Http metrikák HTTP-kéréseket és kapcsolatadatokat jelentenek System.Net.Http:

Metrika: http.client.open_connections
Név Műszer típusa Egység (UCUM) Leírás
http.client.open_connections UpDownCounter<T> {connection} Az ügyfélen jelenleg aktív vagy tétlen kimenő HTTP-kapcsolatok száma
Attribútum Típus Leírás Példák Jelenlét
http.connection.state string A HTTP-kapcsolat állapota a HTTP-kapcsolatkészletben. active; idle Mindig
network.protocol.version string A használt HTTP-protokoll verziója. 1.1; 2 Mindig
server.address string A rendszer elküldi az "URI-forrás" gazdagépazonosítóját, HTTP-kérést küld a rendszer. example.com Mindig
server.port int A rendszer elküldi az "URI-forrás" portazonosítóját, HTTP-kérést küld a rendszer. 80; 8080; 443 Ha nem alapértelmezett (80http sémához, 443https)
network.peer.address string A szoftvercsatorna-kapcsolat társ IP-címe. 10.5.3.2 Mindig
url.scheme string Az URI-séma a használt protokollt azonosító összetevőt. http; https; ftp Mindig

HttpClient, ha az alapértelmezett SocketsHttpHandlerhasználatára van konfigurálva, a HTTP-üzenetek küldéséhez gyorsítótárazott hálózati kapcsolatkészletet tart fenn. Ez a metrika megszámolja, hogy jelenleg hány kapcsolat található a készletben. Az aktív kapcsolatok aktív kéréseket kezelnek. Az aktív csatlakozások adatokat továbbíthatnak, vagy az ügyfélre vagy kiszolgálóra várhatnak. Az inaktív kapcsolatok nem kezelik a kéréseket, de nyitva maradnak, hogy a jövőbeli kérések gyorsabban kezelhetők legyenek.

A következő címen érhető el: .NET 8.

Metrika: http.client.connection.duration
Név Műszer típusa Egység (UCUM) Leírás
http.client.connection.duration Hisztogram s A sikeresen létrehozott kimenő HTTP-kapcsolatok időtartama.
Attribútum Típus Leírás Példák Jelenlét
network.protocol.version string A használt HTTP-protokoll verziója. 1.1; 2 Mindig
server.address string A rendszer elküldi az "URI-forrás" gazdagépazonosítóját, HTTP-kérést küld a rendszer. example.com Mindig
server.port int A rendszer elküldi az "URI-forrás" portazonosítóját, HTTP-kérést küld a rendszer. 80; 8080; 443 Ha nem alapértelmezett (80http sémához, 443https)
network.peer.address string A szoftvercsatorna-kapcsolat IP-címe. 10.5.3.2 Mindig
url.scheme string Az URI-séma a használt protokollt azonosító összetevőt. http; https; ftp Mindig

Ez a metrika csak akkor lesz rögzítve, ha HttpClient az alapértelmezett SocketsHttpHandlerhasználatára van konfigurálva.

Mivel ez a metrika nyomon követi a kapcsolat időtartamát, és ideális esetben http-kapcsolatokat használ több kéréshez, a gyűjtőknek hosszabbnak kell lenniük, mint a kérések időtartamához. Ha például a [0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10, 30, 60, 120, 300] függvényt használja, akkor az 5 perces felső gyűjtőt adja meg.

A következő címen érhető el: .NET 8.

Metrika: http.client.request.duration
Név Műszer típusa Egység (UCUM) Leírás
http.client.request.duration Histogram<T> s A kimenő HTTP-kérések időtartama.
Attribútum Típus Leírás Példák Jelenlét
error.type string A kérés sikertelenségének oka: az egyik HTTP-kérési hiba snake_case, vagy egy teljes kivételtípus vagy EGY HTTP 4xx/5xx állapotkód. System.Threading.Tasks.TaskCanceledException; name_resolution_error; secure_connection_error; 404 Ha a kérés sikertelen volt.
http.request.method string HTTP-kérési módszer. GET; POST; ; HEAD_OTHER [2] Mindig
http.response.status_code int HTTP-válasz állapotkódját. 200 Ha válasz érkezett.
network.protocol.version string A használt HTTP-protokoll verziója. 1.1; 2 Ha válasz érkezett.
server.address string A rendszer elküldi az "URI-forrás" gazdagépazonosítóját, HTTP-kérést küld a rendszer. example.com Mindig
server.port int A rendszer elküldi az "URI-forrás" portazonosítóját, HTTP-kérést küld a rendszer. 80; 8080; 443 A .NET-verziótól függ. [3]
url.scheme string Az URI-séma a használt protokollt azonosító összetevőt. http; https; ftp Mindig

[1] error.type: Ha a kérés sikertelen volt, az érték a következők egyikére van beállítva:

[2] http.request.method:http.request.method:** Az érték tartalmazza a metódus nevét, ha a metódus az RFC9110; ellenkező esetben az érték _OTHER. A felhasználó által megadott metódusnevek a kis- és nagybetűk megkülönböztetése miatt ismert nevekre lesznek leképezve. Ha például a felhasználó a GeTnevet adja meg, a rendszer leképezi GET.

[3] server.port: Az érték jelenléte verziófüggő:

  • .NET 8: Ha nem alapértelmezett (80http sémához, 443https)
  • .NET 9+: Mindig jelen van

A HTTP-ügyfélkérés időtartama azt méri, hogy az alapul szolgáló ügyfélkezelő mennyi időt vesz igénybe a kérés teljesítéséhez. A kérés végrehajtása magában foglalja a válaszfejlécek hálózati streamből való olvasásának idejét. Nem tartalmazza a válasz törzsének olvasásával töltött időt.

OpenTelemetria használatakor a metrika alapértelmezett gyűjtői a következők: [ 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 ].

A következő címen érhető el: .NET 8.

Borravaló

metrika bővítési lehetséges.

Metrika: http.client.request.time_in_queue
Név Műszer típusa Egység (UCUM) Leírás
http.client.request.time_in_queue Histogram<T> s Az üzenetsoron az elérhető kapcsolatra váró kérelmek száma.
Attribútum Típus Leírás Példák Jelenlét
http.request.method string HTTP-kérési módszer. GET; POST; HEAD Mindig
network.protocol.version string A használt HTTP-protokoll verziója. 1.1; 2 Mindig
server.address string A rendszer elküldi az "URI-forrás" gazdagépazonosítóját, HTTP-kérést küld a rendszer. example.com Mindig
server.port int A rendszer elküldi az "URI-forrás" portazonosítóját, HTTP-kérést küld a rendszer. 80; 8080; 443 Ha nem alapértelmezett (80http sémához, 443https)
url.scheme string Az URI-séma a használt protokollt azonosító összetevőt. http; https; ftp Mindig

HttpClient, ha az alapértelmezett SocketsHttpHandlerhasználatára van konfigurálva, http-kéréseket küld egy hálózati kapcsolatkészlet használatával. Ha az összes kapcsolat más kérések kezelésével van elfoglalva, az új kérések várólistába kerülnek, és megvárják, amíg a hálózati kapcsolat elérhető lesz. Ez az eszköz azt méri, hogy a HTTP-kérések mennyi időt töltenek a várakozási sorban, mielőtt bármit elküldenek a hálózaton keresztül.

A következő címen érhető el: .NET 8.

Metrika: http.client.active_requests
Név Műszer típusa Egység (UCUM) Leírás
http.client.active_requests UpDownCounter<T> {request} Aktív HTTP-kérések száma.
Attribútum Típus Leírás Példák Jelenlét
http.request.method string HTTP-kérési módszer. GET; POST; HEAD Mindig
server.address string A rendszer elküldi az "URI-forrás" gazdagépazonosítóját, HTTP-kérést küld a rendszer. example.com Mindig
server.port int A rendszer elküldi az "URI-forrás" portazonosítóját, HTTP-kérést küld a rendszer. 80; 8080; 443 Ha nem alapértelmezett (80http sémához, 443https)
url.scheme string Az URI-séma a használt protokollt azonosító összetevőt. http; https; ftp Mindig

Ez a metrika megszámolja, hogy hány kérelem tekinthető aktívnak. A kérelmek ugyanabban az időszakban aktívak, amelyet a http.client.request.duration eszköz mér.

A következő címen érhető el: .NET 8.