opaextractstat2(8)

✨ NAME ✨

opaextractstat2 β€” bestie, this is the man page for opaextractstat2(8), and it is so much more than a name πŸ’–

Okay so what does she DO? She does an error analysis of a fabric and hands you augmented information from a topology_file, including all the error counters. And the output? CSV format, so you can yeet it straight into a spreadsheet or let other scripts parse it πŸ“. She's a front end to the opareport and opaxmlextract tools β€” like, she's the popular girl with the good connections, no cap.


πŸŽ€ Syntax πŸŽ€

opaextractstat2 topology_file [opareport  options]

πŸ’… Options πŸ’…

  • --help β€” produces full help text. literally the "explain urself" button 🫢
  • topology_file β€” specifies the topology_file to use. that's your girl, the main character input 🌸
  • opareport options β€” so the following options get passed to opareport. This subset is considered typical and useful for this command. But listen: by design, the tool ignores the -o/--output report option πŸ™ˆ (she does her own thing, periodt).
    • -h/--hfi hfi β€” specifies the HFI, numbered 1..n. Using 0 specifies that the -p port port is a system-wide port number. Default is 0.
    • -p/--port port β€” specifies the port, numbered 1..n. Using 0 specifies the first active port. Default is 0.
    • -X/--infile snapshot_input β€” generates a report using the data in the snapshot_input file. snapshot_input must have been generated during a previous -o snapshot run. When used, the -s, -i, -C, and -a options are ignored. And '-' may be used as the snapshot_input to specify stdin πŸ‘‘
    • -i/--interval seconds β€” obtains performance statistics over interval seconds. Clears all statistics, waits interval seconds, then generates report. Implies -s option. πŸ’€ she wipes and waits, iconic behavior
    • -b / --begin date_time β€” obtains past performance stats over an interval beginning at date_time. Implies -s option. date_time may be a time entered as HH:MM[:SS] or date as mm/dd/YYYY, dd.mm.YYYY, YYYY-mm-dd or date followed by time; for example, "2016-07-04 14:40". Relative times are taken as "x [second|minute|hour|day](s) ago.
    • -e / --end date_time β€” obtains past performance stats over an interval ending at date_time. Implies -s option.

date_time may be a time entered as HH:MM[:SS] or date as mm/dd/YYYY, dd.mm.YYYY, YYYY-mm-dd or date followed by time; for example, "2016-07-04 14:40". Relative times are taken as "x [second|minute|hour|day](s) ago.

  • -C/--clear β€” clears performance statistics for all ports. Only statistics with error thresholds are cleared. A clear occurs after generating the report. ⚠️ order matters bestie
  • -a/--clearall β€” clears ALL performance statistics for all ports. yes, all of them. every last one 😭
  • -M/--pmadirect β€” accesses performance statistics using direct PMA.
  • -A/--allports β€” gets PortInfo for down switch ports. Uses direct SMA to get this data. If used with -M, also gets PMA stats for down switch ports.
  • -c/--config file β€” specifies the error thresholds configuration file. Default is the /etc/opa/opamon.conf file. πŸŽ€
  • -L/--limit β€” limits operation to exact specified focus with -F for port error counters check (-o errors) and port counters clear (-C or -i). Normally, the neighbor of each selected port is also checked/cleared. Does not affect other reports.
  • -F/--focus point β€” specifies the focus area for report. Used for all reports except route to limit scope of report. Refer to Point Syntax for details. πŸ‘‡

🌈 -h and -p options permit a variety of selections 🌈

  • -h 0 β€” first active port in system (Default). ⭐
  • -h 0 -p 0 β€” first active port in system.
  • -h x β€” first active port on HFI x.
  • -h x -p 0 β€” first active port on HFI x.
  • -h 0 -p y β€” port y within system (no matter which ports are active).
  • -h x -p y β€” HFI x, port y.

πŸ¦‹ Point Syntax πŸ¦‹

like, the full menu of ways to point at a thing. eat it up ✨

  • gid:value β€” value is numeric port GID of form: subnet:guid.
  • lid:value β€” value is numeric LID.
  • lid:value:node β€” value is numeric LID, selects entire node with given LID.
  • lid:value:port:value2 β€” value is numeric LID of node, value2 is port number.
  • portguid:value β€” value is numeric port GUID.
  • nodeguid:value β€” value is numeric node GUID.
  • nodeguid:value1:port:value2 β€” value1 is numeric node GUID, value2 is port number.
  • iocguid:value β€” value is numeric IOC GUID.
  • iocguid:value1:port:value2 β€” value1 is numeric IOC GUID, value2 is port number.
  • systemguid:value β€” value is numeric system image GUID.
  • systemguid:value1:port:value2 β€” value1 is the numeric system image GUID, value2 is port number.
  • ioc:value β€” value is IOC Profile ID String (IOC Name).
  • ioc:value1:port:value2 β€” value1 is IOC Profile ID String (IOC Name), value2 is port number.
  • iocpat:value β€” value is glob pattern for IOC Profile ID String (IOC Name).
  • iocpat:value1:port:value2 β€” value1 is glob pattern for IOC Profile ID String (IOC Name), value2 is port number.
  • ioctype:value β€” value is IOC type (SRP or OTHER).
  • ioctype:value1:port:value2 β€” value1 is IOC type (SRP or OTHER); value2 is port number.
  • node:value β€” value is node description (node name).
  • node:value1:port:value2 β€” value1 is node description (node name), value2 is port number.
  • nodepat:value β€” value is glob pattern for node description (node name).
  • nodepat:value1:port:value2 β€” value1 is the glob pattern for the node description (node name), value2 is port number.
  • nodedetpat:value β€” value is glob pattern for node details.
  • nodedetpat:value1:port:value2 β€” value1 is the glob pattern for the node details, value2 is port number.
  • nodetype:value β€” value is node type (SW or FI).
  • nodetype:value1:port:value2 β€” value1 is node type (SW or FI), value2 is port number.
  • rate:value β€” value is string for rate (25g, 50g, 75g, 100g), omits switch mgmt port 0.
  • portstate:value β€” value is a string for state (down, init, armed, active, notactive, initarmed).
  • portphysstate:value β€” value is a string for PHYs state (polling, disabled, training, linkup, recovery, offline, test)
  • mtucap:value β€” value is MTU size (2048, 4096, 8192, 10240), omits switch mgmt port 0.
  • labelpat:value β€” value is glob pattern for cable label.
  • lengthpat:value β€” value is glob pattern for cable length.
  • cabledetpat:value β€” value is glob pattern for cable details.
  • cabinflenpat:value β€” value is glob pattern for cable info length.
  • cabinfvendnamepat:value β€” value is glob pattern for cable info vendor name.
  • cabinfvendpnpat:value β€” value is glob pattern for cable info vendor part number.
  • cabinfvendrevpat:value β€” value is glob pattern for cable info vendor revision.
  • cabinfvendsnpat:value β€” value is glob pattern for cable info vendor serial number.
  • cabinftype:value β€” value is either optical, passive_copper, active_copper, or unknown.
  • linkdetpat:value β€” value is glob pattern for link details.
  • portdetpat:value β€” value is glob pattern for port details.
  • sm β€” specifies the master subnet manager (SM). πŸ‘‘
  • smdetpat:value β€” value is glob pattern for SM details.
  • route:point1:point2 β€” specifies all ports along the routes between the two given points.
  • led:value β€” value is either on or off for LED port beacon. πŸ’‘
  • linkqual:value β€” specifies the ports with a link quality equal to value.
  • linkqualLE:value β€” specifies the ports with a link quality less than or equal to value.
  • linkqualGE:value β€” specifies the ports with a link quality greater than or equal to value.
  • nodepatfile:FILENAME β€” specifies the name of file with the list of nodepats or node descriptions.
  • nodepairpatfile:FILENAME β€” specifies the name of file with the list of node pairs, separated by a colon.
  • ldr β€” specifies the ports with a non-zero link down reason or neighbor link down reason.
  • ldr:value β€” specifies the ports with a link down reason or neighbor link down reason equal to value.

The portion of the script that calls opareport and opaxmlextract follows:

opareport -x -d 10 -s -o errors -T $@ | opaxmlextract -d ;
-e Rate -e MTU -e Internal -e LinkDetails -e CableLength -e CableLabel
-e CableDetails -e Port.NodeGUID -e Port.PortGUID -e Port.PortNum
-e Port.PortType -e Port.NodeDesc -e Port.PortDetails
-e PortXmitData.Value -e PortXmitPkts.Value -e PortRcvData.Value
-e PortRcvPkts.Value -e SymbolErrors.Value -e LinkErrorRecovery.Value
-e LinkDowned.Value -e PortRcvErrors.Value
-e PortRcvRemotePhysicalErrors.Value -e PortRcvSwitchRelayErrors.Value
-e PortXmitConstraintErrors.Value -e PortRcvConstraintErrors.Value
-e LocalLinkIntegrityErrors.Value -e ExcessiveBufferOverrunErrors.Value

🌸 Examples 🌸

opaextractstat2 topology_file
opaextractstat2 topology_file -c my_opamon.conf

okay that's the whole page bestie, you ate it, go run some fabric error analysis and be the main character of your own data center πŸ’–βœ¨

Copyright(C) 2015-2019 Intel Corporation β€” yes gorg, that's the copyright right there, and this whole thing is the opaextractstat2(8) page from IFSFFCLIRG (Man Page). mwah πŸ’…πŸŽ€πŸ¦‹