jenningsloy318 / redfish_exporter

exporter to get metrics from redfish based hardware such as lenovo/dell/superc servers
Apache License 2.0
70 stars 61 forks source link

got server returned HTTP status 500 Internal Server Error with Dell IDRAC #57

Closed sukhumsae closed 1 year ago

sukhumsae commented 2 years ago

I use your alpine version and use prometheuse to scrape the metrics from Dell IDRAC9 and got return

server returned HTTP status 500 Internal Server Error

How can I troubleshoot?

jenningsloy318 commented 2 years ago

Can you post you error message? not sure if this error is occured in this exporter or in your server api response. +

fschlich commented 1 year ago

Today, we did an IDRAC update from 5.10.30.00 to 5.10.50.00, and the exporter startet to return 500 Internal Server Error. Here are the error messages from two different servers:

An error has occurred while serving metrics:

10 error(s) occurred:
* [from Gatherer #2] collected metric "redfish_system_pcie_device_state" { label:<name:"hostname" value:"" > label:<name:"pcie_device" value:"PowerEdge Rx5xx LOM Board" > label:<name:"pcie_device_id" value:"225-0" > label:<name:"resource" value:"pcie_device" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_system_pcie_device_health_state" { label:<name:"hostname" value:"" > label:<name:"pcie_device" value:"PowerEdge Rx5xx LOM Board" > label:<name:"pcie_device_id" value:"225-0" > label:<name:"resource" value:"pcie_device" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_system_pcie_device_state" { label:<name:"hostname" value:"" > label:<name:"pcie_device" value:"MT27800 Family [ConnectX-5]" > label:<name:"pcie_device_id" value:"99-0" > label:<name:"resource" value:"pcie_device" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_system_pcie_device_health_state" { label:<name:"hostname" value:"" > label:<name:"pcie_device" value:"MT27800 Family [ConnectX-5]" > label:<name:"pcie_device_id" value:"99-0" > label:<name:"resource" value:"pcie_device" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_system_pcie_device_state" { label:<name:"hostname" value:"" > label:<name:"pcie_device" value:"MT28800 Family [ConnectX-5 Ex]" > label:<name:"pcie_device_id" value:"65-0" > label:<name:"resource" value:"pcie_device" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_system_pcie_device_health_state" { label:<name:"hostname" value:"" > label:<name:"pcie_device" value:"MT28800 Family [ConnectX-5 Ex]" > label:<name:"pcie_device_id" value:"65-0" > label:<name:"resource" value:"pcie_device" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_system_pcie_device_state" { label:<name:"hostname" value:"" > label:<name:"pcie_device" value:"Starship/Matisse GPP Bridge" > label:<name:"pcie_device_id" value:"0-1" > label:<name:"resource" value:"pcie_device" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_system_pcie_device_health_state" { label:<name:"hostname" value:"" > label:<name:"pcie_device" value:"Starship/Matisse GPP Bridge" > label:<name:"pcie_device_id" value:"0-1" > label:<name:"resource" value:"pcie_device" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_system_pcie_device_state" { label:<name:"hostname" value:"" > label:<name:"pcie_device" value:"FCH LPC Bridge" > label:<name:"pcie_device_id" value:"0-20" > label:<name:"resource" value:"pcie_device" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_system_pcie_device_health_state" { label:<name:"hostname" value:"" > label:<name:"pcie_device" value:"FCH LPC Bridge" > label:<name:"pcie_device_id" value:"0-20" > label:<name:"resource" value:"pcie_device" > gauge:<value:1 > } was collected before with the same name and label values

the second one is shorter:

An error has occurred while serving metrics:

6 error(s) occurred:
* [from Gatherer #2] collected metric "redfish_system_pcie_device_state" { label:<name:"hostname" value:"" > label:<name:"pcie_device" value:"BCM57414 NetXtreme-E 10Gb/25Gb RDMA Ethernet Controller" > label:<name:"pcie_device_id" value:"75-0" > label:<name:"resource" value:"pcie_device" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_system_pcie_device_health_state" { label:<name:"hostname" value:"" > label:<name:"pcie_device" value:"BCM57414 NetXtreme-E 10Gb/25Gb RDMA Ethernet Controller" > label:<name:"pcie_device_id" value:"75-0" > label:<name:"resource" value:"pcie_device" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_system_pcie_device_state" { label:<name:"hostname" value:"" > label:<name:"pcie_device" value:"C620 Series Chipset Family SMBus" > label:<name:"pcie_device_id" value:"0-31" > label:<name:"resource" value:"pcie_device" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_system_pcie_device_health_state" { label:<name:"hostname" value:"" > label:<name:"pcie_device" value:"C620 Series Chipset Family SMBus" > label:<name:"pcie_device_id" value:"0-31" > label:<name:"resource" value:"pcie_device" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_system_pcie_device_state" { label:<name:"hostname" value:"" > label:<name:"pcie_device" value:"C620 Series Chipset Family PCI Express Root Port #5" > label:<name:"pcie_device_id" value:"0-28" > label:<name:"resource" value:"pcie_device" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_system_pcie_device_health_state" { label:<name:"hostname" value:"" > label:<name:"pcie_device" value:"C620 Series Chipset Family PCI Express Root Port #5" > label:<name:"pcie_device_id" value:"0-28" > label:<name:"resource" value:"pcie_device" > gauge:<value:1 > } was collected before with the same name and label values

This is with rev d77e8c1. I'd be more than happy to try a patch, if you have an idea where things go wrong...

tmakovet commented 1 year ago

Same issue with iDRAC 6.00.02.00

jenningsloy318 commented 1 year ago

seems there more lable exported from new Dell IDRAC9, can you post the pure json response, then we can see what is missing ? and then I can add more labels to this part?

collected metric "redfish_system_pcie_device_state" { label:<name:"hostname" value:"" > label:<name:"pcie_device" value:"BCM57414 NetXtreme-E 10Gb/25Gb RDMA Ethernet Controller" > label:<name:"pcie_device_id" value:"75-0" > label:<name:"resource" value:"pcie_device" > gauge:<value:1 > } was collected before with the same name and label values

take this for example, we already have hostname,pcie_device,pcie_device_id,resource, but still can't distinguish the devices, maybe more attributes are required.

fschlich commented 1 year ago

So for starters, when I do curl --insecure https://BMCADDR/redfish/v1/Systems/System.Embedded.1/, I get 75-0 listed twice (this is also the case for 0-28 and 0-31). This was not the case before. The reason might be several PCIeFunctions under the same device:

{
   ...
  "PCIeDevices": [
    {
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/23-0"
    },
    {
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/0-31"
    },
    {
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/75-0"
    },
    {
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/75-0"
    },
    {
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/0-23"
    },
    {
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/0-28"
    },
    {
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/3-0"
    },
    {
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/0-31"
    },
    {
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/0-17"
    },
    {
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/0-28"
    },
    {
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/227-0"
    }
  ],
  "PCIeDevices@odata.count": 11,
  "PCIeFunctions": [
    {
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/23-0/PCIeFunctions/23-0-0"
    },
    {
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/0-31/PCIeFunctions/0-31-4"
    },
    {
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/75-0/PCIeFunctions/75-0-0"
    },
    {
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/75-0/PCIeFunctions/75-0-1"
    },
    {
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/0-23/PCIeFunctions/0-23-0"
    },
    {
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/0-28/PCIeFunctions/0-28-4"
    },
    {
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/3-0/PCIeFunctions/3-0-0"
    },
    {
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/0-31/PCIeFunctions/0-31-0"
    },
    {
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/0-17/PCIeFunctions/0-17-5"
    },
    {
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/0-28/PCIeFunctions/0-28-0"
    },
    {
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/227-0/PCIeFunctions/227-0-0"
    }
  ],
  "PCIeFunctions@odata.count": 11,
  ...
}

Full response: Systems.Embedded.1.TXT

jenningsloy318 commented 1 year ago

can you give me details of one pcie device, for example /redfish/v1/Systems/System.Embedded.1/PCIeDevices/75-0,

this is the key elements for this error

fschlich commented 1 year ago
{
  "@odata.context": "/redfish/v1/$metadata#PCIeDevice.PCIeDevice",
  "@odata.etag": "1663080172",
  "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/75-0",
  "@odata.type": "#PCIeDevice.v1_4_0.PCIeDevice",
  "Assembly": {
    "@odata.id": "/redfish/v1/Chassis/System.Embedded.1/Assembly"
  },
  "AssetTag": null,
  "Description": "BCM57414 NetXtreme-E 10Gb/25Gb RDMA Ethernet Controller",
  "DeviceType": "MultiFunction",
  "FirmwareVersion": "22.21.06.80",
  "Id": "75-0",
  "Links": {
    "Chassis": [
      {
        "@odata.id": "/redfish/v1/Chassis/System.Embedded.1"
      }
    ],
    "Chassis@odata.count": 1,
    "PCIeFunctions": [
      {
        "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/75-0/PCIeFunctions/75-0-0"
      },
      {
        "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/75-0/PCIeFunctions/75-0-1"
      }
    ],
    "PCIeFunctions@odata.count": 2
  },
  "Manufacturer": "Broadcom Inc. and subsidiaries",
  "Model": null,
  "Name": "BCM57414 NetXtreme-E 10Gb/25Gb RDMA Ethernet Controller",
  "PartNumber": "0KHCPP",
  "SKU": null,
  "SerialNumber": "VNFCVBA21I04VL",
  "Status": {
    "Health": "OK",
    "HealthRollup": "OK",
    "State": "Enabled"
  }
}

thanks for looking into this so quickly!

jenningsloy318 commented 1 year ago

I will go through upstream project if these specification are met, if so I will compare them and add missing parts. if not, we will still wait for upstream

fschlich commented 1 year ago

any reaction so far?

jenningsloy318 commented 1 year ago

I investigated the upstream, added 1 additional label for PCIE devices in latest commit

  PartNumber

hope this will help you.

fschlich commented 1 year ago

unfortunately, this didn't really help (this is rev 2d8b68b):

An error has occurred while serving metrics:

6 error(s) occurred:
* [from Gatherer #2] collected metric "redfish_system_pcie_device_state" { label:<name:"hostname" value:"" > label:<name:"pcie_device" value:"BCM57414 NetXtreme-E 10Gb/25Gb RDMA Ethernet Controller" > label:<name:"pcie_device_id" value:"75-0" > label:<name:"pcie_device_partnumber" value:"0KHCTP" > label:<name:"resource" value:"pcie_device" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_system_pcie_device_health_state" { label:<name:"hostname" value:"" > label:<name:"pcie_device" value:"BCM57414 NetXtreme-E 10Gb/25Gb RDMA Ethernet Controller" > label:<name:"pcie_device_id" value:"75-0" > label:<name:"pcie_device_partnumber" value:"0KHCTP" > label:<name:"resource" value:"pcie_device" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_system_pcie_device_state" { label:<name:"hostname" value:"" > label:<name:"pcie_device" value:"C620 Series Chipset Family SMBus" > label:<name:"pcie_device_id" value:"0-31" > label:<name:"pcie_device_partnumber" value:"" > label:<name:"resource" value:"pcie_device" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_system_pcie_device_health_state" { label:<name:"hostname" value:"" > label:<name:"pcie_device" value:"C620 Series Chipset Family SMBus" > label:<name:"pcie_device_id" value:"0-31" > label:<name:"pcie_device_partnumber" value:"" > label:<name:"resource" value:"pcie_device" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_system_pcie_device_state" { label:<name:"hostname" value:"" > label:<name:"pcie_device" value:"C620 Series Chipset Family PCI Express Root Port #5" > label:<name:"pcie_device_id" value:"0-28" > label:<name:"pcie_device_partnumber" value:"" > label:<name:"resource" value:"pcie_device" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_system_pcie_device_health_state" { label:<name:"hostname" value:"" > label:<name:"pcie_device" value:"C620 Series Chipset Family PCI Express Root Port #5" > label:<name:"pcie_device_id" value:"0-28" > label:<name:"pcie_device_partnumber" value:"" > label:<name:"resource" value:"pcie_device" > gauge:<value:1 > } was collected before with the same name and label values

From my limited understanding, I think redfish_exporter is treating pcieDevices as a list that it will loop over, generating metrics for every entry it encounters - and since the BMC is reporting the same entry twice (presumably because they stand for two different PCIeFunctions), redfish_exporter will will try to create two entries for device ID 75-0, and that is when the prometheus client_golang Gatherer spits out the error message.

So perhaps system_collector should treat pcieDevices as a dict rather than a list, de-duplicating entries and hence only creating metrics for each of them once?

jenningsloy318 commented 1 year ago

this is not what you said, actully as I said it missing some label that can distinguish them.

one more thing, can you count error entries and your actual device number? are they same? can you post antoher singe pcie device response, I can check the difference with previous one?

fschlich commented 1 year ago

so I resolved the immediate issue by commenting the pcie device collection in Collect(), and it seems there's a similar issue when it comes to network ports:

An error has occurred while serving metrics:

28 error(s) occurred:
* [from Gatherer #2] collected metric "redfish_chassis_network_port_state" { label:<name:"chassis_id" value:"System.Embedded.1" > label:<name:"network_adapter" value:"Network Adapter View" > label:<name:"network_adapter_id" value:"NIC.Integrated.1" > label:<name:"network_port" value:"Network Port View" > label:<name:"network_port_id" value:"NIC.Integrated.1-1" > label:<name:"network_port_speed" value:"10000 Mbps" > label:<name:"network_port_type" value:"Ethernet" > label:<name:"resource" value:"network_port" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_chassis_network_port_health_state" { label:<name:"chassis_id" value:"System.Embedded.1" > label:<name:"network_adapter" value:"Network Adapter View" > label:<name:"network_adapter_id" value:"NIC.Integrated.1" > label:<name:"network_port" value:"Network Port View" > label:<name:"network_port_id" value:"NIC.Integrated.1-1" > label:<name:"network_port_speed" value:"10000 Mbps" > label:<name:"network_port_type" value:"Ethernet" > label:<name:"resource" value:"network_port" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_chassis_network_port_state" { label:<name:"chassis_id" value:"System.Embedded.1" > label:<name:"network_adapter" value:"Network Adapter View" > label:<name:"network_adapter_id" value:"NIC.Integrated.1" > label:<name:"network_port" value:"Network Port View" > label:<name:"network_port_id" value:"NIC.Integrated.1-1" > label:<name:"network_port_speed" value:"10000 Mbps" > label:<name:"network_port_type" value:"Ethernet" > label:<name:"resource" value:"network_port" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_chassis_network_port_health_state" { label:<name:"chassis_id" value:"System.Embedded.1" > label:<name:"network_adapter" value:"Network Adapter View" > label:<name:"network_adapter_id" value:"NIC.Integrated.1" > label:<name:"network_port" value:"Network Port View" > label:<name:"network_port_id" value:"NIC.Integrated.1-1" > label:<name:"network_port_speed" value:"10000 Mbps" > label:<name:"network_port_type" value:"Ethernet" > label:<name:"resource" value:"network_port" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_chassis_network_port_state" { label:<name:"chassis_id" value:"System.Embedded.1" > label:<name:"network_adapter" value:"Network Adapter View" > label:<name:"network_adapter_id" value:"NIC.Integrated.1" > label:<name:"network_port" value:"Network Port View" > label:<name:"network_port_id" value:"NIC.Integrated.1-1" > label:<name:"network_port_speed" value:"10000 Mbps" > label:<name:"network_port_type" value:"Ethernet" > label:<name:"resource" value:"network_port" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_chassis_network_port_health_state" { label:<name:"chassis_id" value:"System.Embedded.1" > label:<name:"network_adapter" value:"Network Adapter View" > label:<name:"network_adapter_id" value:"NIC.Integrated.1" > label:<name:"network_port" value:"Network Port View" > label:<name:"network_port_id" value:"NIC.Integrated.1-1" > label:<name:"network_port_speed" value:"10000 Mbps" > label:<name:"network_port_type" value:"Ethernet" > label:<name:"resource" value:"network_port" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_chassis_network_port_state" { label:<name:"chassis_id" value:"System.Embedded.1" > label:<name:"network_adapter" value:"Network Adapter View" > label:<name:"network_adapter_id" value:"NIC.Integrated.1" > label:<name:"network_port" value:"Network Port View" > label:<name:"network_port_id" value:"NIC.Integrated.1-1" > label:<name:"network_port_speed" value:"10000 Mbps" > label:<name:"network_port_type" value:"Ethernet" > label:<name:"resource" value:"network_port" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_chassis_network_port_health_state" { label:<name:"chassis_id" value:"System.Embedded.1" > label:<name:"network_adapter" value:"Network Adapter View" > label:<name:"network_adapter_id" value:"NIC.Integrated.1" > label:<name:"network_port" value:"Network Port View" > label:<name:"network_port_id" value:"NIC.Integrated.1-1" > label:<name:"network_port_speed" value:"10000 Mbps" > label:<name:"network_port_type" value:"Ethernet" > label:<name:"resource" value:"network_port" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_chassis_network_port_state" { label:<name:"chassis_id" value:"System.Embedded.1" > label:<name:"network_adapter" value:"Network Adapter View" > label:<name:"network_adapter_id" value:"NIC.Integrated.1" > label:<name:"network_port" value:"Network Port View" > label:<name:"network_port_id" value:"NIC.Integrated.1-1" > label:<name:"network_port_speed" value:"10000 Mbps" > label:<name:"network_port_type" value:"Ethernet" > label:<name:"resource" value:"network_port" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_chassis_network_port_health_state" { label:<name:"chassis_id" value:"System.Embedded.1" > label:<name:"network_adapter" value:"Network Adapter View" > label:<name:"network_adapter_id" value:"NIC.Integrated.1" > label:<name:"network_port" value:"Network Port View" > label:<name:"network_port_id" value:"NIC.Integrated.1-1" > label:<name:"network_port_speed" value:"10000 Mbps" > label:<name:"network_port_type" value:"Ethernet" > label:<name:"resource" value:"network_port" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_chassis_network_port_state" { label:<name:"chassis_id" value:"System.Embedded.1" > label:<name:"network_adapter" value:"Network Adapter View" > label:<name:"network_adapter_id" value:"NIC.Integrated.1" > label:<name:"network_port" value:"Network Port View" > label:<name:"network_port_id" value:"NIC.Integrated.1-1" > label:<name:"network_port_speed" value:"10000 Mbps" > label:<name:"network_port_type" value:"Ethernet" > label:<name:"resource" value:"network_port" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_chassis_network_port_health_state" { label:<name:"chassis_id" value:"System.Embedded.1" > label:<name:"network_adapter" value:"Network Adapter View" > label:<name:"network_adapter_id" value:"NIC.Integrated.1" > label:<name:"network_port" value:"Network Port View" > label:<name:"network_port_id" value:"NIC.Integrated.1-1" > label:<name:"network_port_speed" value:"10000 Mbps" > label:<name:"network_port_type" value:"Ethernet" > label:<name:"resource" value:"network_port" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_chassis_network_port_state" { label:<name:"chassis_id" value:"System.Embedded.1" > label:<name:"network_adapter" value:"Network Adapter View" > label:<name:"network_adapter_id" value:"NIC.Integrated.1" > label:<name:"network_port" value:"Network Port View" > label:<name:"network_port_id" value:"NIC.Integrated.1-1" > label:<name:"network_port_speed" value:"10000 Mbps" > label:<name:"network_port_type" value:"Ethernet" > label:<name:"resource" value:"network_port" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_chassis_network_port_health_state" { label:<name:"chassis_id" value:"System.Embedded.1" > label:<name:"network_adapter" value:"Network Adapter View" > label:<name:"network_adapter_id" value:"NIC.Integrated.1" > label:<name:"network_port" value:"Network Port View" > label:<name:"network_port_id" value:"NIC.Integrated.1-1" > label:<name:"network_port_speed" value:"10000 Mbps" > label:<name:"network_port_type" value:"Ethernet" > label:<name:"resource" value:"network_port" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_chassis_network_port_state" { label:<name:"chassis_id" value:"System.Embedded.1" > label:<name:"network_adapter" value:"Network Adapter View" > label:<name:"network_adapter_id" value:"NIC.Integrated.1" > label:<name:"network_port" value:"Network Port View" > label:<name:"network_port_id" value:"NIC.Integrated.1-2" > label:<name:"network_port_speed" value:"10000 Mbps" > label:<name:"network_port_type" value:"Ethernet" > label:<name:"resource" value:"network_port" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_chassis_network_port_health_state" { label:<name:"chassis_id" value:"System.Embedded.1" > label:<name:"network_adapter" value:"Network Adapter View" > label:<name:"network_adapter_id" value:"NIC.Integrated.1" > label:<name:"network_port" value:"Network Port View" > label:<name:"network_port_id" value:"NIC.Integrated.1-2" > label:<name:"network_port_speed" value:"10000 Mbps" > label:<name:"network_port_type" value:"Ethernet" > label:<name:"resource" value:"network_port" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_chassis_network_port_state" { label:<name:"chassis_id" value:"System.Embedded.1" > label:<name:"network_adapter" value:"Network Adapter View" > label:<name:"network_adapter_id" value:"NIC.Integrated.1" > label:<name:"network_port" value:"Network Port View" > label:<name:"network_port_id" value:"NIC.Integrated.1-2" > label:<name:"network_port_speed" value:"10000 Mbps" > label:<name:"network_port_type" value:"Ethernet" > label:<name:"resource" value:"network_port" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_chassis_network_port_health_state" { label:<name:"chassis_id" value:"System.Embedded.1" > label:<name:"network_adapter" value:"Network Adapter View" > label:<name:"network_adapter_id" value:"NIC.Integrated.1" > label:<name:"network_port" value:"Network Port View" > label:<name:"network_port_id" value:"NIC.Integrated.1-2" > label:<name:"network_port_speed" value:"10000 Mbps" > label:<name:"network_port_type" value:"Ethernet" > label:<name:"resource" value:"network_port" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_chassis_network_port_state" { label:<name:"chassis_id" value:"System.Embedded.1" > label:<name:"network_adapter" value:"Network Adapter View" > label:<name:"network_adapter_id" value:"NIC.Integrated.1" > label:<name:"network_port" value:"Network Port View" > label:<name:"network_port_id" value:"NIC.Integrated.1-2" > label:<name:"network_port_speed" value:"10000 Mbps" > label:<name:"network_port_type" value:"Ethernet" > label:<name:"resource" value:"network_port" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_chassis_network_port_health_state" { label:<name:"chassis_id" value:"System.Embedded.1" > label:<name:"network_adapter" value:"Network Adapter View" > label:<name:"network_adapter_id" value:"NIC.Integrated.1" > label:<name:"network_port" value:"Network Port View" > label:<name:"network_port_id" value:"NIC.Integrated.1-2" > label:<name:"network_port_speed" value:"10000 Mbps" > label:<name:"network_port_type" value:"Ethernet" > label:<name:"resource" value:"network_port" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_chassis_network_port_state" { label:<name:"chassis_id" value:"System.Embedded.1" > label:<name:"network_adapter" value:"Network Adapter View" > label:<name:"network_adapter_id" value:"NIC.Integrated.1" > label:<name:"network_port" value:"Network Port View" > label:<name:"network_port_id" value:"NIC.Integrated.1-2" > label:<name:"network_port_speed" value:"10000 Mbps" > label:<name:"network_port_type" value:"Ethernet" > label:<name:"resource" value:"network_port" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_chassis_network_port_health_state" { label:<name:"chassis_id" value:"System.Embedded.1" > label:<name:"network_adapter" value:"Network Adapter View" > label:<name:"network_adapter_id" value:"NIC.Integrated.1" > label:<name:"network_port" value:"Network Port View" > label:<name:"network_port_id" value:"NIC.Integrated.1-2" > label:<name:"network_port_speed" value:"10000 Mbps" > label:<name:"network_port_type" value:"Ethernet" > label:<name:"resource" value:"network_port" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_chassis_network_port_state" { label:<name:"chassis_id" value:"System.Embedded.1" > label:<name:"network_adapter" value:"Network Adapter View" > label:<name:"network_adapter_id" value:"NIC.Integrated.1" > label:<name:"network_port" value:"Network Port View" > label:<name:"network_port_id" value:"NIC.Integrated.1-2" > label:<name:"network_port_speed" value:"10000 Mbps" > label:<name:"network_port_type" value:"Ethernet" > label:<name:"resource" value:"network_port" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_chassis_network_port_health_state" { label:<name:"chassis_id" value:"System.Embedded.1" > label:<name:"network_adapter" value:"Network Adapter View" > label:<name:"network_adapter_id" value:"NIC.Integrated.1" > label:<name:"network_port" value:"Network Port View" > label:<name:"network_port_id" value:"NIC.Integrated.1-2" > label:<name:"network_port_speed" value:"10000 Mbps" > label:<name:"network_port_type" value:"Ethernet" > label:<name:"resource" value:"network_port" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_chassis_network_port_state" { label:<name:"chassis_id" value:"System.Embedded.1" > label:<name:"network_adapter" value:"Network Adapter View" > label:<name:"network_adapter_id" value:"NIC.Integrated.1" > label:<name:"network_port" value:"Network Port View" > label:<name:"network_port_id" value:"NIC.Integrated.1-2" > label:<name:"network_port_speed" value:"10000 Mbps" > label:<name:"network_port_type" value:"Ethernet" > label:<name:"resource" value:"network_port" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_chassis_network_port_health_state" { label:<name:"chassis_id" value:"System.Embedded.1" > label:<name:"network_adapter" value:"Network Adapter View" > label:<name:"network_adapter_id" value:"NIC.Integrated.1" > label:<name:"network_port" value:"Network Port View" > label:<name:"network_port_id" value:"NIC.Integrated.1-2" > label:<name:"network_port_speed" value:"10000 Mbps" > label:<name:"network_port_type" value:"Ethernet" > label:<name:"resource" value:"network_port" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_chassis_network_port_state" { label:<name:"chassis_id" value:"System.Embedded.1" > label:<name:"network_adapter" value:"Network Adapter View" > label:<name:"network_adapter_id" value:"NIC.Integrated.1" > label:<name:"network_port" value:"Network Port View" > label:<name:"network_port_id" value:"NIC.Integrated.1-2" > label:<name:"network_port_speed" value:"10000 Mbps" > label:<name:"network_port_type" value:"Ethernet" > label:<name:"resource" value:"network_port" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_chassis_network_port_health_state" { label:<name:"chassis_id" value:"System.Embedded.1" > label:<name:"network_adapter" value:"Network Adapter View" > label:<name:"network_adapter_id" value:"NIC.Integrated.1" > label:<name:"network_port" value:"Network Port View" > label:<name:"network_port_id" value:"NIC.Integrated.1-2" > label:<name:"network_port_speed" value:"10000 Mbps" > label:<name:"network_port_type" value:"Ethernet" > label:<name:"resource" value:"network_port" > gauge:<value:1 > } was collected before with the same name and label values

However I have no idea where that comes from, as e.g. /redfish/v1/Chassis/System.Embedded.1/NetworkAdapters/NIC.Integrated.1/NetworkPorts contains just two entries and while this particular system has several FC adapters, they all have just two ports...

jenningsloy318 commented 1 year ago

you can check now, I added 2 more lables for pcie devices. also for network ports, can you post the details json of one port ?

jenningsloy318 commented 1 year ago

I also add 2 more labels for network port, can you please try again?

fschlich commented 1 year ago

Sorry I only saw your message now. For NetworkPorts, this is the output for /redfish/v1/Chassis/System.Embedded.1/NetworkAdapters/NIC.Integrated.1/NetworkPorts/NIC.Integrated.1-1, is that what you were thinking of?

Regarding PCIeDevices, I'm not sure what you are looking for exactly?

curl .../redfish/v1/Systems/System.Embedded.1/PCIeDevices/135-0 | jq
{
  "@odata.context": "/redfish/v1/$metadata#PCIeDevice.PCIeDevice",
  "@odata.etag": "1663057831",
  "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/135-0",
  "@odata.type": "#PCIeDevice.v1_4_0.PCIeDevice",
  "Assembly": {
    "@odata.id": "/redfish/v1/Chassis/System.Embedded.1/Assembly"
  },
  "AssetTag": null,
  "Description": "QLE2742 Dual Port 32Gb FC to PCIe Gen3 x8 Adapter",
  "DeviceType": "MultiFunction",
  "FirmwareVersion": "15.05.12",
  "Id": "135-0",
  "Links": {
    "Chassis": [
      {
        "@odata.id": "/redfish/v1/Chassis/System.Embedded.1"
      }
    ],
    "Chassis@odata.count": 1,
    "PCIeFunctions": [
      {
        "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/135-0/PCIeFunctions/135-0-1"
      },
      {
        "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/135-0/PCIeFunctions/135-0-0"
      }
    ],
    "PCIeFunctions@odata.count": 2
  },
  "Manufacturer": "QLogic Corp.",
  "Model": null,
  "Name": "QLE2742 Dual Port 32Gb FC to PCIe Gen3 x8 Adapter",
  "PartNumber": "0T3PK5",
  "SKU": null,
  "SerialNumber": "MY1366498553LA",
  "Status": {
    "Health": "OK",
    "HealthRollup": "OK",
    "State": "Enabled"
  }
}

and on the host:

$ lspci | grep QLogic
3b:00.0 Fibre Channel: QLogic Corp. ISP2722-based 16/32Gb Fibre Channel to PCIe Adapter (rev 01)
3b:00.1 Fibre Channel: QLogic Corp. ISP2722-based 16/32Gb Fibre Channel to PCIe Adapter (rev 01)
5e:00.0 Fibre Channel: QLogic Corp. ISP2722-based 16/32Gb Fibre Channel to PCIe Adapter (rev 01)
5e:00.1 Fibre Channel: QLogic Corp. ISP2722-based 16/32Gb Fibre Channel to PCIe Adapter (rev 01)
5f:00.0 Fibre Channel: QLogic Corp. ISP2722-based 16/32Gb Fibre Channel to PCIe Adapter (rev 01)
5f:00.1 Fibre Channel: QLogic Corp. ISP2722-based 16/32Gb Fibre Channel to PCIe Adapter (rev 01)
87:00.0 Fibre Channel: QLogic Corp. ISP2722-based 16/32Gb Fibre Channel to PCIe Adapter (rev 01)
87:00.1 Fibre Channel: QLogic Corp. ISP2722-based 16/32Gb Fibre Channel to PCIe Adapter (rev 01)
jenningsloy318 commented 1 year ago

can you update status from your side?

fschlich commented 1 year ago

So with rev 1a7a02758, the PCIeDevice issue is not fixed, but I don't see the network_port issues any more.

An error has occurred while serving metrics:

16 error(s) occurred:
* [from Gatherer #2] collected metric "redfish_system_pcie_device_state" { label:<name:"hostname" value:"" > label:<name:"pcie_device" value:"QLE2742 Dual Port 32Gb FC to PCIe Gen3 x8 Adapter" > label:<name:"pcie_device_id" value:"135-0" > label:<name:"pcie_device_partnumber" value:"0T3TK5" > label:<name:"pcie_device_type" value:"MultiFunction," > label:<name:"pcie_serial_number" value:"MY1355498553LA" > label:<name:"resource" value:"pcie_device" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_system_pcie_device_health_state" { label:<name:"hostname" value:"" > label:<name:"pcie_device" value:"QLE2742 Dual Port 32Gb FC to PCIe Gen3 x8 Adapter" > label:<name:"pcie_device_id" value:"135-0" > label:<name:"pcie_device_partnumber" value:"0T3TK5" > label:<name:"pcie_device_type" value:"MultiFunction," > label:<name:"pcie_serial_number" value:"MY1355498553LA" > label:<name:"resource" value:"pcie_device" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_system_pcie_device_state" { label:<name:"hostname" value:"" > label:<name:"pcie_device" value:"MT27700 Family [ConnectX-4]" > label:<name:"pcie_device_id" value:"216-0" > label:<name:"pcie_device_partnumber" value:"00272F" > label:<name:"pcie_device_type" value:"MultiFunction," > label:<name:"pcie_serial_number" value:"IL7403186L00A9" > label:<name:"resource" value:"pcie_device" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_system_pcie_device_health_state" { label:<name:"hostname" value:"" > label:<name:"pcie_device" value:"MT27700 Family [ConnectX-4]" > label:<name:"pcie_device_id" value:"216-0" > label:<name:"pcie_device_partnumber" value:"00272F" > label:<name:"pcie_device_type" value:"MultiFunction," > label:<name:"pcie_serial_number" value:"IL7403186L00A9" > label:<name:"resource" value:"pcie_device" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_system_pcie_device_state" { label:<name:"hostname" value:"" > label:<name:"pcie_device" value:"QLE2742 Dual Port 32Gb FC to PCIe Gen3 x8 Adapter" > label:<name:"pcie_device_id" value:"59-0" > label:<name:"pcie_device_partnumber" value:"0T3TK5" > label:<name:"pcie_device_type" value:"MultiFunction," > label:<name:"pcie_serial_number" value:"MY1355498553L6" > label:<name:"resource" value:"pcie_device" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_system_pcie_device_health_state" { label:<name:"hostname" value:"" > label:<name:"pcie_device" value:"QLE2742 Dual Port 32Gb FC to PCIe Gen3 x8 Adapter" > label:<name:"pcie_device_id" value:"59-0" > label:<name:"pcie_device_partnumber" value:"0T3TK5" > label:<name:"pcie_device_type" value:"MultiFunction," > label:<name:"pcie_serial_number" value:"MY1355498553L6" > label:<name:"resource" value:"pcie_device" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_system_pcie_device_state" { label:<name:"hostname" value:"" > label:<name:"pcie_device" value:"QLE2742 Dual Port 32Gb FC to PCIe Gen3 x8 Adapter" > label:<name:"pcie_device_id" value:"95-0" > label:<name:"pcie_device_partnumber" value:"0T3TK5" > label:<name:"pcie_device_type" value:"MultiFunction," > label:<name:"pcie_serial_number" value:"MY1355498553LR" > label:<name:"resource" value:"pcie_device" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_system_pcie_device_health_state" { label:<name:"hostname" value:"" > label:<name:"pcie_device" value:"QLE2742 Dual Port 32Gb FC to PCIe Gen3 x8 Adapter" > label:<name:"pcie_device_id" value:"95-0" > label:<name:"pcie_device_partnumber" value:"0T3TK5" > label:<name:"pcie_device_type" value:"MultiFunction," > label:<name:"pcie_serial_number" value:"MY1355498553LR" > label:<name:"resource" value:"pcie_device" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_system_pcie_device_state" { label:<name:"hostname" value:"" > label:<name:"pcie_device" value:"C621 Series Chipset LPC/eSPI Controller" > label:<name:"pcie_device_id" value:"0-31" > label:<name:"pcie_device_partnumber" value:"" > label:<name:"pcie_device_type" value:"MultiFunction," > label:<name:"pcie_serial_number" value:"" > label:<name:"resource" value:"pcie_device" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_system_pcie_device_health_state" { label:<name:"hostname" value:"" > label:<name:"pcie_device" value:"C621 Series Chipset LPC/eSPI Controller" > label:<name:"pcie_device_id" value:"0-31" > label:<name:"pcie_device_partnumber" value:"" > label:<name:"pcie_device_type" value:"MultiFunction," > label:<name:"pcie_serial_number" value:"" > label:<name:"resource" value:"pcie_device" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_system_pcie_device_state" { label:<name:"hostname" value:"" > label:<name:"pcie_device" value:"NetXtreme E-Series Advanced Dual-port 25Gb SFP28 Network Daughter Card" > label:<name:"pcie_device_id" value:"24-0" > label:<name:"pcie_device_partnumber" value:"06WMMV" > label:<name:"pcie_device_type" value:"MultiFunction," > label:<name:"pcie_serial_number" value:"VNFCVBA96P0087" > label:<name:"resource" value:"pcie_device" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_system_pcie_device_health_state" { label:<name:"hostname" value:"" > label:<name:"pcie_device" value:"NetXtreme E-Series Advanced Dual-port 25Gb SFP28 Network Daughter Card" > label:<name:"pcie_device_id" value:"24-0" > label:<name:"pcie_device_partnumber" value:"06WMMV" > label:<name:"pcie_device_type" value:"MultiFunction," > label:<name:"pcie_serial_number" value:"VNFCVBA96P0087" > label:<name:"resource" value:"pcie_device" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_system_pcie_device_state" { label:<name:"hostname" value:"" > label:<name:"pcie_device" value:"QLE2742 Dual Port 32Gb FC to PCIe Gen3 x8 Adapter" > label:<name:"pcie_device_id" value:"94-0" > label:<name:"pcie_device_partnumber" value:"0T3TK5" > label:<name:"pcie_device_type" value:"MultiFunction," > label:<name:"pcie_serial_number" value:"MY1355498553L8" > label:<name:"resource" value:"pcie_device" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_system_pcie_device_health_state" { label:<name:"hostname" value:"" > label:<name:"pcie_device" value:"QLE2742 Dual Port 32Gb FC to PCIe Gen3 x8 Adapter" > label:<name:"pcie_device_id" value:"94-0" > label:<name:"pcie_device_partnumber" value:"0T3TK5" > label:<name:"pcie_device_type" value:"MultiFunction," > label:<name:"pcie_serial_number" value:"MY1355498553L8" > label:<name:"resource" value:"pcie_device" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_system_pcie_device_state" { label:<name:"hostname" value:"" > label:<name:"pcie_device" value:"C620 Series Chipset Family PCI Express Root Port #1" > label:<name:"pcie_device_id" value:"0-28" > label:<name:"pcie_device_partnumber" value:"" > label:<name:"pcie_device_type" value:"MultiFunction," > label:<name:"pcie_serial_number" value:"" > label:<name:"resource" value:"pcie_device" > gauge:<value:1 > } was collected before with the same name and label values
* [from Gatherer #2] collected metric "redfish_system_pcie_device_health_state" { label:<name:"hostname" value:"" > label:<name:"pcie_device" value:"C620 Series Chipset Family PCI Express Root Port #1" > label:<name:"pcie_device_id" value:"0-28" > label:<name:"pcie_device_partnumber" value:"" > label:<name:"pcie_device_type" value:"MultiFunction," > label:<name:"pcie_serial_number" value:"" > label:<name:"resource" value:"pcie_device" > gauge:<value:1 > } was collected before with the same name and label values

The above is from the server that had the network_port issue, which is a different server than the one I was using for tests last week. This one has the following PCIeDevices:

  "PCIeDevices": [
    {
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/0-28"
    },
    {
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/0-31"
    },
    {
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/3-0"
    },
    {
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/0-17"
    },
    {
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/0-0"
    },
    {
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/135-0"
    },
    {
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/135-0"
    },
    {
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/216-0"
    },
    {
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/216-0"
    },
    {
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/59-0"
    },
    {
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/59-0"
    },
    {
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/95-0"
    },
    {
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/95-0"
    },
    {
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/0-31"
    },
    {
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/24-0"
    },
    {
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/24-0"
    },
    {
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/134-0"
    },
    {
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/94-0"
    },
    {
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/94-0"
    },
    {
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/0-28"
    },
    {
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/0-23"
    }
  ],
  "PCIeDevices@odata.count": 21,

Requesting /redfish/v1/Systems/System.Embedded.1/PCIeDevices/135-0 gives me

{
  "@odata.context": "/redfish/v1/$metadata#PCIeDevice.PCIeDevice",
  "@odata.etag": "1663057831",
  "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/135-0",
  "@odata.type": "#PCIeDevice.v1_4_0.PCIeDevice",
  "Assembly": {
    "@odata.id": "/redfish/v1/Chassis/System.Embedded.1/Assembly"
  },
  "AssetTag": null,
  "Description": "QLE2742 Dual Port 32Gb FC to PCIe Gen3 x8 Adapter",
  "DeviceType": "MultiFunction",
  "FirmwareVersion": "15.05.12",
  "Id": "135-0",
  "Links": {
    "Chassis": [
      {
        "@odata.id": "/redfish/v1/Chassis/System.Embedded.1"
      }
    ],
    "Chassis@odata.count": 1,
    "PCIeFunctions": [
      {
        "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/135-0/PCIeFunctions/135-0-1"
      },
      {
        "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/135-0/PCIeFunctions/135-0-0"
      }
    ],
    "PCIeFunctions@odata.count": 2
  },
  "Manufacturer": "QLogic Corp.",
  "Model": null,
  "Name": "QLE2742 Dual Port 32Gb FC to PCIe Gen3 x8 Adapter",
  "PartNumber": "0T3TK5",
  "SKU": null,
  "SerialNumber": "MY1355498553LA",
  "Status": {
    "Health": "OK",
    "HealthRollup": "OK",
    "State": "Enabled"
  }
}

And for the two PCIeFunctions, this is

{
  "@odata.context": "/redfish/v1/$metadata#PCIeFunction.PCIeFunction",
  "@odata.etag": "1663057831",
  "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/135-0/PCIeFunctions/135-0-1",
  "@odata.type": "#PCIeFunction.v1_2_3.PCIeFunction",
  "ClassCode": "0x00000c",
  "Description": "QLE2742 Dual Port 32Gb FC to PCIe Gen3 x8 Adapter",
  "DeviceClass": "SerialBusController",
  "DeviceId": "0x2261",
  "FunctionId": 1,
  "FunctionType": "Physical",
  "Id": "135-0-1",
  "Links": {
    "Drives": [],
    "Drives@odata.count": 0,
    "EthernetInterfaces": [],
    "EthernetInterfaces@odata.count": 0,
    "PCIeDevice": {
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/135-0"
    },
    "StorageControllers": [],
    "StorageControllers@odata.count": 0
  },
  "Name": "QLE2742 Dual Port 32Gb FC to PCIe Gen3 x8 Adapter",
  "Oem": {
    "Dell": {
      "@odata.type": "#DellOem.v1_2_0.DellOemResources",
      "DellPCIeFunction": {
        "@odata.context": "/redfish/v1/$metadata#DellPCIeFunction.DellPCIeFunction",
        "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/135-0/PCIeFunctions/135-0-1/Oem/Dell/DellPCIeFunctions/FC.Slot.7-2",
        "@odata.type": "#DellPCIeFunction.v1_3_0.DellPCIeFunction",
        "DataBusWidth": "8XOrX8",
        "Description": "An instance of DellPCIeFunction will have PCI device specific data.",
        "Id": "FC.Slot.7-2",
        "LastSystemInventoryTime": "2022-08-30T13:57:06+00:00",
        "LastUpdateTime": "2022-08-30T12:57:03+00:00",
        "Name": "DellPCIeFunction",
        "SlotLength": "LongLength",
        "SlotType": "PCIExpressGen3X16"
      }
    }
  },
  "RevisionId": "0x01",
  "Status": {
    "Health": "OK",
    "HealthRollup": "OK",
    "State": "Enabled"
  },
  "SubsystemId": "0x02ac",
  "SubsystemVendorId": "0x1077",
  "VendorId": "0x1077"
}

and


{
  "@odata.context": "/redfish/v1/$metadata#PCIeFunction.PCIeFunction",
  "@odata.etag": "1663057831",
  "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/135-0/PCIeFunctions/135-0-0",
  "@odata.type": "#PCIeFunction.v1_2_3.PCIeFunction",
  "ClassCode": "0x00000c",
  "Description": "QLE2742 Dual Port 32Gb FC to PCIe Gen3 x8 Adapter",
  "DeviceClass": "SerialBusController",
  "DeviceId": "0x2261",
  "FunctionId": 0,
  "FunctionType": "Physical",
  "Id": "135-0-0",
  "Links": {
    "Drives": [],
    "Drives@odata.count": 0,
    "EthernetInterfaces": [],
    "EthernetInterfaces@odata.count": 0,
    "PCIeDevice": {
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/135-0"
    },
    "StorageControllers": [],
    "StorageControllers@odata.count": 0
  },
  "Name": "QLE2742 Dual Port 32Gb FC to PCIe Gen3 x8 Adapter",
  "Oem": {
    "Dell": {
      "@odata.type": "#DellOem.v1_2_0.DellOemResources",
      "DellPCIeFunction": {
        "@odata.context": "/redfish/v1/$metadata#DellPCIeFunction.DellPCIeFunction",
        "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/135-0/PCIeFunctions/135-0-0/Oem/Dell/DellPCIeFunctions/FC.Slot.7-1",
        "@odata.type": "#DellPCIeFunction.v1_3_0.DellPCIeFunction",
        "DataBusWidth": "8XOrX8",
        "Description": "An instance of DellPCIeFunction will have PCI device specific data.",
        "Id": "FC.Slot.7-1",
        "LastSystemInventoryTime": "2022-08-30T13:57:06+00:00",
        "LastUpdateTime": "2022-08-30T12:57:03+00:00",
        "Name": "DellPCIeFunction",
        "SlotLength": "LongLength",
        "SlotType": "PCIExpressGen3X16"
      }
    }
  },
  "RevisionId": "0x01",
  "Status": {
    "Health": "OK",
    "HealthRollup": "OK",
    "State": "Enabled"
  },
  "SubsystemId": "0x02ac",
  "SubsystemVendorId": "0x1077",
  "VendorId": "0x1077"
}
jenningsloy318 commented 1 year ago

I saw there 2 two identical entries

    {
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/135-0"
    },
    {
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/PCIeDevices/135-0"
    },

maybe this is a bug on your firmware? since you device expose this entry twice, so this export will scrape it twice. so that's the problem. I think there nothing I can help now. theritically any entity can only expose once.

I know there are two pciefunctions of this pcidevice, but that's the sub-level of pciedevice, so there are different entities.

fschlich commented 1 year ago

Yes I think that's where the problem is. I don't know whether the firmware is buggy, or the spec allows for this kind of redundant information...