0Pricing
C# Academy · บทเรียน

การรวบรวมเมทริกซ์

บันทึกตัวนับ เกจ และฮิสโตแกรม

การรวบรวมเมทริกซ์ เป็นบทเรียน C# Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน C# Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส C# Academy มีบทเรียนทั้งหมด 4 บทเรียน

เหตุใดจึงต้องใช้ตัวชี้วัด

ตัวชี้วัดคือค่าการวัดเชิงตัวเลขที่รวมสะสมตามเวลา ตัวชี้วัดขับเคลื่อนแดชบอร์ดและการแจ้งเตือน เช่น อัตราคำขอ จำนวนข้อผิดพลาด เวลาแฝง และจำนวนรายการในคิว ต่างจากบันทึกตรงที่ตัวชี้วัดมีต้นทุนต่ำแม้มีปริมาณสูง เพราะเป็นข้อมูลที่ผ่านการรวมแล้ว

ส่วนเชื่อมต่อโปรแกรมประยุกต์ของเครื่องวัด

.NET จะส่งตัวชี้วัดผ่าน System.Diagnostics.Metrics คุณสร้าง Meter แล้วใช้เครื่องมือนี้สร้างเครื่องมือวัด เช่น ตัวนับและฮิสโตแกรม

using System.Diagnostics.Metrics;

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

ตัวนับ

ตัวนับคือค่าที่เพิ่มขึ้นได้เพียงอย่างเดียว เหมาะสำหรับนับเหตุการณ์ เช่น จำนวนคำสั่งซื้อหรือข้อผิดพลาด คุณเรียกใช้ Add เพื่อเพิ่มค่าตัวนับ

private static readonly Counter<long> OrdersPlaced =
    Meter.CreateCounter<long>("orders.placed");

OrdersPlaced.Add(1);

มิติของตัวนับ

แนบแท็กเพื่อแบ่งตัวนับตามมิติ เช่น สถานะหรือภูมิภาค เพื่อให้คุณรวมและกรองข้อมูลในระบบปลายทางได้

OrdersPlaced.Add(1,
    new KeyValuePair<string, object>("status", "completed"),
    new KeyValuePair<string, object>("region", "eu"));

ฮิสโตแกรม

ฮิสโตแกรมจะบันทึกการกระจายของค่า เหมาะสำหรับเวลาแฝงหรือขนาดข้อมูลที่ส่ง ระบบปลายทางจะคำนวณค่าเปอร์เซ็นไทล์ (p50, p95, p99) จากตัวอย่างที่บันทึกไว้

private static readonly Histogram<double> OrderDuration =
    Meter.CreateHistogram<double>("order.duration", "ms");

OrderDuration.Record(elapsedMs);

UpDownCounters

UpDownCounterสามารถเพิ่มหรือลดค่าได้ เหมาะกับค่าอย่างจำนวนการเชื่อมต่อที่ใช้งานอยู่หรือจำนวนรายการที่อยู่ในคิวขณะนั้น

private static readonly UpDownCounter<long> ActiveOrders =
    Meter.CreateUpDownCounter<long>("orders.active");

ActiveOrders.Add(1);   // started
ActiveOrders.Add(-1);  // finished

เครื่องมือวัดแบบสังเกตได้

เครื่องมือวัดแบบสังเกตได้จะถูกอ่านเมื่อมีการร้องขอผ่านฟังก์ชันเรียกกลับ เหมาะสำหรับมาตรวัด เช่น หน่วยความจำปัจจุบันหรือขนาดแคช ซึ่งควรอ่านค่าเป็นระยะมากกว่าการเพิ่มค่า

Meter.CreateObservableGauge("cache.size",
    () => _cache.Count);

ลงทะเบียนเครื่องวัด

เช่นเดียวกับการติดตาม OpenTelemetry จะรวบรวมเฉพาะเครื่องวัดที่คุณลงทะเบียนไว้ ใช้ AddMeter พร้อมชื่อเครื่องวัดของคุณ

builder.Services.AddOpenTelemetry()
    .WithMetrics(metrics => metrics
        .AddMeter("Checkout.Orders"));

ตัวชี้วัดในตัว

แพ็กเกจเครื่องมือวัดจะแสดงตัวชี้วัดที่เตรียมไว้สำหรับ ASP.NET Core เช่น ระยะเวลาคำขอและจำนวนคำขอที่กำลังทำงาน รวมถึงตัวชี้วัดของสภาพแวดล้อมการทำงาน เช่น การเก็บคืนหน่วยความจำและกลุ่มชุดการทำงาน ทำให้เห็นข้อมูลการทำงานของระบบได้ทันที

metrics
    .AddAspNetCoreInstrumentation()
    .AddRuntimeInstrumentation();

เลือกเครื่องมือวัดที่เหมาะสม

เลือกตามลักษณะการทำงาน ได้แก่ การนับที่เพิ่มขึ้นอย่างเดียว (ตัวนับ) ค่าที่เพิ่มและลดได้ (UpDownCounter) การกระจายของค่า (ฮิสโตแกรม) และค่าปัจจุบันที่อ่านเป็นตัวอย่าง (มาตรวัดแบบสังเกตได้) การเลือกให้เหมาะสมช่วยให้สร้างแดชบอร์ดและการแจ้งเตือนได้ตรงไปตรงมา

ควบคุมจำนวนมิติที่ไม่ซ้ำกัน

ชุดแท็กที่ไม่ซ้ำกันแต่ละชุดจะสร้างอนุกรมเวลาที่แยกต่างหาก แท็กที่มีความหลากหลายสูง เช่น รหัสผู้ใช้ อาจทำให้พื้นที่จัดเก็บและค่าใช้จ่ายเพิ่มขึ้นอย่างมาก ให้ใช้มิติที่มีขอบเขตและมีค่าที่เป็นไปได้ไม่มาก เช่น สถานะหรือภูมิภาค

ตรวจสอบอย่างรวดเร็ว

ทดสอบการรวบรวมตัวชี้วัด

สรุปทบทวน

ตัวชี้วัดจะรวมค่าการวัดเชิงตัวเลขโดยมีต้นทุนต่ำ ส่วนเชื่อมต่อโปรแกรมประยุกต์ของ Meter จะสร้างเครื่องมือวัด ได้แก่ ตัวนับ (เพิ่มขึ้นอย่างเดียว), UpDownCounter (เพิ่มและลดได้), ฮิสโตแกรม (การกระจายสำหรับคำนวณเปอร์เซ็นไทล์) และมาตรวัดแบบสังเกตได้ (อ่านเป็นตัวอย่าง) แท็กจะเพิ่มมิติ แต่ต้องระวังจำนวนค่าที่เป็นไปได้ ลงทะเบียนเครื่องวัดด้วย AddMeter และเพิ่มเครื่องมือวัดในตัวของ ASP.NET Core และสภาพแวดล้อมการทำงานเพื่อรับข้อมูลเชิงลึกได้ทันที

คำถามที่พบบ่อย

บทเรียน “การรวบรวมเมทริกซ์” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การรวบรวมเมทริกซ์” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส C# Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส C# Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การรวบรวมเมทริกซ์”

บันทึกตัวนับ เกจ และฮิสโตแกรม คุณปฏิบัติ C# Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน C# Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน C# Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “การรวบรวมเมทริกซ์” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน C# Academy นี้ได้ไหม

ได้ บทเรียน C# Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. สามเสาหลักของการสังเกตระบบ
  2. การติดตามแบบกระจาย
  3. การรวบรวมเมทริกซ์
  4. การส่งออกไปยังระบบปลายทาง
← กลับไปที่ C# Academy