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.type
açı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.SocketException
bildirilir.
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:
http.client.open_connections
http.client.connection.duration
http.client.request.duration
http.client.request.time_in_queue
http.client.active_requests
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