Grafana

Grafana คือ เป็นเครื่องมือที่ใช้ในการทำ Dashboard สำหรับนำข้อมูลที่เก็บอยู่ในฐานข้อมูลมาแสดงผลในรูปแบบต่าง ๆ ที่ง่ายต่อการนำมาใช้ทำการวิเคราะห์ ตรวจติดตามข้อมูล หรือเรียกดูข้อมูลย้อนหลังตามช่วงเวลาที่ต้องการได้ โดยที่สามารถนำข้อมูลจาก InfluxDB มาแสดงผลในรูป Dashboard ได้

การใช้ Grafana ร่วมกับ InfluxDB

ในการใช้งาน Grafana ร่วมกับ InfluxDB ที่จะดึงค่าจาก InfluxDB นำมาแสดงในรูป Dashboard เริ่มแรกให้ทำการสร้าง dashboard ขึ้นมา คลิปที่ปุ่ม "New"

_images/grafana1.png

จากนั้นจะมี Dropdown ขึ้นมาให้ทำการเลือก "New dashboard"

_images/grafana2.png

จะมีหน้าต่างขึ้นมาดังรูป ทำการคลิปที่ปุ่ม "Add Visualization"

_images/grafana3.png

หลังจากนั้นทำการเลือก Data source "InfluxDB_v2_Flux"

_images/grafana4.png

การ query ข้อมูลจาก InfluxDB เพื่อนำมาแสดงผลใน Grafana

_images/grafana5.png

ตัวอย่าง

from(bucket: "flowstack")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r["_measurement"] == "data")
  |> filter(fn: (r) => r["_field"] == "line1" or r["_field"] == "line2" or r["_field"] == "line3" )
  |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)
  |> yield(name: "last")

อธิบายในส่วนของ code คือ จะเป็นการดึงค่ามาจาก bucket ที่ชื่อว่า flowstack จากนั้นทำการกำหนดช่วงเวลาที่ต้องการโดยใช้ range แล้วทำการ filter ข้อมูลแล้วนำมาแสดงผลใน grafana

จากนั้นทำการกดที่ปุ่ม "save"

_images/grafana6.png

จะมีหน้าต่างขึ้นมาให้ทำการกด "save" อีกหนึ่งรอบ

_images/grafana7.png

แล้วทำการกดปุ่ม "apply" จะได้ dashboard ขึ้นมาดังรูป

_images/grafana8.png

ถ้าต้องการที่จะเพิ่มหน้า dashboard ให้กดที่ปุ่ม "Add"

_images/grafana9.png

แล้วทำการเลือก "Visualization"

_images/grafana10.png