BBxPING Gen2
第二版已经更新,请移步此帖查看最新样式和简介
面板功能
BBxPing 基于 Grafana,Dashboard ID 为 22500, 通过 Blackbox Exporter 获取数据并由 Prometheus 等时序数据库采集并展示。
主要功能如下:
- 根据选定城市查看延迟情况
- 根据选定网络运营商(ISP)查看该网络的整体延迟情况
- 根据选定 IP 版本(IPv4/IPv6)查看延迟情况
- 根据选定城市查看实时丢包率以及 1小时、12小时 和 24小时 内的整体平均丢包率
- 按列表查看服务器到全球各城市的平均延迟
- 查看服务器到 Anycast 服务的延迟情况
- 在地图上查看到选定网络运营商下所有 IP 的实时延迟情况
- 在各大洲地图上查看服务器到达所有城市的实时平均延迟,也就是点亮地球
额外特性如下:
- 中国及日本主流 ISP 的专属配色
- 主 Panel 的标题栏信息的动态显示
- 地图可自由放大缩小移动
注:上述功能之实现均以正确安装并配置好 Grafana、Blackbox Exporter 和时序数据库 (Prometheus 或 VictoriaMetrics) 为前提。
图例展示
图片隐藏了测试服务商信息,并展示数种网络情况中面板各 Panel 的显示效果。
| ◾ BBxPing |
|---|
![]() |
![]() |
安装 & 使用方式
见二楼
更新方法
重新导入 22500
导入的时候可以重命名或者覆盖
后续计划
Node Information 和 BBxPing 的设计上花的时间远远超出了我的预期,而且我自己的需求已经满足,所以除了先前提及的中文版面板(我翻译好后会在原帖加上中文版 ID,并更新帖子标题),就不打算做新的面板了。这两个面板除非有重大的 bug,以及有快速的解决方案时,我都不会去主动大幅度更新功能和设计了。目前用着感觉不错的朋友可以不用追新:)
当然过段时间如果我有新想法,可能会先做一些简单的面板
BBxPing Raw
BBxPing Raw 的 ID 是 22502,样式如同传统的大杂烩面板,基于 Blackbox Exporter 实现,不包含任何◾️ BBxPing 的特性。其中使用了跟◾️ BBxPing 一样的 Label 系统(二楼会提及),是一个不错的 Grafana 学习素材,也可以满足一些传统需求。
鸣谢
- 绿绿 @midori 全程的建议、部分资料提供和测试(文末附带她超夸张的地图点亮数)
新加坡鸡王@luca 的测试和他极力要求下出现的 BBxPing Raw- 小一佬 @xream 的传播与另一个实现方法(下面会提及 VictoriaMetrics vmagent 代替 Prometheus 的教学链接,据说比 Prometheus 轻量很多,以及原理跟哪吒的主动上传一样)
- Surge Pro 群友以及各位的留言鼓励和支持
地图示例




安装方式
1️⃣ Grafana & Prometheus
Node Information 发布页已提及,故不赘述。
2️⃣ Blackbox Exporter
可以参考以下两种方式:
官方 Docker
@midori 制作的二进制安装脚本
bash <(curl -sSLf "https://raw.githubusercontent.com/midori01/common-scripts/main/blackbox-exporter/install.sh")⭐️ Label 标签系统介绍
必填 - 不可自定义
ip: 可选 IPv4 / IPv6code: 应填入目标 IP 所在地的城市代码或机场代码 (如 LAX),如果code的机场代码有被收录进 Grafana 的机场列表中,目标 IP 会在地图上展示Anycast 目标 IP 的话,应当在
code填入 ANYCAST (唯一写法)应填 - 可自定义
name: 将在 DESTINATION 折线图 和 PACKET LOSS RATE 柱状图 中展示目标名称city: 将在顶栏选取框中出现相应城市名称选项 (如 Los Angeles),以及其他 Panel 的名称提及isp: 将在顶栏选取框中出现相应运营商名称选项 (如 China Mobile),以及其他 Panel 的名称提及选填 - 不可自定义
domestic: 目前只有 true,填入你本国 IP的 label 里,暂时用来排除本国线路以获得"总体国际线路延迟"结果Prometheus 配置示例
与 Node Exporter 不同,Blackbox Exporter 需要在主控机器为每个分机建立一个 job 来管理配置。目前也有在一个 job 里面管理所有机器的方法,但不一定适用于多测试点的面板,感兴趣可以尝试。本帖将只提及传统的配置方式。
1️⃣ /etc/prometheus/prometheus.yml
有多少台机器就加入多少个 job
技巧
不支持 IPv6 的机器可以在 relabel_configs 下面加上
意味着不再 ping 带有 IPv6 标签的目标
也可以通过这个方式进行更精细的筛选,高度自定义
2️⃣ /etc/prometheus/blackbox/example.yml
本国 IP
VPS IP
Anycast IP
至此,在重启一遍 Prometheus 后将可以正常运行了。
记录一下未发布的 v2 版本的更新(
结果还是大更新了),不然内容太多到时自己都忘记了:主要版块有选定城市(DEST)、网络运营商(ISP)、丢包率(PLR)、全球城市(GLOBAL)、Anycast(ANYCAST) 和地图
布局
全新的设计语言,更适合深色模式
顶栏