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:
http.client.open_connections
http.client.connection.duration
http.client.request.duration
http.client.request.time_in_queue
http.client.active_requests
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
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla