(ch chan<- prometheus.Metric)
| 143 | } |
| 144 | |
| 145 | func (c *infinibandCollector) Update(ch chan<- prometheus.Metric) error { |
| 146 | devices, err := c.fs.InfiniBandClass() |
| 147 | if err != nil { |
| 148 | if errors.Is(err, os.ErrNotExist) { |
| 149 | c.logger.Debug("infiniband statistics not found, skipping") |
| 150 | return ErrNoData |
| 151 | } |
| 152 | return fmt.Errorf("error obtaining InfiniBand class info: %w", err) |
| 153 | } |
| 154 | |
| 155 | for _, device := range devices { |
| 156 | infoDesc := prometheus.NewDesc( |
| 157 | prometheus.BuildFQName(namespace, c.subsystem, "info"), |
| 158 | "Non-numeric data from /sys/class/infiniband/<device>, value is always 1.", |
| 159 | []string{"device", "board_id", "firmware_version", "hca_type"}, |
| 160 | nil, |
| 161 | ) |
| 162 | infoValue := 1.0 |
| 163 | ch <- prometheus.MustNewConstMetric(infoDesc, prometheus.GaugeValue, infoValue, device.Name, device.BoardID, device.FirmwareVersion, device.HCAType) |
| 164 | |
| 165 | for _, port := range device.Ports { |
| 166 | portStr := strconv.FormatUint(uint64(port.Port), 10) |
| 167 | |
| 168 | c.pushMetric(ch, "state_id", uint64(port.StateID), port.Name, portStr, prometheus.GaugeValue) |
| 169 | c.pushMetric(ch, "physical_state_id", uint64(port.PhysStateID), port.Name, portStr, prometheus.GaugeValue) |
| 170 | c.pushMetric(ch, "rate_bytes_per_second", port.Rate, port.Name, portStr, prometheus.GaugeValue) |
| 171 | |
| 172 | c.pushCounter(ch, "legacy_multicast_packets_received_total", port.Counters.LegacyPortMulticastRcvPackets, port.Name, portStr) |
| 173 | c.pushCounter(ch, "legacy_multicast_packets_transmitted_total", port.Counters.LegacyPortMulticastXmitPackets, port.Name, portStr) |
| 174 | c.pushCounter(ch, "legacy_data_received_bytes_total", port.Counters.LegacyPortRcvData64, port.Name, portStr) |
| 175 | c.pushCounter(ch, "legacy_packets_received_total", port.Counters.LegacyPortRcvPackets64, port.Name, portStr) |
| 176 | c.pushCounter(ch, "legacy_unicast_packets_received_total", port.Counters.LegacyPortUnicastRcvPackets, port.Name, portStr) |
| 177 | c.pushCounter(ch, "legacy_unicast_packets_transmitted_total", port.Counters.LegacyPortUnicastXmitPackets, port.Name, portStr) |
| 178 | c.pushCounter(ch, "legacy_data_transmitted_bytes_total", port.Counters.LegacyPortXmitData64, port.Name, portStr) |
| 179 | c.pushCounter(ch, "legacy_packets_transmitted_total", port.Counters.LegacyPortXmitPackets64, port.Name, portStr) |
| 180 | c.pushCounter(ch, "excessive_buffer_overrun_errors_total", port.Counters.ExcessiveBufferOverrunErrors, port.Name, portStr) |
| 181 | c.pushCounter(ch, "link_downed_total", port.Counters.LinkDowned, port.Name, portStr) |
| 182 | c.pushCounter(ch, "link_error_recovery_total", port.Counters.LinkErrorRecovery, port.Name, portStr) |
| 183 | c.pushCounter(ch, "local_link_integrity_errors_total", port.Counters.LocalLinkIntegrityErrors, port.Name, portStr) |
| 184 | c.pushCounter(ch, "multicast_packets_received_total", port.Counters.MulticastRcvPackets, port.Name, portStr) |
| 185 | c.pushCounter(ch, "multicast_packets_transmitted_total", port.Counters.MulticastXmitPackets, port.Name, portStr) |
| 186 | c.pushCounter(ch, "port_constraint_errors_received_total", port.Counters.PortRcvConstraintErrors, port.Name, portStr) |
| 187 | c.pushCounter(ch, "port_constraint_errors_transmitted_total", port.Counters.PortXmitConstraintErrors, port.Name, portStr) |
| 188 | c.pushCounter(ch, "port_data_received_bytes_total", port.Counters.PortRcvData, port.Name, portStr) |
| 189 | c.pushCounter(ch, "port_data_transmitted_bytes_total", port.Counters.PortXmitData, port.Name, portStr) |
| 190 | c.pushCounter(ch, "port_discards_received_total", port.Counters.PortRcvDiscards, port.Name, portStr) |
| 191 | c.pushCounter(ch, "port_discards_transmitted_total", port.Counters.PortXmitDiscards, port.Name, portStr) |
| 192 | c.pushCounter(ch, "port_errors_received_total", port.Counters.PortRcvErrors, port.Name, portStr) |
| 193 | c.pushCounter(ch, "port_packets_received_total", port.Counters.PortRcvPackets, port.Name, portStr) |
| 194 | c.pushCounter(ch, "port_packets_transmitted_total", port.Counters.PortXmitPackets, port.Name, portStr) |
| 195 | c.pushCounter(ch, "port_transmit_wait_total", port.Counters.PortXmitWait, port.Name, portStr) |
| 196 | c.pushCounter(ch, "unicast_packets_received_total", port.Counters.UnicastRcvPackets, port.Name, portStr) |
| 197 | c.pushCounter(ch, "unicast_packets_transmitted_total", port.Counters.UnicastXmitPackets, port.Name, portStr) |
| 198 | c.pushCounter(ch, "port_receive_remote_physical_errors_total", port.Counters.PortRcvRemotePhysicalErrors, port.Name, portStr) |
| 199 | c.pushCounter(ch, "port_receive_switch_relay_errors_total", port.Counters.PortRcvSwitchRelayErrors, port.Name, portStr) |
| 200 | c.pushCounter(ch, "symbol_error_total", port.Counters.SymbolError, port.Name, portStr) |
| 201 | c.pushCounter(ch, "vl15_dropped_total", port.Counters.VL15Dropped, port.Name, portStr) |
| 202 |
nothing calls this directly
no test coverage detected