Skip to content

Commit 1a7a027

Browse files
fix: add one more metric for network port
1 parent ecc301b commit 1a7a027

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

collector/chassis_collector.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,14 @@ var (
266266
nil,
267267
),
268268
},
269+
"chassis_network_port_link_state": {
270+
desc: prometheus.NewDesc(
271+
prometheus.BuildFQName(namespace, ChassisSubsystem, "network_port_link_state"),
272+
"chassis network port link state state,1(Up),0(Down)",
273+
ChassisNetworkPortLabelNames,
274+
nil,
275+
),
276+
},
269277
"chassis_network_port_health_state": {
270278
desc: prometheus.NewDesc(
271279
prometheus.BuildFQName(namespace, ChassisSubsystem, "network_port_health_state"),
@@ -602,13 +610,18 @@ func parseNetworkPort(ch chan<- prometheus.Metric, chassisID string, networkPort
602610
networkPortName := networkPort.Name
603611
networkPortID := networkPort.ID
604612
networkPortState := networkPort.Status.State
613+
networkLinkStatus :=networkPort.LinkStatus
605614
networkPortLinkType := networkPort.ActiveLinkTechnology
606615
networkPortLinkSpeed := fmt.Sprintf("%d Mbps", networkPort.CurrentLinkSpeedMbps)
607616
networkPortHealthState := networkPort.Status.Health
608617
networkPortConnectionType :=networkPort.FCPortConnectionType
609618
networkPhysicalPortNumber :=networkPort.PhysicalPortNumber
610619
chassisNetworkPortLabelValues := []string{"network_port", chassisID, networkAdapterName, networkAdapterID, networkPortName, networkPortID, string(networkPortLinkType), networkPortLinkSpeed,string(networkPortConnectionType),networkPhysicalPortNumber}
611620

621+
if networkLinkStatusValue,ok := parsePortLinkStatus(networkLinkStatus);ok {
622+
ch <- prometheus.MustNewConstMetric(chassisMetrics["chassis_network_port_link_state"].desc, prometheus.GaugeValue, networkLinkStatusValue, chassisNetworkPortLabelValues...)
623+
624+
}
612625

613626
if networkPortStateValue, ok := parseCommonStatusState(networkPortState); ok {
614627
ch <- prometheus.MustNewConstMetric(chassisMetrics["chassis_network_port_state"].desc, prometheus.GaugeValue, networkPortStateValue, chassisNetworkPortLabelValues...)

collector/redfish_collector.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,12 @@ func parseLinkStatus(status redfish.LinkStatus) (float64, bool) {
183183
return float64(0), false
184184
}
185185

186+
func parsePortLinkStatus(status redfish.PortLinkStatus) (float64, bool) {
187+
if bytes.Equal([]byte(status), []byte("Up")) {
188+
return float64(1), true
189+
}
190+
return float64(0), false
191+
}
186192
func boolToFloat64(data bool) float64 {
187193

188194
if data {

0 commit comments

Comments
 (0)