在日常技術(shù)工作中,命令行界面(CLI)是與計(jì)算機(jī)交流的關(guān)鍵工具,因其高效和靈活而受到歡迎。然而,面對(duì)復(fù)雜指令或大量信息時(shí),傳統(tǒng)的文本輸出可能難以快速理解。使用Sampler
這類工具可以將命令行結(jié)果以更直觀、清晰的方式展示,使工作更加輕松高效。
什么是Sampler
Sampler 是一個(gè)開(kāi)源的命令行工具,用于將終端命令的輸出可視化。它能夠?qū)⒊R?jiàn)的終端命令(如top
、ps
、df
、iostat
等)的輸出轉(zhuǎn)化為易于理解的圖表、表格、條形圖等視圖。Sampler
可以實(shí)時(shí)跟蹤系統(tǒng)狀態(tài)或監(jiān)控日志文件,將復(fù)雜的數(shù)據(jù)以圖形化方式展示,幫助用戶更快地識(shí)別潛在問(wèn)題。
Sampler的功能亮點(diǎn)
命令輸出可視化
Sampler
通過(guò)將命令的文本輸出轉(zhuǎn)換為圖形化界面,使得復(fù)雜的數(shù)據(jù)更加易于解讀。比如,我們可以將top
命令的CPU使用率、內(nèi)存占用等指標(biāo),轉(zhuǎn)化為實(shí)時(shí)更新的圖表,快速掌握系統(tǒng)的性能狀態(tài)。
多種數(shù)據(jù)展示方式
Sampler
提供了多種視圖模式,包括:
- 表格:以表格的形式展示命令的輸出,清晰且結(jié)構(gòu)化。
- 圖形:通過(guò)餅圖、條形圖、折線圖等方式展示數(shù)值數(shù)據(jù),使趨勢(shì)和分布一目了然。
- 實(shí)時(shí)更新:Sampler支持實(shí)時(shí)更新,適合用來(lái)進(jìn)行系統(tǒng)監(jiān)控和故障診斷。
高度定制化
用戶可以根據(jù)需要,靈活配置Sampler
以適應(yīng)不同的使用場(chǎng)景。通過(guò)簡(jiǎn)單的配置文件,用戶可以自定義展示方式、更新頻率、閾值警告等設(shè)置,進(jìn)一步增強(qiáng)工具的可用性。
安裝
macOS
brew install sampler
或者
sudo curl -Lo /usr/local/bin/sampler https://github.com/sqshq/sampler/releases/download/v1.1.0/sampler-1.1.0-darwin-amd64
sudo chmod +x /usr/local/bin/sampler
Linux
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
libasound2-dev
需安裝系統(tǒng)庫(kù),Sampler
才能播放觸發(fā)音。通常情況下,該庫(kù)已存在,如沒(méi)有,則可使用您喜歡的軟件包管理器進(jìn)行安裝。例如:
apt install libasound2-dev
Windows
choco install sampler
或者
https://github.com/sqshq/sampler/releases/download/v1.1.0/sampler-1.1.0-windows-amd64.exe
基本用法
通過(guò)輕松編輯YAML配置文件,你就能根據(jù)自己的需要定制各種監(jiān)控功能啦,無(wú)論是數(shù)據(jù)庫(kù)的變化還是MQ消息隊(duì)列的狀態(tài),所有信息都能一手掌握,方便又快捷!以下是一些使用案例
運(yùn)行圖表
檢查服務(wù)器訪問(wèn)谷歌、雅虎以及Bing網(wǎng)站的速度。創(chuàng)建一個(gè)配置文件名為engine.yaml
,內(nèi)容如下:
runcharts:
- title: Search engine response time
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
然后,通過(guò)執(zhí)行如下命令生成圖表
sampler -c engine.yaml
執(zhí)行成功上述命令后,終端會(huì)展示如下圖的結(jié)果:
迷你圖
用圖表展示CPU和內(nèi)存使用情況。同樣編寫一個(gè)配置文件,內(nèi)容如下:
sparklines:
- title: CPU usage
rate-ms: 200
scale: 0
sample: ps -A -o %cpu | awk '{s+=$1} END {print s}'
- title: Free memory pages
rate-ms: 200
scale: 0
sample: free | grep Mem | awk '{print $3/$2 * 100.0}'
sampler -c cpu_memory.yaml
當(dāng)您成功執(zhí)行上述命令后,終端將會(huì)顯示如下圖所示的結(jié)果。
文本框
顯示本地天氣情況和各容器資源使用情況。編寫配置文件如下:
textboxes:
- title: Local weather
rate-ms: 10000 # sampling rate, default = 1000
sample: curl wttr.in?0ATQF
border: false # border around the item, default = true
color: 178 # 8-bit color number, default is white
- title: Docker containers stats
rate-ms: 500
sample: docker stats --no-stream --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}\t{{.PIDs}}"
sampler -c weather_text.yaml
當(dāng)您成功執(zhí)行上述命令后,終端將會(huì)顯示如下圖所示的結(jié)果。
總結(jié)
Sampler是一款將傳統(tǒng)命令行輸出數(shù)據(jù)可視化的神器,不僅適用于系統(tǒng)監(jiān)控,還能提升工作效率,幫助開(kāi)發(fā)者、運(yùn)維人員快速理解和分析數(shù)據(jù)。它的高定制性和跨平臺(tái)支持,使其在不同的工作環(huán)境中都能大顯身手。如果你在日常工作中頻繁使用命令行,不妨試試Sampler
,讓你的工作更加輕松愉快!