Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, System.Net API kullanılarak oluşturulan System.Diagnostics.Metrics için yerleşik ağ ölçümleri açıklanmaktadır. Alternatif
Bahşiş
System.Net ölçümlerini toplama, raporlama, zenginleştirme ve test etme hakkında daha fazla bilgi için bkz. .NET'de ağ ölçümleri
System.Net.NameResolution
System.Net.NameResolution ölçümleri, DnsDNS ad çözümlemesini bildirir:
Ölçüm: dns.lookup.duration
| Ad | İzleme Türü | Birim | Açıklama |
|---|---|---|---|
dns.lookup.duration |
Histogram | s |
DNS araması yapmak için geçen süreyi ölçer. |
| Öznitelik | Tür | Açıklama | Örnekler | Varlık |
|---|---|---|---|---|
dns.question.name |
string |
Sorgulanan ad. |
www.example.com; dot.net |
Her zaman |
error.type |
string |
İ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, Dns üzerinde yöntemleri çağırarak veya HttpClientgibi türlerde dolaylı olarak üst düzey API'ler içinde gerçekleşebilir.
DNS araması yaparken karşılaşılan hataların çoğu SocketExceptionoluşturur. Yaygın hata durumlarını daha iyi tanımlamak için, belirli SocketErrorCode sahip yuva özel durumlarına error.typeaçık hata adları verilir:
| SocketErrorCode | error.type |
|---|---|
| HostNotFound | host_not_found |
| TryAgain | try_again |
| AddressFamilyNotSupported | address_family_not_supported |
| NoRecovery | no_recovery |
Başka bir SocketError değeri olan yuva özel durumları System.Net.Sockets.SocketExceptionolarak 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.
Şu şekilde kullanılabilir: .NET 8.
System.Net.Http
System.Net.Http ölçümleri, System.Net.Httphttp isteği ve bağlantı bilgilerini bildirir:
http.client.open_connectionshttp.client.connection.durationhttp.client.request.durationhttp.client.request.time_in_queuehttp.client.active_requests
Ölçüm: http.client.open_connections
| Ad | İzleme Türü | Birim (UCUM) | Açıklama |
|---|---|---|---|
http.client.open_connections |
UpDownCounter<T> | {connection} |
İstemcide şu anda etkin veya boşta olan giden HTTP bağlantılarının sayısı |
| Öznitelik | Tür | Açıklama | Örnekler | Varlık |
|---|---|---|---|---|
http.connection.state |
string |
HTTP bağlantı havuzundaki HTTP bağlantısının durumu. |
active; idle |
Her zaman |
network.protocol.version |
string |
Kullanılan HTTP protokolünün sürümü. |
1.1; 2 |
Her zaman |
server.address |
string |
HTTP isteğinin gönderildiği |
example.com |
Her zaman |
server.port |
int |
HTTP isteğinin gönderildiği "URI kaynağı" |
80; 8080; 443 |
Varsayılan değilse ( 80 düzeni içinhttp, 443için https ) |
network.peer.address |
string |
Yuva bağlantısının eş IP adresi. | 10.5.3.2 |
Her zaman |
url.scheme |
string |
URI düzeni, kullanılan protokolü tanımlayan bileşen. |
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.
Şu şekilde kullanılabilir: .NET 8.
Ölçüm: http.client.connection.duration
| 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 | Tür | Açıklama | Örnekler | Varlık |
|---|---|---|---|---|
network.protocol.version |
string |
Kullanılan HTTP protokolünün sürümü. |
1.1; 2 |
Her zaman |
server.address |
string |
HTTP isteğinin gönderildiği |
example.com |
Her zaman |
server.port |
int |
HTTP isteğinin gönderildiği "URI kaynağı" |
80; 8080; 443 |
Varsayılan değilse ( 80 düzeni içinhttp, 443için https ) |
network.peer.address |
string |
Yuva bağlantısının IP adresi. | 10.5.3.2 |
Her zaman |
url.scheme |
string |
URI düzeni, kullanılan protokolü tanımlayan bileşen. |
http; https; ftp |
Her zaman |
Bu ölçüm yalnızca HttpClient varsayılan SocketsHttpHandlerkullanacak şekilde yapılandırıldığında 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.
Şu şekilde kullanılabilir: .NET 8.
Ölçüm: http.client.request.duration
| Ad | İzleme Türü | Birim (UCUM) | Açıklama |
|---|---|---|---|
http.client.request.duration |
Histogram<T> | s |
Giden HTTP isteklerinin süresi. |
| Öznitelik | Tür | Açıklama | Örnekler | Varlık |
|---|---|---|---|---|
error.type |
string |
İstek hatasının nedeni: HTTP isteği hatalarından biri snake_case veya tam özel durum türü ya da HTTP 4xx/5xx durum kodunda. |
System.Threading.Tasks.TaskCanceledException; name_resolution_error; secure_connection_error ; 404 |
İstek başarısız olduysa. |
http.request.method |
string |
HTTP isteği yöntemi. |
GET; POST; ; HEAD_OTHER [2] |
Her zaman |
http.response.status_code |
int |
http yanıt durum kodunu |
200 |
Yanıt alındıysa. |
network.protocol.version |
string |
Kullanılan HTTP protokolünün sürümü. |
1.1; 2 |
Yanıt alındıysa. |
server.address |
string |
HTTP isteğinin gönderildiği |
example.com |
Her zaman |
server.port |
int |
HTTP isteğinin gönderildiği "URI kaynağı" |
80; 8080; 443 |
.NET sürümüne bağlıdır. [3] |
url.scheme |
string |
URI düzeni, kullanılan protokolü tanımlayan bileşen. |
http; https; ftp |
Her zaman |
[1] error.type: İstek başarısız olduysa, değer aşağıdakilerden birine ayarlanır:
- türüne sahip bir özel durum adı, örneğin, TaskCanceledException.
- İstemci veya sunucu hatasını gösteren bir durum kodu, örneğin,
500. -
HttpRequestExceptiondışında bir HttpRequestError ile bir
Unknownoluştuysa, yılan örneğindeki sabit listesi değeriname_resolution_error.
[2] http.request.method:http.request.method:** Yöntemin RFC9110listelenen iyi bilinen yöntemlerden biri olması durumunda bu değer yöntem adını içerir; aksi takdirde değeri _OTHER. Kullanıcı tarafından sağlanan yöntem adları, büyük/küçük harfe duyarsız bir şekilde bilinen adlara eşlenir. Örneğin, kullanıcı GeTadını sağlarsa, GETile eşlenir.
[3] server.port: Değerin varlığı sürüme bağlıdır:
- .NET 8
: Varsayılan değilse sun ( düzeni için , için ) - .NET 9+
: Her zaman mevcut
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.
Şu şekilde kullanılabilir: .NET 8.
Bahşiş
Zenginleştirme bu ölçüm için mümkündür.
Ölçüm: http.client.request.time_in_queue
| Ad | İzleme Türü | Birim (UCUM) | Açıklama |
|---|---|---|---|
http.client.request.time_in_queue |
Histogram<T> | s |
Kullanılabilir bağlantı beklenmeyi bekleyen bir kuyrukta harcanan istek miktarı. |
| Öznitelik | Tür | Açıklama | Örnekler | Varlık |
|---|---|---|---|---|
http.request.method |
string |
HTTP isteği yöntemi. |
GET; POST; HEAD |
Her zaman |
network.protocol.version |
string |
Kullanılan HTTP protokolünün sürümü. |
1.1; 2 |
Her zaman |
server.address |
string |
HTTP isteğinin gönderildiği |
example.com |
Her zaman |
server.port |
int |
HTTP isteğinin gönderildiği "URI kaynağı" |
80; 8080; 443 |
Varsayılan değilse ( 80 düzeni içinhttp, 443için https ) |
url.scheme |
string |
URI düzeni, kullanılan protokolü tanımlayan bileşen. |
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.
Şu şekilde kullanılabilir: .NET 8.
Ölçüm: http.client.active_requests
| Ad | İzleme Türü | Birim (UCUM) | Açıklama |
|---|---|---|---|
http.client.active_requests |
UpDownCounter<T> | {request} |
Etkin HTTP isteklerinin sayısı. |
| Öznitelik | Tür | Açıklama | Örnekler | Varlık |
|---|---|---|---|---|
http.request.method |
string |
HTTP isteği yöntemi. |
GET; POST; HEAD |
Her zaman |
server.address |
string |
HTTP isteğinin gönderildiği |
example.com |
Her zaman |
server.port |
int |
HTTP isteğinin gönderildiği "URI kaynağı" |
80; 8080; 443 |
Varsayılan değilse ( 80 düzeni içinhttp, 443için https ) |
url.scheme |
string |
URI düzeni, kullanılan protokolü tanımlayan bileşen. |
http; https; ftp |
Her zaman |
Bu ölçüm, kaç isteğin etkin olarak kabul edildiğini sayar. İstekler, http.client.request.duration
Şu şekilde kullanılabilir: .NET 8.