0

[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. image.png 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. image.png 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. image.png Thêm một vài lần nữa thì nó ra như thế này image.png 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 image.png

2. Phân tích một số thứ

Variable

image.png Mớ trên này chính là Variable image.png 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. image.png Đặt thẳng trực tiếp vào thì nó sẽ ra đúng như giá trị mong muốn image.png Việc tiếp theo là cho phép sử dụng variable theo thời gian image.png Đổ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 image.png

Còn đây là $__range image.png

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 image.png Thay đổi trên label thì data cũng sẽ thay đổi theo.

Thành công

image.png image.png image.png

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

image.png 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 image.png 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. image.png Giờ thì dùng nó vào thôi image.png 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 image.png 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ả

image.png 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

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí