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

actuator เปิด​อะไร​ไว้​จริง ไม่ใช่​อะไร​ที่​คุณ​คิด​ว่า​มัน​เปิด

ห้า​บท​ที่​ผ่าน​มา​เรา​คุย​กัน​เรื่อง​คำขอ​กับ​คำ​ตอบ · บท​นี้​กับ​บท​หน้า​ถาม​คำถาม​คนละ​แบบ คือ จาก​ข้าง​นอก​ระบบ เรา​เห็น​อะไร​อยู่​บ้าง

แล้ว​คน​ส่วน​ใหญ่​ก็​เชื่อ​ว่า​จาก​นี้​ดู​อะไร​ก็ได้

เพิ่ม​ใน dependencies ของ​โปร​เจ​กต์
implementation("org.springframework.boot:spring-boot-starter-actuator")

actuatorSpring Boot Actuatorชุด​ปลาย​ทาง​สำหรับ​ดู​สถานะ​ของ​โปรแกรม​จาก​ข้าง​นอก · ใส่​ไว้​แล้ว​เปิด​ให้​น้อย​กว่า​ที่​คน​ส่วน​ใหญ่​คิด · ค่า​ตั้ง​ต้น​ให้​สาม link เท่านั้น คือ​ชุด​ปลาย​ทาง​สำหรับ​ดู​สถานะ​ของ​โปรแกรม​จาก​ข้าง​นอก · ส​ตาร์ต​ขึ้น​มา​แล้ว​ยิง​ไป​ที่​ราก​ของ​มัน

GET /actuator
health · health-path · self

สาม link · ไม่ใช่​สิบ ไม่ใช่​ยี่สิบ

และ​ใน​สาม​อัน​นั้น มี​ปลาย​ทาง​จริง​อยู่​อัน​เดียว​คือ health · self คือ link ที่​ชี้​กลับ​มา​ที่​ตัว​รายการ​เอง และ health-path คือ​รูป​ที่​รับ​ส่วน​ต่อ​ท้าย ของ​ปลาย​ทาง​เดิม

endpoint exposureendpoint exposureการ​ประกาศ​ว่า​ปลาย​ทาง​ไหน​ของ actuator ให้​เรียก​ผ่าน HTTP ได้ · สิ่ง​ที่​ไม่​ได้​ประกาศ​จะ​ไม่มี​อยู่​สำหรับ​ผู้​เรียก ถึง​จะ​ติด​ตั้ง​ไว้​แล้ว​ก็ตาม คือ​รายการ​ที่​ต้อง​เขียน​เอง ไม่ใช่​ค่าที่​มี​ให้​อยู่​แล้ว

app/src/main/resources/application.properties
management.endpoints.web.exposure.include=health,info,metrics

ยิง​ไป​ที่​ราก​อีก​ครั้ง

GET /actuator หลัง​ประกาศ
health · health-path · info · metrics · metrics-requiredMetricName · self

หก link · เพิ่ม​ขึ้น​สาม

ทรงจำนวน link
ค่า​ตั้ง​ต้น3
ประกาศ​สาม​ชื่อ6
🎯 จำนวน link ไม่​เท่ากับ​จำนวน​ปลาย​ทาง

เรา​ประกาศ​ไป​สาม​ชื่อ แต่ link เพิ่ม​ขึ้น​สาม​อัน ทั้ง​ที่ health มี​อยู่​แล้ว​ตั้งแต่​ต้น

เพราะ metrics ให้ link มาส​อง​อัน · อัน​หนึ่ง​คือ​รายการ​ชื่อ​ทั้งหมด อีก​อัน​คือ​รูป​ที่​รับ​ชื่อ​ของ​ตัว​วัด​ต่อ​ท้าย

การ​นับ link แล้ว​สรุป​ว่า​เปิด​กี่​ปลาย​ทาง จะ​นับ​เกิน​เสมอ · ถ้า​ต้อง​รายงาน​ตัวเลข​นี้ ให้​บอก​ว่า​นับ​อะไร​อยู่ ไม่ใช่​บอก​แค่​ตัวเลข

สิ่ง​ที่​ค่า​ตั้ง​ต้น​เลือก​ให้ และ​เหตุผล​ของ​มัน

หัวข้อ​ที่​มีชื่อ​ว่า “สิ่ง​ที่​ค่า​ตั้ง​ต้น​เลือก​ให้ และ​เหตุผล​ของ​มัน”

ปิด​ไว้​เป็น​ค่า​ตั้ง​ต้น เพราะ​ปลาย​ทาง​พวก​นี้​ตอบ​คำถาม​ที่​ไม่​ควร​ตอบ​ให้​ใคร​ก็ได้

รายการ​ปลาย​ทาง​ที่ actuator มี​ให้ ยาว​กว่า​ที่​เรา​เปิด​ไป​มาก · บาง​อัน​บอก​ค่า​ตั้ง​ค่า​ทั้งหมด บาง​อัน​บอก​ราย​ชื่อ bean ทุก​ตัว บาง​อัน​สั่ง​ให้​โปรแกรม​ทำ​อะไร​บาง​อย่าง​ได้​ด้วย

ค่า​ตั้ง​ต้น​จึง​เปิด​แค่ health · ของ​ที่​ไม่​ได้​ประกาศ ไม่มี​อยู่​สำหรับ​ผู้​เรียก ถึง​จะ​ติด​ตั้ง​ไว้​แล้ว​ก็ตาม

⚠️ การ​เปิด​ปลาย​ทาง ไม่ใช่​การ​ตัดสิน​ใจ​เรื่อง​ความ​ปลอดภัย

บท​นี้​ตอบ​คำถาม​เดียว​คือ อะไร​ถูก​เปิด​ไว้​บ้าง · มัน​ไม่​ได้​ตอบ​ว่า​ใคร​ควร​เรียก​ได้

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

คอร์ส​นี้​ไม่​แตะ​เรื่อง​การ​ยืนยัน​ตัว​ตน​กับ​สิทธิ์​เลย ตาม​ที่​ประกาศ​ไว้​ใน​หน้า​แรก · สิ่ง​ที่​คอร์ส​นี้​ยืนยัน​ได้​คือ​รายการ​ที่​เปิด ไม่ใช่​ความ​ปลอดภัย​ของ​มัน

สาม​ข้อ · ทุก​ข้อ​นับ​จาก link ที่​ราก​ของ actuator ตอบ​กลับ​มา

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

บท​ที่ 7 จะ​เปิด​ปลาย​ทาง​ที่​ชื่อ metrics แล้ว​ถาม​ว่า​ใช้​มัน​ตอบ​อะไร​ได้​บ้าง โดย​เริ่ม​จาก​คำถาม ไม่ใช่​เริ่ม​จาก​รายการ

🔬 ตัวเลข​ทุก​ตัว​ใน​บท​นี้​มา​จาก​ไหน
  • นับ​จาก​คีย์​ใน _links ที่​ราก​ของ actuator ตอบ​กลับ​มา ไม่​ได้​นับ​จาก​เอกสาร
  • สอง​ทรง​ต่าง​กัน​ที่​บรรทัด management.endpoints.web.exposure.include บรรทัด​เดียว
  • Spring Boot 4.1.1 · Kotlin 2.4.10
  • รัน​ซ้ำ​เอง​ได้​ด้วย npm run verify:clinic-http
  • Spring Boot — Endpoints (เข้า​ถึง 2026-09-02) — รายการ​ปลาย​ทาง​ทั้งหมด และ​ค่า​ตั้ง​ต้น​ของ​การ​เปิด

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

ข้อ 1 / 3

ค่าตั้งต้นของ actuator เปิดอะไรไว้