Bagikan melalui


Aktivitas bawaan di .NET

Ini adalah referensi untuk aktivitas pelacakan terdistribusi dipancarkan secara asli oleh . Instans ActivitySource bawaan NET.

aktivitas System.Net

Ujung

Untuk panduan komprehensif tentang mengumpulkan dan melaporkan jejak System.Net, lihat jejak terdistribusi jaringan di .NET.

Permintaan klien HTTP

SocketsHttpHandler dan HttpClientHandler melaporkan aktivitas permintaan klien HTTP setelah rekomendasi yang ditentukan dalam OpenTelemetry Konvensi Semantik Klien HTTP. Ini menjelaskan permintaan HTTP yang dikirim oleh HttpClientkirim kelebihan beban selama interval waktu yang mendasar handler menyelesaikan permintaan. Menyelesaikan permintaan mencakup waktu hingga membaca header respons dari aliran jaringan. Ini tidak termasuk waktu yang dihabiskan untuk membaca isi respons. SocketsHttpHandler dapat mencoba kembali permintaan, misalnya, pada kegagalan koneksi atau penurunan versi HTTP. Percobaan ulang tidak dilaporkan sebagai permintaan klien HTTP terpisah aktivitas.

Ketersediaan nama ActivitySource OperationName DisplayName
.NET 9+ System.Net.Http System.Net.Http.HttpRequestOut {HTTP method}

Nota

Aktivitas System.Net.Http.HttpRequestOut sebenarnya tersedia pada versi .NET sebelumnya, namun Status, DisplayName, dan atribut (tag) hanya diisi dimulai dengan .NET 9. Pada versi sebelumnya, paket OpenTelemetry.Instrumentation.Http disarankan untuk mengisi kesenjangan instrumentasi bawaan.

Atribut (tag)

Atribut Jenis Deskripsi Contoh Kehadiran
http.request.method string Metode permintaan HTTP. [1] GET; POST; HEAD; _OTHER Selalu
server.address string Pengidentifikasi host "asal URI" permintaan HTTP dikirim. example.com; 10.1.2.80 Selalu
server.port int Pengidentifikasi port "asal URI" permintaan HTTP dikirim. 80; 8080; 443 Selalu
url.full string URL absolut yang menjelaskan sumber daya jaringan sesuai dengan RFC3986 [2] https://www.foo.bar/search?q=* Selalu
error.type string Alasan kegagalan permintaan: salah satu kesalahan permintaan HTTP di snake_case, atau jenis pengecualian penuh, atau kode status HTTP 4xx/5xx. System.OperationCanceledException; name_resolution_error; secure_connection_error ; 404 Jika permintaan gagal.
http.request.method_original string Metode HTTP asli yang dikirim oleh klien di baris permintaan. ACL; foo Jika http.request.method bukan metode terkenal.
http.response.status_code int kode status respons HTTP. 200 Jika respons diterima.
network.protocol.version string Versi protokol HTTP yang digunakan. 1.1; 2 Jika respons diterima.

[1] http.request.method: Nilai berisi nama metode, jika metode adalah salah satu metode terkenal yang tercantum dalam RFC9110; jika tidak, nilainya adalah _OTHER. Nama metode yang disediakan pengguna dipetakan ke nama yang diketahui dengan cara yang tidak peka huruf besar/kecil. Misalnya, jika pengguna memberikan nama GeT, itu akan dipetakan ke GET, dan http.request.method_original tidak akan diisi.

[2] url.full: Untuk menghindari kebocoran rahasia, nilai diredaksi secara default: seluruh kueri diganti dengan karakter * dan info pengguna & fragmen dihapus. Untuk informasi selengkapnya dan pengalihan penolakan, lihat dokumen perubahan pemecahan redaksi URI .

Permintaan klien HTTP: tunggu koneksi (eksperimental)

Aktivitas ini adalah anak dari permintaan klien HTTP aktivitas. Ini mewakili interval waktu permintaan yang sesuai sedang menunggu koneksi yang tersedia dalam antrean permintaan. Jika koneksi gratis tersedia di kumpulan saat permintaan masuk, tidak ada menunggu koneksi aktivitas akan dibuat. Perhatikan bahwa menunggu koneksi tidak mewakili pembentukan koneksi aktual; yang dimodelkan oleh pengaturan koneksi HTTP aktivitas. SocketsHttpHandler dapat mencoba kembali permintaan, misalnya, pada kegagalan koneksi atau penurunan versi HTTP. Percobaan ulang tidak dilaporkan sebagai permintaan klien HTTP terpisah aktivitas; namun, setiap upaya koneksi baru akan mengakibatkan baru menunggu aktivitas koneksi di bawah aktivitas permintaan induk.

Ketersediaan nama ActivitySource OperationName DisplayName
.NET 9+ Experimental.System.Net.Http.Connections Experimental.System.Net.Http.Connections.WaitForConnection HTTP wait_for_connection {address}:{port}

Ujung

Waktu yang diperlukan untuk mendapatkan koneksi dari kumpulan juga dilaporkan oleh metrik http.client.request.time_in_queue.

Peringatan

Aktivitas ini bersifat eksperimental. Ini mungkin diubah atau dihapus dalam versi yang akan datang.

Atribut (tag)

Atribut Jenis Deskripsi Contoh Kehadiran
error.type string Alasan kegagalan koneksi: salah satu kesalahan permintaan HTTP di snake_case, atau jenis pengecualian penuh. System.OperationCanceledException; name_resolution_error; secure_connection_error Jika upaya koneksi gagal.

Penyiapan koneksi HTTP (eksperimental)

Aktivitas ini menjelaskan pembentukan koneksi HTTP. Biasanya, ini termasuk waktu yang diperlukan untuk menyelesaikan DNS, membuat koneksi soket, dan melakukan jabat tangan TLS.

Ketersediaan nama ActivitySource OperationName DisplayName
.NET 9+ Experimental.System.Net.Http.Connections Experimental.System.Net.Http.Connections.ConnectionSetup HTTP connection_setup {address}:{port}

Tidak ada hubungan induk-anak antara permintaan klien HTTP dan aktivitas penyiapan koneksi HTTP; yang terakhir akan selalu menjadi aktivitas akar, hidup dalam jejak terpisah. Namun, jika upaya koneksi yang diwakili oleh penyiapan koneksi HTTP menghasilkan koneksi HTTP yang berhasil, dan koneksi tersebut diambil oleh permintaan untuk melayaninya, instrumentasi menambahkan ActivityLink ke permintaan klien HTTP aktivitas yang menunjuk ke pengaturan koneksi HTTP aktivitas. Artinya, setiap permintaan ditautkan ke koneksi yang melayani permintaan.

Nota

Jika penyiapan koneksi HTTP gagal, itu tidak akan ditautkan ke permintaan klien HTTP .

Peringatan

Aktivitas ini bersifat eksperimental. Ini mungkin diubah atau dihapus dalam versi yang akan datang.

Atribut (tag)

Atribut Jenis Deskripsi Contoh Kehadiran
error.type string Alasan kegagalan koneksi: salah satu kesalahan permintaan HTTP di snake_case, atau jenis pengecualian penuh. System.Net.Sockets.SocketException; name_resolution_error; secure_connection_error Jika upaya koneksi gagal.
network.peer.address string Alamat IP serekan koneksi soket. 10.5.3.2 Jika upaya koneksi berhasil.
server.address string Pengidentifikasi host "asal URI" permintaan HTTP awal dikirim. example.com Selalu
server.port int Pengidentifikasi port "asal URI" permintaan HTTP awal dikirim. Selalu
url.scheme string Skema URI komponen yang mengidentifikasi protokol yang digunakan. http; https Selalu

Pencarian DNS (eksperimental)

Aktivitas ini menjelaskan pencarian DNS yang dilakukan melalui panggilan Dns. Ini sesuai dengan panggilan terkelola dan bukan pencarian DNS fisik yang dilakukan oleh pemecah masalah OS yang mendasar. Saat aktivitas pencarian DNS dilaporkan bersama dengan aktivitas penyiapan koneksi HTTP , pencarian DNS menjadi turunan dari penyiapan koneksi HTTP .

Ketersediaan nama ActivitySource OperationName DisplayName
.NET 9+ Experimental.System.Net.NameResolution Experimental.System.Net.NameResolution.DnsLookup DNS [reverse] lookup {question}

Ujung

Durasi pencarian DNS juga dilaporkan oleh metrik dns.lookup.duration.

Peringatan

Aktivitas ini bersifat eksperimental. Ini mungkin diubah atau dihapus dalam versi yang akan datang.

Atribut (tag)

Atribut Jenis Deskripsi Contoh Kehadiran
error.type string Kode kesalahan atau nama pengecualian. [1] host_not_found Jika pencarian gagal.
dns.answers string[] Daftar alamat IP yang diselesaikan (untuk pencarian DNS) atau elemen tunggal yang berisi nama domain (untuk pencarian terbalik). ["10.0.0.1", "2001:0db8:85a3:0000:0000:8a2e:0370:7334"] Jika pencarian berhasil.
dns.question.name string Nama domain atau alamat IP yang sedang dikueri. example.com Selalu

[1]: Nilainya adalah SocketError terkait DNS di snake_case (host_not_found, try_again, no_recovery, address_family_not_supported), atau nama pengecualian lengkap.

Koneksi soket (eksperimental)

Aktivitas ini menjelaskan pembentukan koneksi Socket melalui Connect atau ConnectAsync. Ketika aktivitas koneksi soket dilaporkan bersama dengan aktivitas penyiapan koneksi HTTP , koneksi soket menjadi turunan dari penyiapan koneksi HTTP .

Ketersediaan nama ActivitySource OperationName DisplayName
.NET 9+ Experimental.System.Net.Sockets Experimental.System.Net.Sockets.Connect socket connect {address}[:{port}]

Peringatan

Aktivitas ini bersifat eksperimental. Ini mungkin diubah atau dihapus dalam versi yang akan datang.

Atribut (tag)

Atribut Jenis Deskripsi Contoh Kehadiran
error.type string SocketError di snake_case. address_already_in_use; connection_refused Jika upaya koneksi soket gagal.
network.peer.address string Alamat serekan koneksi jaringan - Alamat IP atau nama soket domain Unix. 10.5.3.2; /tmp/my.sock Soket IP dan UDS.
network.peer.port int Nomor port serekan koneksi IP. 65123 Soket IP.
network.transport string lapisan transportasi OSI atau metode komunikasi antar-proses . tcp; udp; unix Soket IP dan UDS.
network.type string lapisan jaringan OSI atau setara non-OSI. ipv4; ipv6 Soket IP.

Jabat tangan TLS (eksperimental)

Aktivitas ini menjelaskan jabat tangan klien atau server TLS yang dilakukan melalui metode autentikasi SslStream. Ketika aktivitas jabat tangan TLS dilaporkan untuk autentikasi sisi klien bersama dengan pengaturan koneksi HTTP aktivitas, jabat tangan TLS menjadi anak dari pengaturan koneksi HTTP .

Ketersediaan nama ActivitySource OperationName DisplayName
.NET 9+ Experimental.System.Net.Security Experimental.System.Net.Security.TlsHandshake TLS client handshake {host} -atau- TLS server handshake

Peringatan

Aktivitas ini bersifat eksperimental. Ini mungkin diubah atau dihapus dalam versi mendatang.

Atribut (tag)

Atribut Jenis Deskripsi Contoh Kehadiran
error.type string Menjelaskan kelas kesalahan yang diakhir oleh operasi. System.Net.Security.Authentication.AuthenticationException; System.OperationCanceledException Jika jabat tangan gagal.
server.address string Indikasi nama server (SNI) digunakan dalam pesan 'Client Hello' selama jabat tangan TLS. example.com Saat mengautentikasi sebagai klien.
tls.protocol.name string Nama protokol huruf kecil yang dinormalisasi diurai dari string asli versi protokol SSL/TLS yang dinegosiasikan ssl; tls Ketika info protokol tersedia.
tls.protocol.version string Bagian numerik dari versi yang diurai dari string asli versi protokol SSL/TLS yang dinegosiasikan 1.2; 1.3 Ketika info protokol tersedia.