vlambda博客
学习文章列表

Sampler:可视化数据库监控警报工具

今天给大家介绍一个用于shell命令执行,可视化和警报的工具:Sampler。Sampler绝不是全面监控系统的替代品,但是作为一个开发工具,足够了。非常简单方便,易于配置。


先看看效果图:


项目热度

标星: 8.1K(功能还是很强大,很实用)

拷贝: 389

贡献人数: 9

最后更新: 2020-01-12

代码提交活跃度:

Sampler:可视化数据库监控警报工具

推荐指数:【3】颗星

开发语言

开发语言:Go

安装教程

苹果系统

brew cask install samplerhuhu

或者

sudo curl -Lo /usr/local/bin/sampler https://github.com/sqshq/sampler/releases/download/v1.0.3/sampler-1.0.3-darwin-amd64
sudo chmod +x /usr/local/bin/sampler

Liunx

sudo wget https://github.com/sqshq/sampler/releases/download/v1.0.3/sampler-1.0.3-linux-amd64 -O /usr/local/bin/sampler
sudo chmod +x /usr/local/bin/sampler

Window

choco install sampler

或者

https://github.com/sqshq/sampler/releases/download/v1.1.0/sampler-1.1.0-windows-amd64.exe


组件

以下是每种组件类型的配置示例列表和采样脚本,脚本兼容macOS。

运行图表组件

Sampler:可视化数据库监控警报工具

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

CPU与内存组件

Sampler:可视化数据库监控警报工具

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: memory_pressure | grep 'Pages free' | awk '{print $3}'


网络监控组件

Sampler:可视化数据库监控警报工具

barcharts:
  - title: Local network activity
    rate-ms: 500        # sampling rate, default = 1000
    scale: 0            # number of digits after sample decimal point, default = 1
    items:
      - label: UDP bytes in
        sample: nettop -J bytes_in -l 1 -m udp | awk '{sum += $4} END {print sum}'
      - label: UDP bytes out
        sample: nettop -J bytes_out -l 1 -m udp | awk '{sum += $4} END {print sum}'
      - label: TCP bytes in
        sample: nettop -J bytes_in -l 1 -m tcp | awk '{sum += $4} END {print sum}'
      - label: TCP bytes out
        sample: nettop -J bytes_out -l 1 -m tcp | awk '{sum += $4} END {print sum}'


时间组件

gauges:
  - title: Minute progress
    rate-ms: 500        # sampling rate, default = 1000
    scale: 2            # number of digits after sample decimal point, default = 1
    percent-only: false # toggle display of the current value, default = false
    color: 178          # 8-bit color number, default one is chosen from a pre-defined palette
    cur:      sample: date +%S  # sample script for current value
    max:      sample: echo 60   # sample script for max value
    min:      sample: echo 0    # sample script for min value
  - title: Year progress
    cur:      sample: date +%j
    max:      sample: echo 365
    min:      sample: echo 0


当地天气组件

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}}"


项目地址

https://github.com/sqshq/sampler