0Pricing
C# Academy · Pelajaran

Pelacakan Terdistribusi

Lacak permintaan di berbagai layanan dengan Activity.

Pelacakan Terdistribusi adalah pelajaran C# Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar C# Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus C# Academy mencakup 4 pelajaran total.

Apa Itu Pelacakan Terdistribusi

Pelacakan terdistribusi mengikuti satu permintaan saat melewati berbagai layanan dan komponen. Setiap unit pekerjaan menjadi sebuah rentang, dan rentang yang saling terhubung membentuk sebuah jejak, yang divisualisasikan sebagai linimasa operasi bertingkat.

Rentang dan Jejak

Sebuah rentang memiliki nama, waktu mulai dan selesai, atribut, serta status. Rentang dapat bertingkat: rentang parent (permintaan HTTP) berisi rentang child (kueri basis data, panggilan keluar). Seluruh pohon menggunakan satu ID jejak.

Aktivitas adalah Rentang .NET

Di .NET, kelas System.Diagnostics.Activity merupakan implementasi rentang OpenTelemetry. Anda membuat aktivitas dari sebuah ActivitySource.

using System.Diagnostics;

private static readonly ActivitySource Source =
    new("Checkout.Orders");

Memulai Aktivitas

StartActivity memulai sebuah rentang. Bungkus dengan using agar rentang tersebut berakhir (mencatat durasinya) saat blok selesai.

using Activity activity = Source.StartActivity("PlaceOrder");
// work happens here; span ends when disposed

Menambahkan Label pada Rentang

Label (atribut) menambahkan konteks pasangan kunci-nilai ke rentang, seperti ID pesanan atau jumlah, sehingga jejak dapat dicari dan lebih bermakna.

activity?.SetTag("order.id", orderId);
activity?.SetTag("order.amount", amount);

Mencatat Peristiwa dan Status

Gunakan AddEvent untuk anotasi pada titik waktu tertentu dan SetStatus untuk menandai keberhasilan atau kegagalan, yang menampilkan kesalahan di sistem tujuan pelacakan Anda.

activity?.AddEvent(new ActivityEvent("inventory.reserved"));
activity?.SetStatus(ActivityStatusCode.Error, "Payment declined");

Mendaftarkan ActivitySource

OTel hanya mengumpulkan aktivitas dari sumber yang Anda daftarkan dengan AddSource, jadi beri tahu pelacak nama ActivitySource Anda.

builder.Services.AddOpenTelemetry()
    .WithTracing(tracing => tracing
        .AddSource("Checkout.Orders"));

Instrumentasi Otomatis

Instrumentasi bawaan secara otomatis membuat rentang untuk permintaan ASP.NET Core yang masuk dan panggilan HttpClient yang keluar, sehingga Anda mendapatkan jejak dasar tanpa menulis kode.

tracing
    .AddAspNetCoreInstrumentation()
    .AddHttpClientInstrumentation();

Propagasi Konteks

Agar sebuah jejak melintasi berbagai layanan, ID jejak harus berpindah di antara layanan tersebut. OTel menyisipkannya ke header HTTP keluar (W3C traceparent) dan membacanya di sisi penerima, sehingga secara otomatis menyatukan rentang menjadi satu jejak.

Hubungan Parent dan Child

Ketika Anda memulai aktivitas saat aktivitas lain sedang aktif, aktivitas baru menjadi child-nya melalui Activity.Current. Penumpukan ini membangun pohon jejak tanpa pengaitan manual.

using var parent = Source.StartActivity("PlaceOrder");
using var child = Source.StartActivity("ChargeCard");
// child is nested under parent automatically

Pengambilan Sampel

Melacak setiap permintaan dapat memakan banyak biaya. Pengambilan sampel hanya mencatat sebagian (misalnya 10%) untuk mengendalikan biaya sekaligus mempertahankan data yang representatif.

Pemeriksaan Singkat

Uji pelacakan terdistribusi.

Ringkasan

Pelacakan terdistribusi mengikuti permintaan sebagai rentang yang saling terhubung dan berbagi ID jejak. Di .NET, Activity adalah rentangnya, yang dibuat dari ActivitySource terdaftar melalui StartActivity (gunakan using untuk mengakhirinya). Tambahkan konteks dengan SetTag, AddEvent, dan SetStatus. Instrumentasi otomatis serta propagasi konteks W3C menyatukan jejak di berbagai layanan; pengambilan sampel mengendalikan biaya.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Pelacakan Terdistribusi” gratis?

Ya — teks lengkap “Pelacakan Terdistribusi” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus C# Academy, upgrade ke CoddyKit PRO. Kursus C# Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Pelacakan Terdistribusi”?

Lacak permintaan di berbagai layanan dengan Activity. Kamu berlatih C# Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai C# Academy?

Tidak diperlukan pengalaman sebelumnya. C# Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.

Berapa lama pelajaran “Pelacakan Terdistribusi” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran C# Academy ini?

Ya. Setiap pelajaran C# Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Tiga Pilar Observabilitas
  2. Pelacakan Terdistribusi
  3. Mengumpulkan Metrik
  4. Mengekspor ke Backend
← Kembali ke C# Academy