From 54a03d584baa57b0b2d9fa5d2eac0b1884a4d1c2 Mon Sep 17 00:00:00 2001 From: Andrey Vertiprahov Date: Sat, 3 Apr 2021 16:10:41 +0500 Subject: [PATCH] Fix labels on get_metrics scripts. --- sa/profiles/Cisco/IOS/get_metrics.py | 8 ++++---- sa/profiles/ElectronR/KO01M/get_metrics.py | 4 ++++ sa/profiles/Huawei/VRP/oidrules/sslot.py | 14 ++++++++++++-- .../Huawei/VRP/snmp_metrics/cpu_usage.json | 4 ++-- sa/profiles/Qtech/BFC_PBIC_S/get_metrics.py | 5 ++++- sa/profiles/Qtech/QFC/get_metrics.py | 16 +++++++++++++++- sa/profiles/Qtech/QSW2800/oidrules/enterprise.py | 4 ++-- sa/profiles/Rotek/BT/get_metrics.py | 9 ++++++++- sa/profiles/Ttronics/KUB/get_metrics.py | 15 ++++++++++++++- 9 files changed, 65 insertions(+), 14 deletions(-) diff --git a/sa/profiles/Cisco/IOS/get_metrics.py b/sa/profiles/Cisco/IOS/get_metrics.py index 327d8f7d28..a4e26be8b1 100644 --- a/sa/profiles/Cisco/IOS/get_metrics.py +++ b/sa/profiles/Cisco/IOS/get_metrics.py @@ -132,7 +132,7 @@ class Script(GetMetricsScript): self.set_metric( id=setup_metrics[(f"noc::sla::name::{probe_id}",)], metric="SLA | ICMP RTT", - label=(f"noc::sla::name::{probe_id}",), + labels=(f"noc::sla::name::{probe_id}",), value=float(rtt) * 1000, multi=True, ) @@ -174,7 +174,7 @@ class Script(GetMetricsScript): self.set_metric( id=setup_metrics[(f"noc::sla::name::{sla_probe_index}",)], metric="SLA | Jitter | Rtt", - label=(f"noc::sla::name::{sla_probe_index}",), + labels=(f"noc::sla::name::{sla_probe_index}",), value=float(sla_rtt_sum) * 1000.0, multi=True, ) @@ -182,7 +182,7 @@ class Script(GetMetricsScript): self.set_metric( id=setup_metrics[(f"noc::sla::name::{sla_probe_index}",)], metric="SLA | Jitter | Egress", - label=(f"noc::sla::name::{sla_probe_index}",), + labels=(f"noc::sla::name::{sla_probe_index}",), value=float(sla_egress) * 1000.0, multi=True, ) @@ -190,7 +190,7 @@ class Script(GetMetricsScript): self.set_metric( id=setup_metrics[(f"noc::sla::name::{sla_probe_index}",)], metric="SLA | Jitter | Ingress", - label=(f"noc::sla::name::{sla_probe_index}",), + labels=(f"noc::sla::name::{sla_probe_index}",), value=float(sla_ingress) * 1000.0, multi=True, ) diff --git a/sa/profiles/ElectronR/KO01M/get_metrics.py b/sa/profiles/ElectronR/KO01M/get_metrics.py index b5db403225..672b4006ae 100644 --- a/sa/profiles/ElectronR/KO01M/get_metrics.py +++ b/sa/profiles/ElectronR/KO01M/get_metrics.py @@ -30,8 +30,10 @@ class Script(GetMetricsScript): res = self.snmp.get("1.3.6.1.4.1.35419.20.1.10%s.0" % metric.ifindex) if res == 1: value = 0 + port = metric.labels[0].rsplit("::", 1)[-1] self.set_metric( id=("Environment | Sensor Status", metric.labels), + labels=[f"noc::sensor::{port}"], value=value, ) @@ -76,7 +78,9 @@ class Script(GetMetricsScript): def get_power_input_status(self, metrics): for metric in metrics: value = self.snmp.get("1.3.6.1.4.1.35419.20.1.10%s.0" % metric.ifindex, cached=True) + port = metric.labels[0].rsplit("::", 1)[-1] self.set_metric( id=("Environment | Power | Input | Status", metric.labels), + labels=[f"noc::sensor::{port}"], value=0 if value == 1 else 1, ) diff --git a/sa/profiles/Huawei/VRP/oidrules/sslot.py b/sa/profiles/Huawei/VRP/oidrules/sslot.py index fd6f4da5ea..d4fde4a040 100644 --- a/sa/profiles/Huawei/VRP/oidrules/sslot.py +++ b/sa/profiles/Huawei/VRP/oidrules/sslot.py @@ -28,11 +28,21 @@ class SSlotRule(OIDRule): for si, cp in r: if self.is_complex: gen = [mib[self.expand(o, {"hwSlotIndex": r[(si, cp)]})] for o in self.oid] - labels = ["noc::chassis::0", f"noc::slot::{si}", f"noc::module::{cp}"] + labels = [ + "noc::chassis::0", + f"noc::slot::{si}", + f"noc::module::{cp}", + f"noc::cpu::CPU Slot {si}/{cp}", + ] if gen: yield tuple(gen), self.type, self.scale, labels else: oid = mib[self.expand(self.oid, {"hwSlotIndex": r[(si, cp)]})] - labels = ["noc::chassis::0", f"noc::slot::{si}", f"noc::module::{cp}"] + labels = [ + "noc::chassis::0", + f"noc::slot::{si}", + f"noc::module::{cp}", + f"noc::cpu::CPU Slot {si}/{cp}", + ] if oid: yield oid, self.type, self.scale, labels diff --git a/sa/profiles/Huawei/VRP/snmp_metrics/cpu_usage.json b/sa/profiles/Huawei/VRP/snmp_metrics/cpu_usage.json index 93495e416e..93b509c942 100644 --- a/sa/profiles/Huawei/VRP/snmp_metrics/cpu_usage.json +++ b/sa/profiles/Huawei/VRP/snmp_metrics/cpu_usage.json @@ -11,13 +11,13 @@ "capability": "Huawei | SNMP | ModuleIndex", "separator": " | ", "oid": "1.3.6.1.4.1.2011.5.25.31.1.1.1.1.5.{{ item }}", - "labels": ["noc::chassis::0", "noc::slot::0", "noc::module::item"], + "labels": ["noc::chassis::0", "noc::slot::0", "noc::module::item", "noc::cpu::CPU item"], "type": "gauge", "scale": 1 },{ "$type": "oid", "oid": "1.3.6.1.4.1.2011.6.3.4.1.3.0.0.0", - "labels": ["noc::chassis::0", "noc::slot::0", "noc::module::0"], + "labels": ["noc::chassis::0", "noc::slot::0", "noc::module::0", "noc::cpu::CPU item"], "type": "gauge", "scale": 1 }] diff --git a/sa/profiles/Qtech/BFC_PBIC_S/get_metrics.py b/sa/profiles/Qtech/BFC_PBIC_S/get_metrics.py index ebf30f31c3..54dbe47d07 100644 --- a/sa/profiles/Qtech/BFC_PBIC_S/get_metrics.py +++ b/sa/profiles/Qtech/BFC_PBIC_S/get_metrics.py @@ -66,9 +66,10 @@ class Script(GetMetricsScript): else: if status > 0: value = 0 - + port = metric.labels[0].rsplit("::", 1)[-1] self.set_metric( id=("Environment | Sensor Status", metric.labels), + labels=[f"noc::sensor::{port}"], value=value, ) @@ -131,7 +132,9 @@ class Script(GetMetricsScript): value = 0 elif invert == 1 and status == 1: value = 0 + port = metric.labels[0].rsplit("::", 1)[-1] self.set_metric( id=("Environment | Power | Input | Status", metric.labels), + labels=[f"noc::sensor::{port}"], value=value, ) diff --git a/sa/profiles/Qtech/QFC/get_metrics.py b/sa/profiles/Qtech/QFC/get_metrics.py index 6dca7fb0a0..bd0bbd3c91 100644 --- a/sa/profiles/Qtech/QFC/get_metrics.py +++ b/sa/profiles/Qtech/QFC/get_metrics.py @@ -24,6 +24,7 @@ class Script(GetMetricsScript): for metric in metrics: if metric.ifindex == 100: continue + port = metric.labels[0].rsplit("::", 1)[-1] value = 1 if self.is_lite: status = self.snmp.get("1.3.6.1.4.1.27514.103.0.%s.0" % metric.ifindex) @@ -45,6 +46,7 @@ class Script(GetMetricsScript): value = 0 self.set_metric( id=("Environment | Sensor Status", metric.labels), + labels=[f"noc::sensor::{port}"], value=value, ) @@ -94,9 +96,11 @@ class Script(GetMetricsScript): value = self.snmp.get("1.3.6.1.4.1.27514.103.0.28.0") else: value = self.snmp.get("1.3.6.1.4.1.27514.102.0.21") + port = metric.labels[0].rsplit("::", 1)[-1] if is_float(value) or is_int(value): self.set_metric( id=("Environment | Electric Current", metric.labels), + labels=[f"noc::sensor::{port}"], value=value, scale=scale(0.01), ) @@ -108,9 +112,11 @@ class Script(GetMetricsScript): value = self.snmp.get("1.3.6.1.4.1.27514.103.0.30.0") else: value = self.snmp.get("1.3.6.1.4.1.27514.102.0.24") + port = metric.labels[0].rsplit("::", 1)[-1] self.set_metric( id=("Environment | Energy Consumption", metric.labels), value=value, + labels=[f"noc::sensor::{port}"], scale=scale(0.01, 2), ) @@ -121,9 +127,11 @@ class Script(GetMetricsScript): value = self.snmp.get("1.3.6.1.4.1.27514.103.0.29.0") else: value = self.snmp.get("1.3.6.1.4.1.27514.102.0.22") + port = metric.labels[0].rsplit("::", 1)[-1] if value: self.set_metric( id=("Environment | Power", metric.labels), + labels=[f"noc::sensor::{port}"], value=value, ) @@ -144,7 +152,11 @@ class Script(GetMetricsScript): res = self.snmp.get("1.3.6.1.4.1.27514.102.0.12") if res != 0: value = 0 - self.set_metric(id=("Environment | Power | Input | Status", metric.labels), value=value) + self.set_metric( + id=("Environment | Power | Input | Status", metric.labels), + labels=[f"noc::sensor::{port}"], + value=value, + ) @metrics( ["Environment | Battery | Capacity | Level"], volatile=False, access="S" @@ -153,7 +165,9 @@ class Script(GetMetricsScript): for metric in metrics: if self.is_lite: value = self.snmp.get("1.3.6.1.4.1.27514.103.0.25.0") + port = metric.labels[0].rsplit("::", 1)[-1] self.set_metric( id=("Environment | Battery | Capacity | Level", metric.labels), + labels=[f"noc::sensor::{port}"], value=value, ) diff --git a/sa/profiles/Qtech/QSW2800/oidrules/enterprise.py b/sa/profiles/Qtech/QSW2800/oidrules/enterprise.py index e26e0fb75d..60ffe9847b 100644 --- a/sa/profiles/Qtech/QSW2800/oidrules/enterprise.py +++ b/sa/profiles/Qtech/QSW2800/oidrules/enterprise.py @@ -23,11 +23,11 @@ class EnterpriseRule(OIDRule): ] for o in self.oid ] - labels = ["noc::name::Usage"] + labels = ["noc::cpu::"] if gen: yield tuple(gen), self.type, self.scale, labels else: - labels = ["noc::name::Usage"] + labels = ["noc::cpu::"] gen = mib[ self.expand( self.oid, {"enterprise": script.capabilities["SNMP | OID | EnterpriseID"]} diff --git a/sa/profiles/Rotek/BT/get_metrics.py b/sa/profiles/Rotek/BT/get_metrics.py index ad6d5ad136..015ae65d1e 100644 --- a/sa/profiles/Rotek/BT/get_metrics.py +++ b/sa/profiles/Rotek/BT/get_metrics.py @@ -20,6 +20,7 @@ class Script(GetMetricsScript): if "st" in port: continue value = 1 + port = metric.labels[0].rsplit("::", 1)[-1] status = self.snmp.get("1.3.6.1.4.1.41752.5.15.1.%s.0" % metric.ifindex) if metric.ifindex == 1 and int(status) == 0: value = 0 @@ -32,6 +33,7 @@ class Script(GetMetricsScript): value = 0 self.set_metric( id=("Environment | Sensor Status", metric.labels), + labels=[f"noc::sensor::{port}"], value=value, ) @@ -66,6 +68,11 @@ class Script(GetMetricsScript): for metric in metrics: value = 1 res = self.snmp.get("1.3.6.1.4.1.41752.5.15.1.9.0") + port = metric.labels[0].rsplit("::", 1)[-1] if res not in [1, 2, 3]: value = 0 - self.set_metric(id=("Environment | Power | Input | Status", metric.labels), value=value) + self.set_metric( + id=("Environment | Power | Input | Status", metric.labels), + labels=[f"noc::sensor::{port}"], + value=value, + ) diff --git a/sa/profiles/Ttronics/KUB/get_metrics.py b/sa/profiles/Ttronics/KUB/get_metrics.py index 5cbd033bac..3e391ed3a9 100644 --- a/sa/profiles/Ttronics/KUB/get_metrics.py +++ b/sa/profiles/Ttronics/KUB/get_metrics.py @@ -20,6 +20,7 @@ class Script(GetMetricsScript): continue value = 1 status = self.snmp.get("1.3.6.1.4.1.51315.1.%s.0" % metric.ifindex) + port = metric.labels[0].rsplit("::", 1)[-1] if metric.ifindex == 1: if status != -128: value = 0 @@ -36,6 +37,7 @@ class Script(GetMetricsScript): value = status self.set_metric( id=("Environment | Sensor Status", metric.labels), + labels=[f"noc::sensor::{port}"], value=value, ) @@ -70,6 +72,7 @@ class Script(GetMetricsScript): def get_power_input_status(self, metrics): for metric in metrics: value = 1 + port = metric.labels[0].rsplit("::", 1)[-1] if metric.ifindex == 29: status = self.snmp.get("1.3.6.1.4.1.51315.1.%s.0" % metric.ifindex) if status != 1: @@ -81,6 +84,7 @@ class Script(GetMetricsScript): value = 0 self.set_metric( id=("Environment | Power | Input | Status", metric.labels), + labels=[f"noc::sensor::{port}"], value=value, ) @@ -89,15 +93,22 @@ class Script(GetMetricsScript): for metric in metrics: if metric.ifindex == 3: value = self.snmp.get("1.3.6.1.4.1.51315.1.19") - self.set_metric(id=("Environment | Electric Current", metric.labels), value=value) + port = metric.labels[0].rsplit("::", 1)[-1] + self.set_metric( + id=("Environment | Electric Current", metric.labels), + labels=[f"noc::sensor::{port}"], + value=value, + ) @metrics(["Environment | Energy Consumption"], volatile=False, access="S") # SNMP version def get_energy_cons(self, metrics): for metric in metrics: if metric.ifindex == 26: value = self.snmp.get("1.3.6.1.4.1.51315.1.25.0") + port = metric.labels[0].rsplit("::", 1)[-1] self.set_metric( id=("Environment | Energy Consumption", metric.labels), + labels=[f"noc::sensor::{port}"], value=value, ) @@ -112,8 +123,10 @@ class Script(GetMetricsScript): value = self.snmp.get("1.3.6.1.4.1.51315.1.41.0") else: value = self.snmp.get("1.3.6.1.4.1.51315.1.28.0") + port = metric.labels[0].rsplit("::", 1)[-1] self.set_metric( id=("Environment | Battery | Capacity | Level", metric.labels), + labels=[f"noc::sensor::{port}"], value=value, ) -- GitLab