ในการสร้าง Dashboard ใน Grafana นั้นต้องสร้างในรูปแบบของ JSON
ซึ่งมีตัวอย่าง และ community ให้เยอะมาก ๆ
แต่ปัญหาคือ การสร้าง ทดสอบ และดูแลไม่ง่ายเลย
จัดการ version ของ dashboard น่าจะอยู่ใน version control ด้วย
ควรต้องมีการ review code ของการสร้าง dashboard
สามารถ integrate กับระบบ CI/CDได้ง่าย
สามารถ reuse ในรูปแบบ component ได้
แนวทางแก้ไขปัญหาของ Grafana dashboard ที่น่าสนใจคือ
Dashboard as a Code ด้วย Grafonnet
ซึ่งใช้งานร่วมกับ
- jsonnet คือ JSON template language
- grafonnet คือ Grafana jsonnet library
ทำการติดตั้งตามเอกสาร
จากนั้นทำการสร้าง project ของ dashboard ดังนี้
ขั้นตอนที่ 1 สร้าง project
[gist id="440da29b8e2dc31c3611398a9d02d61f" file="1.txt"]ขั้นตอนที่ 2 สร้างไฟล์ run.sh สำหรับส่งไฟล์ JSON ของ dashboard ไปยัง Grafana server
[gist id="440da29b8e2dc31c3611398a9d02d61f" file="run.sh"]ขั้นตอนที่ 3 ทำการสร้างไฟล์ JSON จาก grafannet
[gist id="440da29b8e2dc31c3611398a9d02d61f" file="2.txt"]จากนั้นไปดูผลการทำงานที่ Grafana server
จะเจอ Dashboard ที่เราสร้างขึ้นมา ดังรูป
น่าจะสนกับ Dashboard as a Code มาก ๆ