[Homelab] #18 Custom Dashboard cho Grafana
Lúc setup Grafana, mình chủ yếu làm một cái Dashboard khá căn bản lấy từ template, chủ yếu monitor cho các VPS Debian mà mình chạy. Trông nó sẽ như thế này.
Chủ yếu mình nhìn vào đây, nhưng từ khi mình query Prometheus lên trực tiếp Dashboard của Gethomepage thì mình cũng kiểu, không quan tâm đến Grafana nữa.
Cần gì khi các mục mình cần nó đã nằm ở đây như thế này.
Nhưng mà có lẽ là nên Setup cho Grafana, vì dữ liệu sau này vốn sẽ nằm bên Grafana nhiều hơn, và có thể xem trong quá khứ nữa, có thể sử dụng để phân tích lượng Network Traffic, mấu chốt nằm ở đây.
Vậy nên hôm này phủi bụi lại Grafana của bản thân nào.
1.Overview cơ bản với ChatGPT
Thì với vài câu prompt hỏi rồi tìm hiểu sơ bộ, thì có thể import thẳng JSON vào, thế nên cho GPT làm hộ luôn, và kết quả như thế này. Không đạt như Expected lắm.
Thêm một vài lần nữa thì nó ra như thế này
Tuy nhiên cách này lại không thoả mãn UseCase của mình. Mình muốn có thể Monitor trong nhiều khung giờ, còn cái này thì nó lại sử dụng phong cách Query như trên Dashboard của mình

2. Phân tích một số thứ
Variable
Mớ trên này chính là Variable
Cách dùng của nó trong Query
100 * (1 - avg(rate(node_cpu_seconds_total{mode="idle", instance="$node"}[$__rate_interval])))
Mấu chốt nằm ở [$__rate_interval] thứ này sẽ cho phép data được lọc theo thời gian vào cái thanh biên thời gian.
Mục tiêu lần này
Sao cho việc query ở Grafana nhìn giống với Prometheus.
Đặt thẳng trực tiếp vào thì nó sẽ ra đúng như giá trị mong muốn
Việc tiếp theo là cho phép sử dụng variable theo thời gian
Đổi sang cả 2 loại Variable, nhưng vẫn không hoạt động
Vấn đề ở đâu?
Hiểu về $__rate_interval vs $__range
Đây là $__rate_interval

Còn đây là $__range

Nó là GB vì chưa có chuyển đổi đơn vị, chủ yếu debug. Giờ thì cơ bản hai cái cũng hiểu sơ sơ rồi.
$__range chính là của cái label
Thay đổi trên label thì data cũng sẽ thay đổi theo.
Thành công

Nhưng mà có vẻ dùng cái biểu đồ này nhìn không hợp lắm, nhưng tạm để đó đã. Đến vấn đề tiếp theo
Mục tiêu 2
Có thể chuyển đổi win-4 thành bất kỳ cái nào khác
Ý tưởng ban đầu
Copy toàn bộ cái Variable này sang bên kia
Nhưng mà có vẻ không hoạt động vì nó chỉ áp dụng với VPS.
Cần một cái biến có thể lấy được cả các Windows Exporter => up chính là câu trả lời.
Giờ thì dùng nó vào thôi
Khá tuyệt
Thôi về rồi làm tiếp giờ đi đón người nhà đã.
~4 tiếng sau
Tiếp tục nào anh em
Mục tiêu 3
Clone mớ này ra thành 22 cái giống như vậy, nhưng khác variable
Có hai cách: Cách GPT nó chỉ là sử dụng JSON một mớ lồ lột, mà thấy cách đó ngu học kinh khủng. Đã là một nền tảng chuyên dụng cho các DevOps, SysAdmin thì không lẽ lại không có cái tính năng Clone
Thế là mày mò một hồi cũng có cách. Tên tính năng là repeat rows and panels kèm với video phút 6:28, đề cập đến việc Multi Value, chỉ cần bật lên.
Tự dưng làm nhớ đến đợt Public PVE Solution cũng rất là simple stupid.
Bởi vậy mới nói GPT nó ngu. Bám theo nó miết thì chỉ có bán nhà =))
Thành quả
Một dashboard siêu dài kèm với một số biến thời gian có thể điều chỉnh. Thật tuyệt vời!!!
All rights reserved