ข้าม​ไป​ยัง​เนื้อหา

เลือก​ตัว​วัด​จาก​คำถาม ไม่ใช่​จาก​รายการ​ที่​มี​ให้

เปิด metrics ตาม​บท​ที่​แล้ว แล้ว​ยิง​ไป​ดู​รายการ​ชื่อ · สิ่ง​ที่​ได้​คือ​ชื่อ​หลาย​สิบ​ชื่อ

และ​นั่น​คือ​จุด​ที่​คน​ส่วน​ใหญ่​เริ่ม​ผิด

คำถาม​ว่า “มี​อะไร​ให้​วัด​บ้าง” ไม่มี​คำ​ตอบ​ที่​ผิด จึง​ไม่มี​คำ​ตอบ​ที่​ถูก​ด้วย

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

ทาง​ที่​ใช้ได้​คือ​เริ่ม​จาก​คำถาม · ขอบ​ของ​เรา​ตอบ​อะไร​ออก​ไป​ให้​ผู้​เรียก​บ้าง

คำถาม​นี้​ตอบ​ได้​ก็​ต่อ​เมื่อ​เรา​แยก​คำ​ตอบ​ตาม​รหัส​ได้ · เพราะ 200 กับ 400 กับ 409 กับ 500 เป็น​คนละ​เรื่อง​กัน​หมด และ​เป็น​เรื่อง​ที่​หกบท​แรก​ของ​คอร์ส​นี้​พูด​ถึง​ทั้งหมด

ตัว​เดียว ไม่ใช่​หลาย​สิบ​ตัว

MicrometerMicrometerชั้น​ที่​เก็บ​ตัวเลข​ของ​โปรแกรม​ไว้​ให้​อ่าน · คอร์ส​นี้​ใช้​มัน​ตอบ​คำถาม​เดียว​คือ​ผู้​เรียก​ได้​รหัส​อะไร​บ้าง · เรื่อง​หน้า​จอ​กับ​การ​แจ้ง​เตือน​เป็น​ของ​คอร์ส​อื่น คือ​ชั้น​ที่​เก็บ​ตัวเลข​ของ​โปรแกรม​ไว้​ให้​อ่าน · ตัว​ที่​ตอบ​คำถาม​ข้าง​บน​ได้​ชื่อ http.server.requestshttp.server.requestsชื่อ​ของ​ตัว​นับ​คำขอ​ที่​เข้า​มา · ตัว​เดียว​ที่​ตอบ​คำถาม​ว่า​ขอบ​ของ​เรา​ตอบ​อะไร​ออก​ไป​บ้าง เพราะ​มัน​แยก​ตาม​รหัส​ได้

มัน​ไม่​ได้​เก็บ​เป็น​ตัวเลข​ตัว​เดียว · มัน​แยก​ออก​เป็น​หลาย​ช่อง​ด้วย tagtagป้าย​ที่​แยก​ตัว​นับ​หนึ่ง​ตัว​ออก​เป็น​หลาย​ช่อง เช่น​แยก​ตาม​รหัส​ตอบ​กลับ · ค่า​ของ​ป้าย​จะ​โผล่​ก็​ต่อ​เมื่อ​เคย​มี​คำขอ​ที่​ได้​ค่า​นั้น​จริง และ​ช่อง​ที่​เรา​สนใจ​คือ​ช่อง​ที่​ชื่อ status

ยิง​คำขอ​ที่​สำเร็จ​ก่อน อ่าน​ค่า แล้ว​ยิง​คำขอ​ที่​ชน แล้ว​อ่าน​อีก​ครั้ง

ค่า​ของ tag status
ก่อน 200
หลัง 200 · 409

ระหว่าง​สอง​ครั้ง​นั้น​เรา​ยิง​คำขอ​ที่​ทับ​เวลา​กัน​เข้าไป​หนึ่ง​ใบ ซึ่ง​บท​ที่ 4 ทำให้​มัน​ตอบ 409

409 โผล่​เข้า​มา​ใน​รายการ​หลัง​จาก​ที่​มัน​เกิด​ขึ้น​จริง​ครั้ง​แรก

🎯 ป้าย​ที่​ยัง​ไม่​เคย​เกิด จะ​ไม่มี​อยู่​ใน​รายการ​เลย

นี่​คือ​ข้อ​ที่​คน​พลาด​กัน​มาก​ที่สุด​เวลา​อ่าน​ตัว​วัด

หน้า​จอ​ที่​ไม่มี​เส้น​ของ 409 อยู่​เลย แยก​สอง​อย่าง​ข้าง​ล่าง​นี้​ไม่​ออก

  • ยัง​ไม่​เคย​มี​คำขอ​ไหน​ได้ 409 ซึ่ง​เป็น​ข่าวดี
  • มี​คน​ถอด​การ​แปลง​ใน​บท​ที่ 4 ออก​ไป​แล้ว ซึ่ง​เป็น​ข่าว​ร้าย​มาก

สอง​อย่าง​นี้​ให้​ภาพ​เดีย​วกันเป๊ะ · ความ​ว่าง​เปล่า​ไม่ใช่​หลัก​ฐาน

ทาง​แก้​คือ​ยิง​คำขอ​ที่​ควร​ได้ 409 เข้าไป​เอง​เป็น​ระยะ แล้ว​ดู​ว่า​ป้าย​นั้น​ยัง​อยู่ ซึ่ง​เป็น​หลัก​เดียว​กับ marker ใน​บท​ที่ 3 · ถาม​ว่า​ใคร​ตอบ ไม่ใช่​ถาม​ว่า​มี​คน​ตอบ​ไหม

เพราะ​มัน​เป็น​ตัวเลข​ที่​ข้าม​เครื่อง​ไม่​ได้

รายการ​ชื่อ​ของ metrics ยาว​เท่าไร ขึ้น​อยู่​กับ​ว่า​อะไร​อยู่​ใน classpath ของ build นั้น · เพิ่ม​ของ​เข้าไป​หนึ่ง​อย่าง ตัวเลข​ก็​เปลี่ยน

ตอน​วัด​จริง รอบ​ทดลอง​นับ​ได้​ค่า​หนึ่ง แล้ว probe ของ​คอร์ส​นับ​ได้​อีก​ค่า​หนึ่ง บน​เครื่อง​เดียวกัน เพราะ​สอง build มี​ของ​ไม่​เหมือน​กัน

probe จึง​ขึ้น​บัญชี​ตัวเลข​นี้​ไว้​ว่า​เป็น​ค่าที่​ไม่​ต้อง​เทียบ และ​บท​นี้​ไม่​พิมพ์​มัน​ลง​ไป

ข้อ​อ้าง​ที่​กว้าง​กว่า​เครื่อง​ที่​วัด คือ​ข้อ​อ้าง​ที่​ผิด​ใน​ที่​ที่​ไม่มี​ใคร​ไป​ตรวจ

สาม​ข้อ · ทุก​ข้อ​เป็น​ค่า​ของ​ป้าย ไม่ใช่​ตัวเลข​ของ​การ​วัด

  • ตัว​วัด​ที่​ตอบ​คำถาม​ของ​ขอบ​มี​ตัว​เดียว คือ http.server.requests ที่​แยก​ตาม status
  • ป้าย 409 ไม่มี​อยู่​ก่อน​ที่ 409 จะ​เกิด​ขึ้น​จริง แล้ว​โผล่​มา​หลัง​จาก​นั้น
  • จำนวน​ชื่อ​ทั้งหมด​ผูก​กับ classpath จึง​ไม่ใช่​ค่าที่​เอา​ไป​เทียบ​ข้าม​เครื่อง​ได้

บท​ที่ 8 จะ​รวบ​ทุก​อย่าง​เป็น​ตาราง​เดียว แล้ว​ทำให้​ตาราง​นั้น​บังคับ​ตัว​เอง​ได้

🔬 ตัวเลข​ทุก​ตัว​ใน​บท​นี้​มา​จาก​ไหน
  • อ่าน​ค่า​ของ​ป้าย​สอง​ครั้ง​ใน​การ​รัน​เดียว โดย​มี​คำขอ​ที่​ชน​คั่น​อยู่​ตรง​กลาง · ลำดับ​ของ​การ​อ่าน​เป็น​ส่วน​หนึ่ง​ของ​ข้อ​อ้าง อ่าน​สลับ​กัน​แล้ว​ข้อ​อ้าง​เปลี่ยน​ความ​หมาย
  • probe บังคับ​ทั้ง​สอง​ทิศ คือ​ก่อน​หน้า​ต้อง​ไม่มี 409 และ​หลัง​ต้อง​มี
  • Spring Boot 4.1.1 · Micrometer ที่มา​กับ​รุ่น​นั้น
  • รัน​ซ้ำ​เอง​ได้​ด้วย npm run verify:clinic-http
  • Spring Boot — Metrics (เข้า​ถึง 2026-09-02) — http.server.requests และ​ป้าย​ที่มา​กับ​มัน

เช็กความเข้าใจ — บทที่ 7

ข้อ 1 / 3

ทำไมการเริ่มจากรายการชื่อของตัววัด จึงเป็นทางที่ไปไม่ถึงไหน