📊 NodeTrafficCalc
📝 项目简介
NodeTrafficCalc 是一个专为解决 Grafana Prometheus node_exporter 中不同实例有不同月流量重置日的问题而设计的工具。在原监控系统中,所有实例通常共享同一个流量统计周期,这无法满足不同实例服务商有不同计费周期的实际需求。本项目通过自定义计算和指标推送,使每个实例能够根据其特定的月重置日来计算和展示流量数据。
✨ 主要功能
- 🔧 灵活配置:通过 YAML 配置文件进行设置,支持热重载
- 💻 仅需在主控端部署:无需在每个被监控节点上安装额外组件
- 📆 自定义重置日期:为每个实例单独配置月流量重置日
- 📊 多指标支持:提供上传、下载和总流量三种指标
🚀 快速启动
1. 克隆仓库
git clone https://github.com/Heavrnl/NodeTrafficCalc
cd NodeTrafficCalc
2. 配置实例
编辑配置文件,在 instances 部分添加你的实例和对应的重置日,并配置你的Prometheus 服务器的 URL:
vi NodeTrafficCalc/config.yaml
3. 启动服务
docker-compose up -d
4. 配置 prometheus.yml
在scrape_configs中添加
- job_name: 'pushgateway'
scrape_interval: 10s
honor_labels: true
static_configs:
- targets: ['localhost:9091']
重启 prometheus
在 Grafana 中使用
⬆️ 上传流量:
instance_monthly_transmit_bytes_increase{job="monthly_traffic_calculator", instance=~"$node"}
⬇️ 下载流量:
instance_monthly_receive_bytes_increase{job="monthly_traffic_calculator", instance=~"$node"}
📊 总流量:
instance_monthly_total_bytes_increase{job="monthly_traffic_calculator", instance=~"$node"}
其他
instance_info{instance=~"$node"}
变量
在面板上的Settings里配置以下变量,参考图里的设置,你有多少个自定义标签,就添加多少个变量
reset_day
label_values(instance_info{instance="$node"},reset_day)
traffic_direction
label_values(instance_info{instance="$node"},traffic_direction)
bandwidth_limit
label_values(instance_info{instance="$node"},bandwidth_limit)
monthly_limit
label_values(instance_info{instance="$node"},monthly_limit)
变量配置示例

示例:在Title里使用
当前月流量统计(每月 $reset_day 日重置)
Text 面板 html
添加可视化,选择Text面板
https://github.com/Heavrnl/NodeTrafficCalc/tree/main?tab=readme-ov-file#text-面板-html
示例图




不错不错
哇哦
点赞收藏