diff options
author | Paul Spooren <spooren@informatik.uni-leipzig.de> | 2018-04-14 15:58:02 +0900 |
---|---|---|
committer | Paul Spooren <spooren@informatik.uni-leipzig.de> | 2018-04-14 15:58:52 +0900 |
commit | 79073ee2016337205e405ac7aa74cc4aac7c9af2 (patch) | |
tree | 4e2ad2327a21b1f3166b35381ab74c52b898c6ce /utils/prometheus-node-exporter-lua/files/usr/lib/lua | |
parent | 49df9069912eb11c8e0423613250b99f1366ba0b (diff) |
prometheus-node-exporter-lua: extend bmx7 plugin
Now monitors as well the tunIn parameters, aka the annoucend routes to
the network. This is handy to check if a node annouces itself as a
gateway.
Also list all activated plugins.
Example output:
# TYPE bmx7_tunIn gauge
bmx7_tunIn{name="myIP4",network="10.198.52.86/32"} 1
bmx7_tunIn{name="myIP6",network="2012:0:0:56::/128"} 1
bmx7_tunIn{name="inet4",network="0.0.0.0/0"} 1
# TYPE bmx7_plugin gauge
bmx7_plugin{name="bmx7_config.so"} 1
bmx7_plugin{name="bmx7_json.so"} 1
bmx7_plugin{name="bmx7_sms.so"} 1
bmx7_plugin{name="bmx7_tun.so"} 1
Signed-off-by: Paul Spooren <spooren@informatik.uni-leipzig.de>
Diffstat (limited to 'utils/prometheus-node-exporter-lua/files/usr/lib/lua')
-rw-r--r-- | utils/prometheus-node-exporter-lua/files/usr/lib/lua/prometheus-collectors/bmx7.lua | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/utils/prometheus-node-exporter-lua/files/usr/lib/lua/prometheus-collectors/bmx7.lua b/utils/prometheus-node-exporter-lua/files/usr/lib/lua/prometheus-collectors/bmx7.lua index a6d6e9f3f..d384d71a7 100644 --- a/utils/prometheus-node-exporter-lua/files/usr/lib/lua/prometheus-collectors/bmx7.lua +++ b/utils/prometheus-node-exporter-lua/files/usr/lib/lua/prometheus-collectors/bmx7.lua @@ -39,7 +39,28 @@ local function scrape() } metric_bmx7_rxRate(labels, interpret_suffix(link.rxRate)) metric_bmx7_txRate(labels, interpret_suffix(link.txRate)) + end + + local metric_bmx7_tunIn = metric("bmx7_tunIn", "gauge") + local parameters = json.decode(get_contents("/var/run/bmx7/json/parameters")).OPTIONS + for _, option in pairs(parameters) do + if option.name == "tunIn" then + for _, instance in pairs(option.INSTANCES) do + for _, child_instance in pairs(instance.CHILD_INSTANCES) do + local labels = { + name = instance.value, + network = child_instance.value + } + metric_bmx7_tunIn(labels, 1) + end + end + elseif option.name == "plugin" then + local metric_bmx7_plugin = metric("bmx7_plugin", "gauge") + for _, instance in pairs(option.INSTANCES) do + metric_bmx7_plugin({ name = instance.value }, 1) + end end + end end return { scrape = scrape } |