mirror of
https://github.com/openwrt/packages.git
synced 2025-12-26 11:16:31 +04:00
prometheus-node-exporter-lua: remove duplicated nat samples
Merge duplicate src/dest samples by suming their value (bytes count) Fixes #24166 Signed-off-by: Antoine C <hi@acolombier.dev> [bump version number] Signed-off-by: Etienne Champetier <champetier.etienne@gmail.com>
This commit is contained in:
committed by
Etienne Champetier
parent
a1b1bd87bf
commit
cd8f67298c
@@ -4,7 +4,7 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=prometheus-node-exporter-lua
|
||||
PKG_VERSION:=2024.06.03
|
||||
PKG_VERSION:=2024.06.15
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_MAINTAINER:=Etienne CHAMPETIER <champetier.etienne@gmail.com>
|
||||
|
||||
@@ -1,7 +1,20 @@
|
||||
local function scrape()
|
||||
-- documetation about nf_conntrack:
|
||||
-- https://www.frozentux.net/iptables-tutorial/chunkyhtml/x1309.html
|
||||
nat_metric = metric("node_nat_traffic", "gauge" )
|
||||
|
||||
-- two dimesional table to sum bytes for the pair (src/dest)
|
||||
local nat = {}
|
||||
-- default constructor to init unknow pairs
|
||||
setmetatable(nat, {
|
||||
__index = function (t, addr)
|
||||
t[addr] = {}
|
||||
setmetatable(t[addr], {
|
||||
__index = function () return 0 end
|
||||
})
|
||||
return t[addr]
|
||||
end
|
||||
})
|
||||
|
||||
for e in io.lines("/proc/net/nf_conntrack") do
|
||||
-- output(string.format("%s\n",e ))
|
||||
local fields = space_split(e)
|
||||
@@ -22,9 +35,16 @@ local function scrape()
|
||||
-- local src, dest, bytes = string.match(natstat[i], "src=([^ ]+) dst=([^ ]+) .- bytes=([^ ]+)");
|
||||
-- local src, dest, bytes = string.match(natstat[i], "src=([^ ]+) dst=([^ ]+) sport=[^ ]+ dport=[^ ]+ packets=[^ ]+ bytes=([^ ]+)")
|
||||
|
||||
local labels = { src = src, dest = dest }
|
||||
-- output(string.format("src=|%s| dest=|%s| bytes=|%s|", src, dest, bytes ))
|
||||
nat_metric(labels, bytes )
|
||||
nat[src][dest] = nat[src][dest] + bytes
|
||||
end
|
||||
|
||||
nat_metric = metric("node_nat_traffic", "gauge" )
|
||||
for src, values in next, nat do
|
||||
for dest, bytes in next, values do
|
||||
local labels = { src = src, dest = dest }
|
||||
nat_metric(labels, bytes )
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user