
jraviles/prometheus_speedtestPrometheus Speedtest是一个网络性能监控工具,作为Prometheus导出器,它能够执行Speedtest.net的网络测试,并将测试结果(包括下载速度、上传速度、延迟等)以Prometheus指标格式暴露,便于Prometheus采集、存储和分析,适用于持续监控网络连接质量。
通过Docker Hub获取镜像并运行:
shelldocker run --rm -d --name prometheus_speedtest -p 9516:9516/tcp jraviles/prometheus_speedtest:latest
支持通过命令行参数自定义服务配置:
| 参数 | 描述 | 默认值 | 类型 |
|---|---|---|---|
| --address | 监听地址 | 0.0.0.0 | 字符串 |
| --port | 监听端口 | 9516 | 整数 |
| --version | 显示版本信息 | false | 布尔值 |
示例(自定义端口):
shelldocker run --rm -d --name prometheus_speedtest -p 9000:9000/tcp jraviles/prometheus_speedtest:latest --port 9000
在Prometheus配置文件(prometheus.yml)中添加如下配置,实现定期采集网络测试指标:
yamlglobal: scrape_timeout: 2m # 网络测试可能需要较长时间,建议设置为2分钟 scrape_configs: - job_name: 'speedtest' metrics_path: /probe static_configs: - targets: - localhost:9516 # Prometheus Speedtest服务地址
若Prometheus也通过Docker运行,需确保两者在同一网络中:
创建Docker网络:
shelldocker network create prometheus_network
启动Prometheus Speedtest并加入网络:
shelldocker run --rm -d --net prometheus_network --name prometheus_speedtest -p 9516:9516/tcp jraviles/prometheus_speedtest:latest
启动Prometheus并加入网络(挂载配置文件):
shelldocker run --rm -d --net prometheus_network -p 9090:9090/tcp -v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml --name prometheus prom/prometheus:latest
暴露的Prometheus指标如下:
| 指标名称 | 描述 |
|---|---|
| download_speed_bps | 下载速度(bit/s) |
| upload_speed_bps | 上传速度(bit/s) |
| ping_ms | 延迟(ms) |
| bytes_received | 测试期间接收的字节数 |
| bytes_sent | 测试期间发送的字节数 |
服务启动后,可通过cURL或浏览器访问指标端点:
shellcurl localhost:9516/probe
示例输出:
# HELP download_speed_bps Download speed (bit/s) # TYPE download_speed_bps gauge download_speed_bps 88016694.95692767 # HELP upload_speed_bps Upload speed (bit/s) # TYPE upload_speed_bps gauge upload_speed_bps 3415613.277989314 # HELP ping_ms Latency (ms) # TYPE ping_ms gauge ping_ms 20.928 # HELP bytes_received Bytes received during test # TYPE bytes_received gauge bytes_received ***.0 # HELP bytes_sent Bytes sent during test # TYPE bytes_sent gauge bytes_sent 5242880.0
默认监听端口为9516,该端口是Prometheus官方分配的默认端口(参考Prometheus默认端口分配指南)。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务