NodeTrafficCalc:轻松解决 Grafana/Prometheus 不同实例月流量重置日难题

📊 NodeTrafficCalc

Github: https://github.com/Heavrnl/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

示例图



点赞
  1. Snall说道:

    不错不错

  2. Bene说道:

    哇哦

  3. mosesrowe说道:

    点赞收藏

回复 Snall 取消回复

电子邮件地址不会被公开。必填项已用 * 标注

×
订阅图标按钮