+ def _build_create_alarm_payload(
+ self,
+ cor_id: int,
+ metric_name: str,
+ ns_id: str,
+ vdu_name: str,
+ vnf_member_index: str,
+ threshold: int,
+ statistic: str,
+ operation: str,
+ action: str,
+ vnfr=None,
+ vnfd=None,
+ ):
+ tags = {
+ "ns_id": ns_id,
+ "vdu_name": vdu_name,
+ "vnf_member_index": vnf_member_index,
+ }
+ if vnfr and vnfd:
+ # TODO: Change for multiple DF support
+ df = vnfd.get("df", [{}])[0]
+ if "exporters-endpoints" in df:
+ metric_port = df["exporters-endpoints"].get("metric-port", 9100)
+ if metric_name.startswith("kpi_"):
+ metric_name = metric_name.replace("kpi_", "")
+ metric_name.strip()
+ for vdu in vnfr["vdur"]:
+ if vdu["name"] == vdu_name:
+ vdu_ip = vdu["ip-address"]
+ tags = {"instance": vdu_ip + ":" + str(metric_port)}