Udostępnij za pośrednictwem


Metryki System.Net

W tym artykule opisano metryki sieci wbudowane do System.Net tworzenia przy użyciu interfejsu System.Diagnostics.Metrics API. Aby zapoznać się z listą metryk opartych na alternatywnym interfejsie API EventCounters , zobacz Well-known EventCounters in .NET (Dobrze znane metryki na platformie .NET).

Napiwek

Aby uzyskać więcej informacji na temat zbierania, raportowania, wzbogacania i testowania metryk System.Net, zobacz Metryki sieci na platformie .NET.

System.Net.NameResolution

System.Net.NameResolution Metryki zgłaszają rozpoznawanie nazw DNS z usługi Dns:

Metrycznych: dns.lookup.duration
Nazwisko Typ instrumentu Jednostka opis
dns.lookup.duration Histogram s Mierzy czas potrzebny na wykonanie wyszukiwania DNS.
Atrybut Type Opis Przykłady Obecność
dns.question.name string Nazwa, do którego jest wykonywane zapytanie. www.example.com; dot.net Zawsze
error.type string Dobrze znany ciąg błędu lub pełna nazwa typu wyjątku, który wystąpił. host_not_found; System.Net.Sockets.SocketException Jeśli wystąpił błąd

Ta metryka mierzy czas podejmowania żądań DNS. Te żądania mogą wystąpić, wywołując metody w interfejsach Dns API wyższego poziomu lub pośrednio w typach, takich jak HttpClient.

Większość błędów podczas wyszukiwania DNS zgłasza błąd SocketException. Aby lepiej uściślić typowe przypadki błędów, wyjątki gniazd z określonymi SocketErrorCode są podane jawne nazwy błędów w :error.type

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

Wyjątki gniazd z dowolną inną SocketError wartością są zgłaszane jako System.Net.Sockets.SocketException.

W przypadku korzystania z biblioteki OpenTelemetry domyślne zasobniki dla tej metryki są ustawione na [ 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 ].

Dostępne od: .NET 8

System.Net.Http

System.Net.Http Metryki zgłaszają żądanie HTTP i informacje o połączeniu z usługi System.Net.Http:

Metrycznych: http.client.open_connections
Nazwisko Typ instrumentu Jednostka (UCUM) opis
http.client.open_connections UpDownCounter {connection} Liczba wychodzących połączeń HTTP, które są obecnie aktywne lub bezczynne na kliencie
Atrybut Type Opis Przykłady Obecność
http.connection.state string Stan połączenia HTTP w puli połączeń HTTP. active; idle Zawsze
network.protocol.version string Używana wersja protokołu warstwy aplikacji. 1.1; 2 Zawsze
server.address string Identyfikator hosta żądania HTTP źródła identyfikatora URI jest wysyłany do. example.com Zawsze
server.port int Identyfikator portu żądania HTTP źródła identyfikatora URI jest wysyłany do. 80; 8080; 443 Jeśli nie jest to ustawienie domyślne (80 dla http schematu, 443 dla https)
network.peer.address string Równorzędny adres IP połączenia gniazda. 10.5.3.2 Zawsze
url.scheme string Składnik schematu identyfikatora URI identyfikujący używany protokół. http; https; ftp Zawsze

HttpClient, jeśli jest skonfigurowany do używania domyślnego SocketsHttpHandler, utrzymuje buforowana pula połączeń sieciowych do wysyłania komunikatów HTTP. Ta metryka zlicza liczbę połączeń aktualnie w puli. Aktywne połączenia obsługują aktywne żądania. Aktywne połączenia mogą przesyłać dane lub czekać na klienta lub serwer. Bezczynne połączenia nie obsługują żadnych żądań, ale pozostają otwarte, aby przyszłe żądania mogły być obsługiwane szybciej.

Dostępne od: .NET 8

Metrycznych: http.client.connection.duration
Nazwisko Typ instrumentu Jednostka (UCUM) opis
http.client.connection.duration Histogram s Czas trwania pomyślnie ustanowionych wychodzących połączeń HTTP.
Atrybut Type Opis Przykłady Obecność
network.protocol.version string Używana wersja protokołu warstwy aplikacji. 1.1; 2 Zawsze
server.address string Identyfikator hosta żądania HTTP źródła identyfikatora URI jest wysyłany do. example.com Zawsze
server.port int Identyfikator portu żądania HTTP źródła identyfikatora URI jest wysyłany do. 80; 8080; 443 Jeśli nie jest to ustawienie domyślne (80 dla http schematu, 443 dla https)
network.peer.address string Adres IP połączenia gniazda. 10.5.3.2 Zawsze
url.scheme string Składnik schematu identyfikatora URI identyfikujący używany protokół. http; https; ftp Zawsze

Ta metryka jest przechwytywana tylko wtedy, gdy HttpClient jest skonfigurowana do używania domyślnego SocketsHttpHandlerelementu .

Ponieważ ta metryka śledzi czas trwania połączenia, a w idealnym przypadku połączenia HTTP są używane dla wielu żądań, zasobniki powinny być dłuższe niż te używane przez czas trwania żądań. Na przykład użycie wartości [ 0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10, 30, 60, 120, 300 ] zapewnia górny przedział 5 minut.

Dostępne od: .NET 8

Metrycznych: http.client.request.duration
Nazwisko Typ instrumentu Jednostka (UCUM) opis
http.client.request.duration Histogram s Czas trwania wychodzących żądań HTTP.
Atrybut Type Opis Przykłady Obecność
error.type string Przyczyna niepowodzenia żądania: jeden z błędów żądania HTTP lub pełny typ wyjątku albo kod stanu HTTP 4xx/5xx. System.Threading.Tasks.TaskCanceledException; name_resolution_error; secure_connection_error ; 404 Jeśli żądanie nie powiodło się.
http.request.method string Metoda żądania HTTP. GET; POST; HEAD Zawsze
http.response.status_code int Kod stanu odpowiedzi HTTP. 200 Jeśli został odebrany.
network.protocol.version string Używana wersja protokołu warstwy aplikacji. 1.1; 2 Jeśli otrzymano odpowiedź.
server.address string Identyfikator hosta żądania HTTP źródła identyfikatora URI jest wysyłany do. example.com Zawsze
server.port int Identyfikator portu żądania HTTP źródła identyfikatora URI jest wysyłany do. 80; 8080; 443 Jeśli nie jest to ustawienie domyślne (80 dla http schematu, 443 dla https)
url.scheme string Składnik schematu identyfikatora URI identyfikujący używany protokół. http; https; ftp Zawsze

Czas trwania żądania klienta HTTP mierzy czas trwania bazowego programu obsługi klienta w celu ukończenia żądania. Ukończenie żądania obejmuje czas odczytywania nagłówków odpowiedzi ze strumienia sieciowego. Nie obejmuje to czasu spędzonego na odczytywaniu treści odpowiedzi.

W przypadku korzystania z biblioteki OpenTelemetry domyślne zasobniki dla tej metryki są ustawione na [ 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 ].

Dostępne od: .NET 8

Napiwek

Wzbogacanie jest możliwe dla tej metryki.

Metrycznych: http.client.request.time_in_queue
Nazwisko Typ instrumentu Jednostka (UCUM) opis
http.client.request.time_in_queue Histogram s Ilość czasu poświęcanego na kolejkę oczekującą na dostępne połączenie.
Atrybut Type Opis Przykłady Obecność
http.request.method string Metoda żądania HTTP. GET; POST; HEAD Zawsze
network.protocol.version string Używana wersja protokołu warstwy aplikacji. 1.1; 2 Zawsze
server.address string Identyfikator hosta żądania HTTP źródła identyfikatora URI jest wysyłany do. example.com Zawsze
server.port int Identyfikator portu żądania HTTP źródła identyfikatora URI jest wysyłany do. 80; 8080; 443 Jeśli nie jest to ustawienie domyślne (80 dla http schematu, 443 dla https)
url.scheme string Składnik schematu identyfikatora URI identyfikujący używany protokół. http; https; ftp Zawsze

HttpClient, jeśli jest skonfigurowany do używania domyślnego SocketsHttpHandler, wysyła żądania HTTP przy użyciu puli połączeń sieciowych. Jeśli wszystkie połączenia są zajęte obsługą innych żądań, nowe żądania są umieszczane w kolejce i czekają, aż połączenie sieciowe będzie dostępne do użycia. Ten instrument mierzy ilość czasu, przez jaki żądania HTTP oczekują w tej kolejce przed wysłaniem wszystkich elementów w sieci.

Dostępne od: .NET 8

Metrycznych: http.client.active_requests
Nazwisko Typ instrumentu Jednostka (UCUM) opis
http.client.active_requests UpDownCounter {request} Liczba aktywnych żądań HTTP.
Atrybut Type Opis Przykłady Obecność
http.request.method string Metoda żądania HTTP. GET; POST; HEAD Zawsze
server.address string Identyfikator hosta żądania HTTP źródła identyfikatora URI jest wysyłany do. example.com Zawsze
server.port int Identyfikator portu żądania HTTP źródła identyfikatora URI jest wysyłany do. 80; 8080; 443 Jeśli nie jest to ustawienie domyślne (80 dla http schematu, 443 dla https)
url.scheme string Składnik schematu identyfikatora URI identyfikujący używany protokół. http; https; ftp Zawsze

Ta metryka zlicza liczbę żądań, które są uznawane za aktywne. Żądania są aktywne dla tego samego okresu, który jest mierzony przez instrument http.client.request.duration .

Dostępne od: .NET 8