ebpf_exporter
31 строка · 631.0 Байт
1package decoder
2
3import (
4"fmt"
5"strconv"
6
7"github.com/cloudflare/ebpf_exporter/v2/config"
8)
9
10// PCIDevice is a decoder that transforms PCI device id into a name
11type PCIDevice struct{}
12
13// Decode transforms PCI device id into a name
14func (d *PCIDevice) Decode(in []byte, _ config.Decoder) ([]byte, error) {
15if pci == nil {
16return []byte(missingPciIdsText), nil
17}
18
19num, err := strconv.Atoi(string(in))
20if err != nil {
21return nil, err
22}
23
24key := fmt.Sprintf("%04x", num)
25
26if device, ok := pci.Products[key]; ok {
27return []byte(device.Name), nil
28}
29
30return []byte(fmt.Sprintf("unknown pci device: 0x%s", key)), nil
31}
32