Aracılığıyla paylaş


System.Net ölçümleri

Bu makalede, API kullanılarak System.Diagnostics.Metrics oluşturulan için System.Net yerleşik ağ ölçümleri açıklanmaktadır. Alternatif EventCounters API'sini temel alan ölçümlerin listesi için bkz . .NET'te iyi bilinen EventCounters.

İpucu

System.Net ölçümlerini toplama, raporlama, zenginleştirme ve test etme hakkında daha fazla bilgi için bkz . .NET'te ağ ölçümleri.

System.Net.NameResolution

Ölçümler System.Net.NameResolution , dns adı çözümlemesini şu şekilde Dnsbildirir:

Metrik: dns.lookup.duration
Veri Akışı Adı İzleme Türü Unit Açıklama
dns.lookup.duration Histogram s DNS araması yapmak için geçen süreyi ölçer.
Öznitelik Type Açıklama Örnekler İletişim durumu
dns.question.name Dize Sorgulanan ad. www.example.com; dot.net Her zaman
error.type Dize İyi bilinen bir hata dizesi veya oluşan bir özel durumun tam tür adı. host_not_found; System.Net.Sockets.SocketException Hata oluştuysa

Bu ölçüm, DNS istekleri yapmak için gereken süreyi ölçer. Bu istekler, gibi HttpClienttürlerde daha üst düzey API'ler üzerinde Dns veya dolaylı olarak yöntemleri çağırarak oluşabilir.

DNS araması yaparken oluşan hataların çoğu bir SocketExceptionoluşturur. Yaygın hata durumlarını daha iyi tanımlamak için, belirli SocketErrorCode yuva özel durumlarına içinde error.typeaçık hata adları verilir:

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

Diğer SocketError değerlerle yuva özel durumları olarak System.Net.Sockets.SocketExceptionbildirilir.

OpenTelemetry kullanılırken, bu ölçüm için varsayılan demetler [ 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 ] olarak ayarlanır.

Başlangıç olarak kullanılabilir: .NET 8

System.Net.Http

Ölçümler System.Net.Http , adresinden System.Net.HttpHTTP isteği ve bağlantı bilgilerini bildirir:

Metrik: http.client.open_connections
Veri Akışı Adı İzleme Türü Birim (UCUM) Açıklama
http.client.open_connections UpDownCounter {connection} İstemcide şu anda etkin veya boşta olan giden HTTP bağlantılarının sayısı
Öznitelik Type Açıklama Örnekler İletişim durumu
http.connection.state Dize HTTP bağlantı havuzundaki HTTP bağlantısının durumu. active; idle Her zaman
network.protocol.version Dize Kullanılan uygulama katmanı protokolünün sürümü. 1.1; 2 Her zaman
server.address Dize "URI kaynağı" HTTP isteğinin ana bilgisayar tanımlayıcısı adresine gönderilir. example.com Her zaman
server.port int "URI kaynağı" HTTP isteğinin bağlantı noktası tanımlayıcısı adresine gönderilir. 80; 8080; 443 Varsayılan değilse (80 şema için http , 443 için https)
network.peer.address Dize Yuva bağlantısının eş IP adresi. 10.5.3.2 Her zaman
url.scheme Dize Kullanılan protokolü tanımlayan URI düzeni bileşeni. http; https; ftp Her zaman

HttpClient, varsayılan SocketsHttpHandlerkullanacak şekilde yapılandırıldığında, HTTP iletileri göndermek için önbelleğe alınmış bir ağ bağlantısı havuzu tutar. Bu ölçüm, şu anda havuzda kaç bağlantı olduğunu sayar. Etkin bağlantılar etkin istekleri işler. Etkin bağlantılar verileri aktarıyor veya istemciyi veya sunucuyu bekliyor olabilir. Boşta bağlantılar hiçbir isteği işlemez, ancak gelecekteki isteklerin daha hızlı işlenebilmesi için açık bırakılır.

Başlangıç olarak kullanılabilir: .NET 8

Metrik: http.client.connection.duration
Veri Akışı Adı İzleme Türü Birim (UCUM) Açıklama
http.client.connection.duration Histogram s Başarıyla kurulan giden HTTP bağlantılarının süresi.
Öznitelik Type Açıklama Örnekler İletişim durumu
network.protocol.version Dize Kullanılan uygulama katmanı protokolünün sürümü. 1.1; 2 Her zaman
server.address Dize "URI kaynağı" HTTP isteğinin ana bilgisayar tanımlayıcısı adresine gönderilir. example.com Her zaman
server.port int "URI kaynağı" HTTP isteğinin bağlantı noktası tanımlayıcısı adresine gönderilir. 80; 8080; 443 Varsayılan değilse (80 şema için http , 443 için https)
network.peer.address Dize Yuva bağlantısının IP adresi. 10.5.3.2 Her zaman
url.scheme Dize Kullanılan protokolü tanımlayan URI düzeni bileşeni. http; https; ftp Her zaman

Bu ölçüm yalnızca varsayılan SocketsHttpHandlerkullanmak üzere yapılandırıldığında HttpClient yakalanır.

Bu ölçüm bağlantı süresini izlediğinden ve ideal olarak http bağlantıları birden çok istek için kullanıldığından, demetler istek süreleri için kullanılanlardan daha uzun olmalıdır. Örneğin, [ 0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10, 30, 60, 120, 300 ] kullanılması 5 dakikalık bir üst demet sağlar.

Başlangıç olarak kullanılabilir: .NET 8

Metrik: http.client.request.duration
Veri Akışı Adı İzleme Türü Birim (UCUM) Açıklama
http.client.request.duration Histogram s Giden HTTP isteklerinin süresi.
Öznitelik Type Açıklama Örnekler İletişim durumu
error.type Dize İstek hatasının nedeni: HTTP isteği hatalarından biri veya tam özel durum türü ya da HTTP 4xx/5xx durum kodu. System.Threading.Tasks.TaskCanceledException; name_resolution_error; secure_connection_error ; 404 İstek başarısız olduysa.
http.request.method Dize HTTP isteği yöntemi. GET; POST; HEAD Her zaman
http.response.status_code int HTTP yanıt durum kodu. 200 Eğer biri alındıysa.
network.protocol.version Dize Kullanılan uygulama katmanı protokolünün sürümü. 1.1; 2 Yanıt alındıysa.
server.address Dize "URI kaynağı" HTTP isteğinin ana bilgisayar tanımlayıcısı adresine gönderilir. example.com Her zaman
server.port int "URI kaynağı" HTTP isteğinin bağlantı noktası tanımlayıcısı adresine gönderilir. 80; 8080; 443 Varsayılan değilse (80 şema için http , 443 için https)
url.scheme Dize Kullanılan protokolü tanımlayan URI düzeni bileşeni. http; https; ftp Her zaman

HTTP istemci isteği süresi, temel alınan istemci işleyicisinin isteği tamamlamak için geçen süreyi ölçer. İsteğin tamamlanması, ağ akışından yanıt üst bilgilerini okumaya kadar geçen süreyi içerir. Yanıt gövdesini okumak için harcanan zamanı içermez.

OpenTelemetry kullanılırken, bu ölçüm için varsayılan demetler [ 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 ] olarak ayarlanır.

Başlangıç olarak kullanılabilir: .NET 8

İpucu

Bu ölçüm için zenginleştirme mümkündür.

Metrik: http.client.request.time_in_queue
Veri Akışı Adı İzleme Türü Birim (UCUM) Açıklama
http.client.request.time_in_queue Histogram s Kullanılabilir bağlantı beklenmeyi bekleyen bir kuyrukta harcanan istek miktarı.
Öznitelik Type Açıklama Örnekler İletişim durumu
http.request.method Dize HTTP isteği yöntemi. GET; POST; HEAD Her zaman
network.protocol.version Dize Kullanılan uygulama katmanı protokolünün sürümü. 1.1; 2 Her zaman
server.address Dize "URI kaynağı" HTTP isteğinin ana bilgisayar tanımlayıcısı adresine gönderilir. example.com Her zaman
server.port int "URI kaynağı" HTTP isteğinin bağlantı noktası tanımlayıcısı adresine gönderilir. 80; 8080; 443 Varsayılan değilse (80 şema için http , 443 için https)
url.scheme Dize Kullanılan protokolü tanımlayan URI düzeni bileşeni. http; https; ftp Her zaman

HttpClient, varsayılan SocketsHttpHandlerkullanacak şekilde yapılandırıldığında, bir ağ bağlantısı havuzu kullanarak HTTP istekleri gönderir. Tüm bağlantılar diğer istekleri işlemekle meşgulse, yeni istekler kuyruğa alınır ve bir ağ bağlantısı kullanılabilir duruma gelene kadar bekler. Bu araç, HTTP isteklerinin ağ üzerinden herhangi bir şey gönderilmeden önce bu kuyrukta beklerken harcadığı süreyi ölçer.

Başlangıç olarak kullanılabilir: .NET 8

Metrik: http.client.active_requests
Veri Akışı Adı İzleme Türü Birim (UCUM) Açıklama
http.client.active_requests UpDownCounter {request} Etkin HTTP isteklerinin sayısı.
Öznitelik Type Açıklama Örnekler İletişim durumu
http.request.method Dize HTTP isteği yöntemi. GET; POST; HEAD Her zaman
server.address Dize "URI kaynağı" HTTP isteğinin ana bilgisayar tanımlayıcısı adresine gönderilir. example.com Her zaman
server.port int "URI kaynağı" HTTP isteğinin bağlantı noktası tanımlayıcısı adresine gönderilir. 80; 8080; 443 Varsayılan değilse (80 şema için http , 443 için https)
url.scheme Dize Kullanılan protokolü tanımlayan URI düzeni bileşeni. http; https; ftp Her zaman

Bu ölçüm, kaç isteğin etkin olarak kabul edildiğini sayar. İstekler, http.client.request.duration aracı tarafından ölçülen süre boyunca etkindir.

Başlangıç olarak kullanılabilir: .NET 8