Spring Boot คือ ตอนที่ 6 : สปริงบูตแอคทูเอเตอร์ (Actuator)

  1. เบื้องต้นเกี่ยวกับสปริงบูตแอคทูเอเตอร์
  2. การสร้าง Spring Boot Application ด้วย Actuator
    การตั้งค่าแอปพลิเคชัน
    ทำความเข้าใจกับแอปพลิเคชัน
    การเปิดใช้งาน Actuator Endpoints
    การทดสอบ Endpoints
    การปรับแต่ง Actuator Endpoints

Spring Boot Actuator เป็นโครงการย่อยของ Spring Boot Framework ได้รับการออกแบบมาเพื่อช่วยคุณตรวจสอบและทำแอพของคุณโดยนำเสนอคุณลักษณะที่พร้อมสำหรับการผลิตทันทีที่แกะกล่อง คุณลักษณะเหล่านี้สามารถใช้เพื่อตรวจสอบเมตริกของแอปพลิเคชัน ทำความเข้าใจทราฟฟิก หรือสถานะของฐานข้อมูลของคุณ เป็นประโยชน์สำหรับผู้ดูแลระบบแอปพลิเคชัน ช่วยให้พวกเขาได้รับข้อมูลเชิงลึกและดูแบบเรียลไทม์ว่าเกิดอะไรขึ้นภายในแอปพลิเคชันที่กำลังทำงานอยู่ ในบทความนี้ เราจะมุ่งเน้นไปที่ตัวกระตุ้นและทำแอพ Spring Boot ที่ใช้ประโยชน์จากความสามารถในการตรวจสอบที่ครอบคลุม

1. เบื้องต้นเกี่ยวกับสปริงบูตแอคทูเอเตอร์

Spring Boot Actuator มี Endpoints ที่หลากหลายสำหรับการรับข้อมูลเกี่ยวกับความสมบูรณ์ ตัวชี้วัด ข้อมูล การถ่ายโอนข้อมูล env ฯลฯ ของการทำแอพของคุณ Endpointsในบริบทของแอคทูเอเตอร์คือรูปแบบ URL ที่ทำหน้าที่เป็นจุดเชื่อมต่อไปยังลักษณะเฉพาะของแอปพลิเคชันของคุณ คุณสามารถเปิดใช้งาน ปิดใช้งาน หรือปรับแต่ง (Endpoints) เหล่านี้ตามความต้องการของคุณ Endpointsตัวกระตุ้นช่วยให้คุณตรวจสอบและโต้ตอบกับแอปพลิเคชัน Spring Boot ของคุณได้ Spring Boot มี Endpoints ในตัวหลายจุด และคุณยังสามารถเพิ่ม Endpoints ของคุณเองได้อีกด้วย

2. การสร้าง Spring Boot Application ด้วย Actuator

มาสร้าง Spring Boot application เพื่อสาธิตความสามารถของ Actuator กัน

การตั้งค่าแอปพลิเคชัน

  1. ไปที่เว็บไซต์ Spring Initializr (start.spring.io)
  2. เลือกการตั้งค่าที่คุณต้องการสำหรับ Project, Language และ Spring Boot Version
  3. ภายใต้ Project Metadata ให้ป้อน Group, Artifact และ Name
  4. สำหรับการขึ้นต่อกัน ให้เพิ่ม ‘Spring Web’ และ ‘Spring Boot Actuator’
  5. คลิกที่ ‘สร้างโครงการ’ เพื่อดาวน์โหลดโครงการ

เมื่อคุณดาวน์โหลดและแตกไฟล์ zip แล้ว ให้นำเข้าโครงการไปยัง IDE ของคุณ การพึ่งพา Maven ที่ระบุในไฟล์ ‘pom.xml’ ของคุณควรดาวน์โหลดโดยอัตโนมัติ

ทำความเข้าใจกับแอปพลิเคชัน

ในโครงการของเรา เรามีการขึ้นต่อกันสองแบบ: spring-boot-starter-web และ spring-boot-starter-actuator อันแรก ‘spring-boot-starter-web’ ใช้ในการสร้างเว็บแอปพลิเคชัน ส่วนที่สองคือ ‘spring-boot-starter-actuator’ เปิดใช้งานคุณลักษณะที่พร้อมสำหรับการผลิตในแอปพลิเคชัน Spring Boot – นี่คือจุดเน้นของบทความของเรา

การเปิดใช้งาน Actuator Endpoints

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

ในการทำเช่นนั้น ให้เปิดไฟล์ ‘application.properties’ และเพิ่มบรรทัดต่อไปนี้:

management.endpoints.web.exposure.include=*

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

การทดสอบ Endpoints

ตอนนี้คุณสามารถเรียกใช้แอปพลิเคชัน Spring Boot ได้แล้ว เมื่อแอปพลิเคชันของคุณเริ่มทำงาน คุณจะสามารถเข้าถึง Endpoints ของแอคทูเอเตอร์ได้ โดยค่าเริ่มต้น Endpoints ของแอคชูเอเตอร์ทั้งหมดจะอยู่ภายใต้เส้นทาง ‘/actuator’ คุณสามารถไปที่ ‘ http://localhost:8080/actuator ‘ ในเว็บเบราว์เซอร์ของคุณหรือบุรุษไปรษณีย์เพื่อดู Endpoints ที่มีอยู่ทั้งหมด

การปรับแต่ง Actuator Endpoints

ตัวกระตุ้นมีตัวเลือกการปรับแต่งมากมายสำหรับ Endpoints ตัวอย่างเช่น เราสามารถปรับแต่ง Endpoints ‘info’ เพื่อแสดงข้อมูลเฉพาะแอปพลิเคชัน

เพิ่มสิ่งต่อไปนี้ในไฟล์ ‘application.properties’ ของคุณ:

info.app.name=Actuator Demo Application
info.app.description=This is a demo application for demonstrating Spring Boot Actuator.
info.app.version=1.0.0

ตอนนี้ หากคุณไปที่ ‘ http://localhost:8080/actuator/info ‘ คุณจะเห็นข้อมูลที่คุณเพิ่งเพิ่มเข้าไป


Spring Boot Actuator เป็นเครื่องมือที่ทรงพลังอย่างยิ่งสำหรับการตรวจสอบแอปพลิเคชัน มันเปิดเผยข้อมูลจำนวนมากที่คุณสามารถใช้เพื่อตรวจสอบความสมบูรณ์ของแอปพลิเคชันของคุณและตัวชี้วัดอื่นๆ เรายังสามารถปรับแต่งและขยาย Actuator ให้เหมาะกับความต้องการเฉพาะของเราได้อีกด้วย

อย่างไรก็ตาม พลังอันยิ่งใหญ่มาพร้อมกับความรับผิดชอบอันยิ่งใหญ่ การรักษาความปลอดภัย Endpoints ของ Actuator เป็นสิ่งสำคัญเนื่องจากสามารถเปิดเผยข้อมูลที่ละเอียดอ่อนได้ อย่าเปิดเผย Endpoints ทั้งหมดโดยไม่คำนึงถึงผลกระทบด้านความปลอดภัย รักษาความปลอดภัย Endpoints ของคุณเสมอโดยใช้ Spring Security หรือโดยการจำกัดการเข้าถึงเฉพาะ Endpoints ที่จำเป็นเท่านั้น

ในบทความนี้ เราได้ทำแอพ Spring Boot พร้อมการรองรับ Actuator และสำรวจความสามารถหลักบางประการ อย่างไรก็ตาม Actuator มีประสิทธิภาพมากกว่าที่เราเคยกล่าวถึง มีคุณสมบัติเพิ่มเติม เช่น การตรวจสอบ การปิดแอปพลิเคชัน ฯลฯ นอกจากนี้ คุณสามารถรวม Actuator เข้ากับระบบตรวจสอบอื่น ๆ เช่น Prometheus, Grafana เป็นต้น เพื่อให้ได้โซลูชันการตรวจสอบที่ครอบคลุมยิ่งขึ้น

ขณะที่คุณสำรวจ Spring Boot Actuator ต่อไป คุณจะพบว่ามันเป็นองค์ประกอบที่สำคัญในการจัดการและตรวจสอบแอปพลิเคชัน Spring Boot ของคุณ โดยเฉพาะอย่างยิ่งเมื่อทำงานในสภาพแวดล้อมการผลิต ด้วย Actuator คุณสามารถมั่นใจได้ว่าการทำแอพของคุณทำงานได้อย่างราบรื่น มีประสิทธิภาพ และไม่มีข้อผิดพลาดที่ไม่คาดคิด


Spring Boot คืออะไร

Spring Boot คือ ตอนที่ 5 : คำอธิบายประกอบ (Annotations)
Spring Boot คือ ตอนที่ 7 : เชื่อมต่อฐานข้อมูลด้วย Spring Data JPA