公众号关注 「奇妙的 Linux 世界」

设为「星标」,每天带你玩转 Linux !


为什么你需要 Sampler?

作为 IT 从业者或科技爱好者,你是否经历过这些场景?

  • • 服务器突发 CPU 飙高,但传统的 top 命令输出密密麻麻,难以快速定位问题;

  • • 想实时展示系统性能数据给团队,却苦于没有直观的可视化工具;

  • • 需要监控自定义脚本的输出,但开发一套监控系统耗时耗力。

Sampler 这款由 GitHub 开发者 sqshq(Alexander Lukyanchikov)打造的开源工具,完美解决了这些问题。

Sampler 通过将终端命令的输出转化为动态图表,让枯燥的数据变得生动直观,甚至支持自定义告警和交互式操作。无论是个人开发调试,还是团队运维协作,它都能大幅提升效率。

Sampler 官方网站和仓库

  1. 1. https://sampler.dev

  2. 2. https://github.com/sqshq/sampler

核心功能:从命令行到可视化,只需一步

1. 实时监控与数据可视化

Sampler 的核心能力是将常见的命令行工具(如: vmstatiostat)或自定义脚本的输出,实时渲染为折线图、柱状图、仪表盘等可视化组件。例如:

  • • CPU使用率:用折线图展示各核心负载波动;

  • • 内存占用:用进度条显示已用/剩余比例;

  • • 网络流量:用动态仪表盘展示实时吞吐量。

2. 高度可定制化:YAML 配置即用

通过简单的 YAML 配置文件,用户可以定义:

  • • 监控命令:支持 Shell 脚本、Python 脚本等任意可执行命令;

  • • 图表类型:从 7 种可视化组件(如 Sparklines、Gauge)中选择;

  • • 刷新频率:按秒级调整数据更新速度;

  • • 颜色主题:自定义界面配色,适配不同终端环境。

示例配置片段:

runcharts:
  -title:Searchengineresponsetime
    rate-ms:500        # sampling rate, default = 1000
    scale:2            # number of digits after sample decimal point, default = 1
    legend:
      enabled:true     # enables item labels, default = true
      details:false    # enables item statistics: cur/min/max/dlt values, default = true
    items:
      -label:GOOGLE
        sample:curl-o/dev/null-s-w'%{time_total}'https://www.google.com
        color:178      # 8-bit color number, default one is chosen from a pre-defined palette
      -label:YAHOO
        sample:curl-o/dev/null-s-w'%{time_total}'https://search.yahoo.com
      -label:BING
        sample:curl-o/dev/null-s-w'%{time_total}'  https://www.bing.com

3. 多数据源支持:不止于系统指标

除了系统资源,Sampler 还能监控:

  • • 系统级监控:内存占用、磁盘IO、网络流量等基础指标

  • • 日志级监控:实时解析应用访问日志,生成访问热力图

  • • 应用级监控:MySQL QPS、Kafka 消息堆积量等中间件状态

4. 智能告警:异常及时提醒

当数据超过阈值时,Sampler支持:

  • • 声音提醒:内置蜂鸣声或自定义音频;

  • • 颜色高亮:图表自动切换为红色警示;

  • • 触发脚本:执行指定命令(如发送邮件或 Slack 通知)。

5. 跨平台与轻量化:开箱即用

Sampler 基于 Go 语言开发,支持 Linux、macOS、Windows 系统,且无需复杂依赖。

安装仅需 一条命令,二进制文件仅 5 MB左右,资源占用极低。

快速上手:5 分钟部署你的监控面板

1. 安装 Sampler

1.1. Linux/macOS

# 一键下载并安装
$ sudo wget https://github.com/sqshq/sampler/releases/download/v1.1.0/sampler-1.1.0-linux-amd64 -O /usr/local/bin/sampler
$ sudo chmod +x /usr/local/bin/sampler

1.2. Windows

# 通过 Chocolatey安装
$ choco install sampler
# 或者直接下载 exe 文件
https://github.com/sqshq/sampler/releases/download/v1.1.0/sampler-1.1.0-windows-amd64.exe

1.3. Docker

# Create a configuration file
$ vim config.yml

# Build the container image
$ docker build --tag sampler .

# Run a container
$ docker run --interactive --tty --volume $(pwd)/config.yml:/root/config.yml sampler --config /root/config.yml

2.编写配置文件

新建 config.yml 文件,定义监控项。以下示例监控 CPU、内存和网络:

runcharts:
  -title:CPUUtilization
    command:"top -bn1 | grep '%Cpu' | awk '{print 100 - $8}'"
    interval:1s
    visualizer:line
    scale:0-100

-title:MemoryUsage
    command:"free | grep Mem | awk '{print $3/$2 * 100}'"
    interval:2s
    visualizer:gauge
    scale:0-100

-title:NetworkTraffic(KB/s)
    command:"ifstat -i eth0 -b -n 1 1 | tail -1 | awk '{print $1}'"
    interval:1s
    visualizer: bar

3.启动监控

$ sampler -c config.yml

进阶技巧:释放 Sampler 的隐藏潜力

1.场景1:开发调试中的性能分析

监控 Java 应用的 GC 频率:

runcharts:
  - title: Java GC Count
    command: "jstat -gc <PID> | awk '{print $13}'"
    interval: 5s
    visualizer: line

2.场景2:日志关键词监控

统计 Nginx 日志中 500 错误的次数:

texts:
  - title: 500 Errors
    command: "tail -n 100 /var/log/nginx/access.log | grep ' 500 ' | wc -l"
    interval: 10s
    color: red

3.场景3:交互式 Shell 集成

仅与数据库建立一次连接,然后在交互式 shell 会话中执行轮询。

textboxes:
  -title:MongoDBpolling
    rate-ms:500
    init:mongo--quiet--host=localhosttest# executes only once to start the interactive session
    sample:Date.now();                       # executes with a required rate, in scope of the interactive session
    transform:echoresult=$sample          # executes in scope of local session, $sample variable is available for transformation

为什么 Sampler 值得你选择?

  • • 对比传统工具:相比 Zabbix、Prometheus 等重量级方案,Sampler 无需搭建服务端,适合轻量化场景;

  • • 对比同类工具:如 Netdata 更侧重系统指标,而 Sampler支持任意自定义命令,灵活性更高;

  • • 学习成本低:YAML 配置语法简单,30 分钟即可掌握核心功能。

结语

Sampler 用极简的设计理念,将命令行与可视化完美结合。无论是个人开发者快速排查问题,还是运维团队展示实时数据,它都能成为你的「瑞士军刀」。

立即访问 GitHub仓库下载体验,或参考官方文档探索更多高级功能!



🚀 最近,我们建立了一个技术交流微信群。目前群里已加入了不少行业内的大神,有兴趣的同学可以加入和我们一起交流技术,在 「奇妙的 Linux 世界」 公众号直接回复 「加群」 邀请你入群。

🌟『极客视界』科技达人必备综合资讯指南,等你来探索!访问网址 https://bestgeek.org 即可打开新世界。

📕 关注『奇妙的 Linux 世界』公众号,带你开启有趣新生活!更多好用好玩的软件资源,可访问 https://666666.dev 免费获取。

你可能还喜欢

点击下方图片即可阅读

『极客视界』一站式科技达人综合资讯指南和神秘宝箱,等你来开启!


点击上方图片,『美团|饿了么』大额外卖红包天天免费领

更多有趣的互联网新鲜事,关注「奇妙的互联网」视频号全了解!

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐