Homelab #18 Custom Dashboard cho Grafana
HOMELAB

Homelab #18 Custom Dashboard cho Grafana

Thất Nghiệp Thất Nghiệp
Oct 23, 2025 5 min read 0 views
Back to Blog

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.
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...
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.
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.
1.Overview cơ bản với ChatGPT - 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...
Thêm một vài lần nữa thì nó ra như thế này
1.Overview cơ bản với ChatGPT - 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...
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
1.Overview cơ bản với ChatGPT - 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...

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

Variable

Variable - 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...
Mớ trên này chính là Variable
Variable - 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...
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.
Mục tiêu lần này - 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{...
Đặt thẳng trực tiếp vào thì nó sẽ ra đúng như giá trị mong muốn
Mục tiêu lần này - 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{...
Việc tiếp theo là cho phép sử dụng variable theo thời gian
Mục tiêu lần này - 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{...
Đổ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
Vấn đề ở đâu? - Hiểu về $__rate_interval vs $__range

Còn đây là $__range
Vấn đề ở đâu? - Đây là $__rate_interval

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
Vấn đề ở đâu? - Còn đây là $__range
Thay đổi trên label thì data cũng sẽ thay đổi theo.

Thành công

Thành công - Nó là GB vì chưa có chuyển đổi đơn vị, chủ yếu debug
Thành công - Nó là GB vì chưa có chuyển đổi đơn vị, chủ yếu debug
Thành công - Nó là GB vì chưa có chuyển đổi đơn vị, chủ yếu debug

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

Mục tiêu 2 - 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 để đó đã
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
Ý tưởng ban đầu - Có thể chuyển đổi win-4 thành bất kỳ cái nào khác
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.
Ý tưởng ban đầu - Có thể chuyển đổi win-4 thành bất kỳ cái nào khác
Giờ thì dùng nó vào thôi
Ý tưởng ban đầu - Có thể chuyển đổi win-4 thành bất kỳ cái nào khác
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
Mục tiêu 3 - 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ó 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ả

Thành quả - 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 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!!!

Share this article

Thất Nghiệp

Written by Thất Nghiệp

A developer sharing thoughts on clean code, creative freedom, and the pursuit of the perfect dev environment. Building digital sanctuaries one component at a time.

Comments

Join the conversation

Leave a comment

Won't be published

You might also like