ในการสร้าง Dashboard ใน Grafana นั้นต้องสร้างในรูปแบบของ JSON
ซึ่งมีตัวอย่าง และ community ให้เยอะมาก ๆ
แต่ปัญหาคือ การสร้าง ทดสอบ และดูแลไม่ง่ายเลย

จัดการ version ของ dashboard น่าจะอยู่ใน version control ด้วย
ควรต้องมีการ review code ของการสร้าง dashboard
สามารถ integrate กับระบบ CI/CDได้ง่าย
สามารถ reuse ในรูปแบบ component ได้

https://grafana.com/blog/2020/02/26/how-to-configure-grafana-as-code/

แนวทางแก้ไขปัญหาของ Grafana dashboard ที่น่าสนใจคือ

Dashboard as a Code ด้วย Grafonnet
ซึ่งใช้งานร่วมกับ

  • jsonnet คือ JSON template language
  • grafonnet คือ Grafana jsonnet library

ทำการติดตั้งตามเอกสาร
จากนั้นทำการสร้าง project ของ dashboard ดังนี้

ขั้นตอนที่ 1 สร้าง project

ขั้นตอนที่ 2 สร้างไฟล์ run.sh สำหรับส่งไฟล์ JSON ของ dashboard ไปยัง Grafana server

ขั้นตอนที่ 3 ทำการสร้างไฟล์ JSON จาก grafannet

จากนั้นไปดูผลการทำงานที่ Grafana server
จะเจอ Dashboard ที่เราสร้างขึ้นมา ดังรูป

น่าจะสนกับ Dashboard as a Code มาก ๆ