Merge pull request #9754 from champtar/openwrt-18.06
[18.06] prometheus-node-exporter-lua: update to 2019.08.14
This commit is contained in:
commit
51462b3df9
6 changed files with 179 additions and 25 deletions
|
@ -4,8 +4,8 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=prometheus-node-exporter-lua
|
PKG_NAME:=prometheus-node-exporter-lua
|
||||||
PKG_VERSION:=2018.07.23
|
PKG_VERSION:=2019.08.14
|
||||||
PKG_RELEASE:=2
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_MAINTAINER:=Etienne CHAMPETIER <champetier.etienne@gmail.com>
|
PKG_MAINTAINER:=Etienne CHAMPETIER <champetier.etienne@gmail.com>
|
||||||
PKG_LICENSE:=Apache-2.0
|
PKG_LICENSE:=Apache-2.0
|
||||||
|
@ -79,7 +79,13 @@ endef
|
||||||
define Package/prometheus-node-exporter-lua-openwrt
|
define Package/prometheus-node-exporter-lua-openwrt
|
||||||
$(call Package/prometheus-node-exporter-lua/Default)
|
$(call Package/prometheus-node-exporter-lua/Default)
|
||||||
TITLE+= (openwrt collector)
|
TITLE+= (openwrt collector)
|
||||||
DEPENDS:=prometheus-node-exporter-lua
|
DEPENDS:=prometheus-node-exporter-lua +libubus-lua
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/prometheus-node-exporter-lua-ltq-dsl
|
||||||
|
$(call Package/prometheus-node-exporter-lua/Default)
|
||||||
|
TITLE+= (lantiq dsl collector)
|
||||||
|
DEPENDS:=prometheus-node-exporter-lua @(PACKAGE_ltq-adsl-app||PACKAGE_ltq-vdsl-app)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
Build/Compile=
|
Build/Compile=
|
||||||
|
@ -142,6 +148,11 @@ define Package/prometheus-node-exporter-lua-openwrt/install
|
||||||
$(INSTALL_BIN) ./files/usr/lib/lua/prometheus-collectors/openwrt.lua $(1)/usr/lib/lua/prometheus-collectors/
|
$(INSTALL_BIN) ./files/usr/lib/lua/prometheus-collectors/openwrt.lua $(1)/usr/lib/lua/prometheus-collectors/
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
define Package/prometheus-node-exporter-lua-ltq-dsl/install
|
||||||
|
$(INSTALL_DIR) $(1)/usr/lib/lua/prometheus-collectors
|
||||||
|
$(INSTALL_BIN) ./files/usr/lib/lua/prometheus-collectors/ltq-dsl.lua $(1)/usr/lib/lua/prometheus-collectors/
|
||||||
|
endef
|
||||||
|
|
||||||
$(eval $(call BuildPackage,prometheus-node-exporter-lua))
|
$(eval $(call BuildPackage,prometheus-node-exporter-lua))
|
||||||
$(eval $(call BuildPackage,prometheus-node-exporter-lua-nat_traffic))
|
$(eval $(call BuildPackage,prometheus-node-exporter-lua-nat_traffic))
|
||||||
$(eval $(call BuildPackage,prometheus-node-exporter-lua-netstat))
|
$(eval $(call BuildPackage,prometheus-node-exporter-lua-netstat))
|
||||||
|
@ -151,3 +162,4 @@ $(eval $(call BuildPackage,prometheus-node-exporter-lua-bmx6))
|
||||||
$(eval $(call BuildPackage,prometheus-node-exporter-lua-bmx7))
|
$(eval $(call BuildPackage,prometheus-node-exporter-lua-bmx7))
|
||||||
$(eval $(call BuildPackage,prometheus-node-exporter-lua-textfile))
|
$(eval $(call BuildPackage,prometheus-node-exporter-lua-textfile))
|
||||||
$(eval $(call BuildPackage,prometheus-node-exporter-lua-openwrt))
|
$(eval $(call BuildPackage,prometheus-node-exporter-lua-openwrt))
|
||||||
|
$(eval $(call BuildPackage,prometheus-node-exporter-lua-ltq-dsl))
|
||||||
|
|
|
@ -1,8 +1,12 @@
|
||||||
local function scrape()
|
local function scrape()
|
||||||
metric("node_nf_conntrack_entries", "gauge", nil,
|
local count = get_contents("/proc/sys/net/netfilter/nf_conntrack_count")
|
||||||
string.sub(get_contents("/proc/sys/net/netfilter/nf_conntrack_count"), 1, -2))
|
local max = get_contents("/proc/sys/net/netfilter/nf_conntrack_max")
|
||||||
metric("node_nf_conntrack_entries_limit", "gauge", nil,
|
if count ~= "" then
|
||||||
string.sub(get_contents("/proc/sys/net/netfilter/nf_conntrack_max"), 1, -2))
|
metric("node_nf_conntrack_entries", "gauge", nil, string.sub(count, 1, -2))
|
||||||
|
end
|
||||||
|
if max ~= "" then
|
||||||
|
metric("node_nf_conntrack_entries_limit", "gauge", nil, string.sub(max, 1, -2))
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
return { scrape = scrape }
|
return { scrape = scrape }
|
||||||
|
|
|
@ -0,0 +1,100 @@
|
||||||
|
local function scrape()
|
||||||
|
local fd = io.popen("/etc/init.d/dsl_control lucistat")
|
||||||
|
local dsl_func = loadstring(fd:read("*a"))
|
||||||
|
fd:close()
|
||||||
|
|
||||||
|
if not dsl_func then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local dsl_stat = dsl_func()
|
||||||
|
|
||||||
|
local dsl_line_attenuation = metric("dsl_line_attenuation_db", "gauge")
|
||||||
|
local dsl_signal_attenuation = metric("dsl_signal_attenuation_db", "gauge")
|
||||||
|
local dsl_snr = metric("dsl_signal_to_noise_margin_db", "gauge")
|
||||||
|
local dsl_aggregated_transmit_power = metric("dsl_aggregated_transmit_power_db", "gauge")
|
||||||
|
local dsl_latency = metric("dsl_latency_seconds", "gauge")
|
||||||
|
local dsl_datarate = metric("dsl_datarate", "gauge")
|
||||||
|
local dsl_max_datarate = metric("dsl_max_datarate", "gauge")
|
||||||
|
local dsl_error_seconds_total = metric("dsl_error_seconds_total", "counter")
|
||||||
|
local dsl_errors_total = metric("dsl_errors_total", "counter")
|
||||||
|
|
||||||
|
-- dsl hardware/firmware information
|
||||||
|
metric("dsl_info", "gauge", {
|
||||||
|
atuc_vendor_id = dsl_stat.atuc_vendor_id,
|
||||||
|
atuc_system_vendor_id = dsl_stat.atuc_system_vendor_id,
|
||||||
|
chipset = dsl_stat.chipset,
|
||||||
|
firmware_version = dsl_stat.firmware_version,
|
||||||
|
api_version = dsl_stat.api_version,
|
||||||
|
}, 1)
|
||||||
|
|
||||||
|
-- dsl line settings information
|
||||||
|
metric("dsl_line_info", "gauge", {
|
||||||
|
xtse1 = dsl_stat.xtse1,
|
||||||
|
xtse2 = dsl_stat.xtse2,
|
||||||
|
xtse3 = dsl_stat.xtse3,
|
||||||
|
xtse4 = dsl_stat.xtse4,
|
||||||
|
xtse5 = dsl_stat.xtse5,
|
||||||
|
xtse6 = dsl_stat.xtse6,
|
||||||
|
xtse7 = dsl_stat.xtse7,
|
||||||
|
xtse8 = dsl_stat.xtse8,
|
||||||
|
annex = dsl_stat.annex_s,
|
||||||
|
mode = dsl_stat.line_mode_s,
|
||||||
|
profile = dsl_stat.profile_s,
|
||||||
|
}, 1)
|
||||||
|
|
||||||
|
-- dsl up is 1 if the line is up and running
|
||||||
|
local dsl_up
|
||||||
|
if dsl_stat.line_state == "UP" then
|
||||||
|
dsl_up = 1
|
||||||
|
else
|
||||||
|
dsl_up = 0
|
||||||
|
end
|
||||||
|
|
||||||
|
metric("dsl_up", "gauge", {
|
||||||
|
detail = dsl_stat.line_state_detail,
|
||||||
|
}, dsl_up)
|
||||||
|
|
||||||
|
-- dsl line status data
|
||||||
|
metric("dsl_uptime_seconds", "gauge", {}, dsl_stat.line_uptime)
|
||||||
|
|
||||||
|
-- dsl db measurements
|
||||||
|
dsl_line_attenuation({direction="down"}, dsl_stat.line_attenuation_down)
|
||||||
|
dsl_line_attenuation({direction="up"}, dsl_stat.line_attenuation_up)
|
||||||
|
dsl_signal_attenuation({direction="down"}, dsl_stat.signal_attenuation_down)
|
||||||
|
dsl_signal_attenuation({direction="up"}, dsl_stat.signal_attenuation_up)
|
||||||
|
dsl_snr({direction="down"}, dsl_stat.noise_margin_down)
|
||||||
|
dsl_snr({direction="up"}, dsl_stat.noise_margin_up)
|
||||||
|
dsl_aggregated_transmit_power({direction="down"}, dsl_stat.actatp_down)
|
||||||
|
dsl_aggregated_transmit_power({direction="up"}, dsl_stat.actatp_up)
|
||||||
|
|
||||||
|
-- dsl performance data
|
||||||
|
if dsl_stat.latency_down ~= nil then
|
||||||
|
dsl_latency({direction="down"}, dsl_stat.latency_down / 1000000)
|
||||||
|
dsl_latency({direction="up"}, dsl_stat.latency_up / 1000000)
|
||||||
|
end
|
||||||
|
dsl_datarate({direction="down"}, dsl_stat.data_rate_down)
|
||||||
|
dsl_datarate({direction="up"}, dsl_stat.data_rate_up)
|
||||||
|
dsl_max_datarate({direction="down"}, dsl_stat.max_data_rate_down)
|
||||||
|
dsl_max_datarate({direction="up"}, dsl_stat.max_data_rate_up)
|
||||||
|
|
||||||
|
-- dsl errors
|
||||||
|
dsl_error_seconds_total({err="forward error correction",loc="near"}, dsl_stat.errors_fec_near)
|
||||||
|
dsl_error_seconds_total({err="forward error correction",loc="far"}, dsl_stat.errors_fec_far)
|
||||||
|
dsl_error_seconds_total({err="errored",loc="near"}, dsl_stat.errors_es_near)
|
||||||
|
dsl_error_seconds_total({err="errored",loc="far"}, dsl_stat.errors_es_near)
|
||||||
|
dsl_error_seconds_total({err="severely errored",loc="near"}, dsl_stat.errors_ses_near)
|
||||||
|
dsl_error_seconds_total({err="severely errored",loc="near"}, dsl_stat.errors_ses_near)
|
||||||
|
dsl_error_seconds_total({err="loss of signal",loc="near"}, dsl_stat.errors_loss_near)
|
||||||
|
dsl_error_seconds_total({err="loss of signal",loc="far"}, dsl_stat.errors_loss_far)
|
||||||
|
dsl_error_seconds_total({err="unavailable",loc="near"}, dsl_stat.errors_uas_near)
|
||||||
|
dsl_error_seconds_total({err="unavailable",loc="far"}, dsl_stat.errors_uas_far)
|
||||||
|
dsl_errors_total({err="header error code error",loc="near"}, dsl_stat.errors_hec_near)
|
||||||
|
dsl_errors_total({err="header error code error",loc="far"}, dsl_stat.errors_hec_far)
|
||||||
|
dsl_errors_total({err="non pre-emptive crc error",loc="near"}, dsl_stat.errors_crc_p_near)
|
||||||
|
dsl_errors_total({err="non pre-emptive crc error",loc="far"}, dsl_stat.errors_crc_p_far)
|
||||||
|
dsl_errors_total({err="pre-emptive crc error",loc="near"}, dsl_stat.errors_crcp_p_near)
|
||||||
|
dsl_errors_total({err="pre-emptive crc error",loc="far"}, dsl_stat.errors_crcp_p_far)
|
||||||
|
end
|
||||||
|
|
||||||
|
return { scrape = scrape }
|
|
@ -29,7 +29,7 @@ local function scrape()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
for i, ndss in ipairs(netdevsubstat) do
|
for i, ndss in ipairs(netdevsubstat) do
|
||||||
netdev_metric = metric("node_network_" .. ndss, "gauge")
|
netdev_metric = metric("node_network_" .. ndss, "counter")
|
||||||
for dev, nds_dev in pairs(nds_table) do
|
for dev, nds_dev in pairs(nds_table) do
|
||||||
netdev_metric({device=dev}, nds_dev[i+1])
|
netdev_metric({device=dev}, nds_dev[i+1])
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,20 +1,20 @@
|
||||||
|
local ubus = require "ubus"
|
||||||
|
local u = ubus.connect()
|
||||||
|
local b = u:call("system", "board", {})
|
||||||
|
|
||||||
local labels = {
|
local labels = {
|
||||||
id = "",
|
board_name = b.board_name,
|
||||||
release = "",
|
id = b.release.distribution,
|
||||||
revision = "",
|
model = b.model,
|
||||||
model = string.sub(get_contents("/tmp/sysinfo/model"), 1, -2),
|
release = b.release.version,
|
||||||
board_name = string.sub(get_contents("/tmp/sysinfo/board_name"), 1, -2)
|
revision = b.release.revision,
|
||||||
|
system = b.system,
|
||||||
|
target = b.release.target
|
||||||
}
|
}
|
||||||
|
|
||||||
for k, v in string.gmatch(get_contents("/etc/openwrt_release"), "(DISTRIB_%w+)='(.-)'\n") do
|
b = nil
|
||||||
if k == "DISTRIB_ID" then
|
u = nil
|
||||||
labels["id"] = v
|
ubus = nil
|
||||||
elseif k == "DISTRIB_RELEASE" then
|
|
||||||
labels["release"] = v
|
|
||||||
elseif k == "DISTRIB_REVISION" then
|
|
||||||
labels["revision"] = v
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local function scrape()
|
local function scrape()
|
||||||
metric("node_openwrt_info", "gauge", labels, 1)
|
metric("node_openwrt_info", "gauge", labels, 1)
|
||||||
|
|
|
@ -2,9 +2,23 @@ local ubus = require "ubus"
|
||||||
local iwinfo = require "iwinfo"
|
local iwinfo = require "iwinfo"
|
||||||
|
|
||||||
local function scrape()
|
local function scrape()
|
||||||
|
local metric_wifi_stations = metric("wifi_stations", "gauge")
|
||||||
|
|
||||||
local metric_wifi_station_signal = metric("wifi_station_signal_dbm","gauge")
|
local metric_wifi_station_signal = metric("wifi_station_signal_dbm","gauge")
|
||||||
local metric_wifi_station_tx_packets = metric("wifi_station_tx_packets_total","gauge")
|
|
||||||
local metric_wifi_station_rx_packets = metric("wifi_station_rx_packets_total","gauge")
|
local metric_wifi_station_inactive = metric('wifi_station_inactive_milliseconds', 'gauge')
|
||||||
|
|
||||||
|
local metric_wifi_station_exp_thr = metric('wifi_station_expected_throughput_kilobits_per_second', 'gauge')
|
||||||
|
|
||||||
|
local metric_wifi_station_tx_bitrate = metric('wifi_station_transmit_kilobits_per_second', 'gauge')
|
||||||
|
local metric_wifi_station_rx_bitrate = metric('wifi_station_receive_kilobits_per_second', 'gauge')
|
||||||
|
|
||||||
|
local metric_wifi_station_tx_packets = metric("wifi_station_transmit_packets_total","counter")
|
||||||
|
local metric_wifi_station_rx_packets = metric("wifi_station_receive_packets_total","counter")
|
||||||
|
|
||||||
|
local metric_wifi_station_tx_bytes = metric('wifi_station_transmit_bytes_total', 'counter')
|
||||||
|
local metric_wifi_station_rx_bytes = metric('wifi_station_receive_bytes_total', 'counter')
|
||||||
|
|
||||||
|
|
||||||
local u = ubus.connect()
|
local u = ubus.connect()
|
||||||
local status = u:call("network.wireless", "status", {})
|
local status = u:call("network.wireless", "status", {})
|
||||||
|
@ -13,6 +27,7 @@ local function scrape()
|
||||||
for _, intf in ipairs(dev_table['interfaces']) do
|
for _, intf in ipairs(dev_table['interfaces']) do
|
||||||
local ifname = intf['ifname']
|
local ifname = intf['ifname']
|
||||||
local iw = iwinfo[iwinfo.type(ifname)]
|
local iw = iwinfo[iwinfo.type(ifname)]
|
||||||
|
local count = 0
|
||||||
|
|
||||||
local assoclist = iw.assoclist(ifname)
|
local assoclist = iw.assoclist(ifname)
|
||||||
for mac, station in pairs(assoclist) do
|
for mac, station in pairs(assoclist) do
|
||||||
|
@ -20,10 +35,33 @@ local function scrape()
|
||||||
ifname = ifname,
|
ifname = ifname,
|
||||||
mac = mac,
|
mac = mac,
|
||||||
}
|
}
|
||||||
metric_wifi_station_signal(labels, station.signal)
|
if station.signal and station.signal ~= 0 then
|
||||||
|
metric_wifi_station_signal(labels, station.signal)
|
||||||
|
end
|
||||||
|
if station.inactive then
|
||||||
|
metric_wifi_station_inactive(labels, station.inactive)
|
||||||
|
end
|
||||||
|
if station.expected_throughput and station.expected_throughput ~= 0 then
|
||||||
|
metric_wifi_station_exp_thr(labels, station.expected_throughput)
|
||||||
|
end
|
||||||
|
if station.tx_rate and station.tx_rate ~= 0 then
|
||||||
|
metric_wifi_station_tx_bitrate(labels, station.tx_rate)
|
||||||
|
end
|
||||||
|
if station.rx_rate and station.rx_rate ~= 0 then
|
||||||
|
metric_wifi_station_rx_bitrate(labels, station.rx_rate)
|
||||||
|
end
|
||||||
metric_wifi_station_tx_packets(labels, station.tx_packets)
|
metric_wifi_station_tx_packets(labels, station.tx_packets)
|
||||||
metric_wifi_station_rx_packets(labels, station.rx_packets)
|
metric_wifi_station_rx_packets(labels, station.rx_packets)
|
||||||
|
if station.tx_bytes then
|
||||||
|
metric_wifi_station_tx_bytes(labels, station.tx_bytes)
|
||||||
|
end
|
||||||
|
if station.rx_bytes then
|
||||||
|
metric_wifi_station_rx_bytes(labels, station.rx_bytes)
|
||||||
|
end
|
||||||
|
|
||||||
|
count = count + 1
|
||||||
end
|
end
|
||||||
|
metric_wifi_stations({ifname = ifname}, count)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue