TL;DR
- Sampler (sqshq/sampler) là CLI Go biến shell command thành dashboard terminal real-time, cấu hình bằng YAML.
- 14,540 stars, 663 forks, GPL-3.0. Tag release cuối là
v1.1.0(2019), commit cuối trên master tháng 2/2024 — ổn định chứ không chết. - 6 component:
runchart,sparkline,barchart,gauge,textbox,asciibox. Hỗ trợ trigger với alert âm thanh, visual, hoặc chạy shell command (gửi Slack, Telegram...). - Không phải đối thủ của Grafana — đây là phương án "cài 1 binary, viết 30 dòng YAML, có dashboard ngay" cho dev và SRE khi không muốn dựng Prometheus + Grafana.
- Đang được resharing trên X bởi @tom_doerr — đáng để bookmark.

Có gì đáng nói
Đây không phải tool mới — Sampler ra đời từ tháng 1/2019. Cái "mới" là nó tiếp tục được rediscovered: một bài đăng X gần đây của tom_doerr kéo lại sự chú ý cho cộng đồng dev. Lý do nó vẫn được share lại sau 7 năm: không có tool nào khác đơn giản đến mức đó. Bạn viết một file YAML, gọi sampler --config dashboard.yml, là có dashboard.
Một ví dụ tối thiểu:
runcharts:
- title: Search engine response time
items:
- label: GOOGLE
sample: curl -o /dev/null -s -w "%{time_total}" https://google.com
- label: BING
sample: curl -o /dev/null -s -w "%{time_total}" https://bing.com
rate-ms: 500Tại sao nó matter
Khi bạn SSH vào một con VPS lúc 2h sáng vì alert nổ, bạn cần thông tin ngay: CPU, lag Kafka, error rate, queue depth. Bật Grafana mất 5 phút và đòi hỏi cả một stack đã set up sẵn. top chỉ cho CPU/RAM. watch thì không vẽ chart. Sampler lấp đúng cái khoảng giữa đó: chart real-time cho bất cứ thứ gì có thể echo ra stdout, không server, không database, không browser.
Ngoài incident, nó cũng tốt cho demo (nhìn pro hơn nhiều so với htop screenshot), cho dashboard cá nhân chạy ở góc tmux, và cho monitoring tạm cho project nhỏ chưa đáng dựng Prom + Grafana.
Technical facts
| Property | Value |
|---|---|
| Ngôn ngữ | Go (binary tĩnh) |
| License | GPL-3.0 |
| Stars / Forks | 14,540 / 663 |
| Created | 25/01/2019 |
| Latest tag | v1.1.0 — 24/12/2019 |
| Last commit master | 22/02/2024 |
| Dependency runtime | chỉ libasound2-dev trên Linux nếu cần sound alert |
| Cài đặt | brew install sampler · choco install sampler · yay -S sampler · dnf install golang-github-sqshq-sampler |
Sáu component:
- Runchart — multi-series time-series, mỗi line là một shell command.
- Sparkline — single-value compact, lý tưởng cho CPU/RAM/network.
- Barchart — so sánh nhiều giá trị side-by-side.
- Gauge — min/cur/max, hiển thị progress hoặc tỷ lệ.
- Textbox — bê thẳng stdout vào panel (giống
tail -fcó khung). - Asciibox — render text khổng lồ kiểu figlet (đồng hồ, status header).

Triggers chạy điều kiện shell trên giá trị mới nhất, có thể fire: terminal bell, sound file, visual highlight, hoặc chạy bất kỳ shell command nào — nghĩa là gửi alert Slack/Telegram/PagerDuty đều OK, chỉ cần một curl.
So sánh nhanh với các option khác
| Tool | Config | Phạm vi | Hợp khi |
|---|---|---|---|
| Sampler | YAML, declarative | Bất kỳ shell command nào | Dashboard ad-hoc, demo, dev box |
| btop / htop | không cần | System metrics | Xem CPU/RAM ngay tức thì |
| ctop / lazydocker | không cần | Docker | Container ops |
| WTF (wtfutil) | YAML | Widget có sẵn (Jira, GH...) | Personal info dashboard |
| Grafana + Prometheus | UI + JSON | Full observability | Production scale |
Tác giả Sampler nói thẳng: không phải replacement cho Grafana. Đây là tool dành cho lúc Grafana là overkill.
Use cases thực tế
- Kafka consumer lag — runchart từ
kafka-consumer-groups.sh --describe, một line mỗi consumer group. - Docker stats — sparkline CPU% và mem% cho từng container, parse từ
docker stats --no-stream. - DB metrics — chạy MySQL/Postgres/Mongo trong PTY mode (
initmở session,transformtrích số), runchart QPS hoặc lock wait. - JMX — lấy heap / GC pause qua
jmxterm, không cần Prometheus exporter. - Ping monitor — runchart latency tới N endpoint, kèm trigger bell khi mất gói.
- Deploy progress — gauge cho rollout status từ
kubectl rollout status, sound khi xong.

Limitations & pricing
- Free, GPL-3.0. Không paid tier.
- Không có persistence — đóng terminal là mất data. Sampler là live view, không phải TSDB.
- Tag release cuối từ 2019; master vẫn nhận commit nhỏ tới 2024 nhưng project ở chế độ maintenance, không phải active development. PR đọng lại nhiều năm là chuyện thường.
- Windows support marked experimental; Linux cần
libasound2-devnếu dùng sound trigger. - YAML phình to khi dashboard phức tạp, không có GUI editor.
- Trigger chạy shell command với quyền của user gọi Sampler — cẩn thận với content alert.
What's next
Không có roadmap công khai. Cộng đồng giữ project sống thông qua các package fork (Fedora, Arch, MacPorts) và issue tracker tự giải quyết. Với một tool đã làm xong việc của nó từ 2019, đây không phải là tệ — bạn có một binary stable, một file YAML, và mọi thứ vẫn chạy y như ngày đầu.
Nếu bạn cần dashboard terminal nhanh, không server, không subscription, không Helm chart — clone repo, đọc 30 dòng README, là xong.
Nguồn: github.com/sqshq/sampler, dev.to — bài giới thiệu của tác giả, tom_doerr trên X.
