Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
109 commits
Select commit Hold shift + click to select a range
a8cb488
updates to taskresult
alexandraBara Feb 19, 2026
1548ec9
updates
alexandraBara Feb 20, 2026
e231169
updates
alexandraBara Feb 20, 2026
e19b8fa
initial commit
jaspals3123 Feb 20, 2026
b4541e5
Merge latest changes from development
jaspals3123 Feb 23, 2026
b0f0f96
added intf name in log
jaspals3123 Feb 23, 2026
0d75c90
fixed log messages
jaspals3123 Feb 23, 2026
1ab3783
tests fix
jaspals3123 Feb 23, 2026
28a9062
review fixes
jaspals3123 Feb 25, 2026
79deddd
data fix
jaspals3123 Feb 25, 2026
1fbd465
Merge branch 'development' into jaspal_rdma_ns
jaspals3123 Feb 25, 2026
5f10a58
added topology, metric, bad-pages, xgmi
alexandraBara Feb 25, 2026
1008b80
ethtool ES changes
jaspals3123 Feb 26, 2026
5b0b5bd
utests enhancements
alexandraBara Feb 27, 2026
7cb967c
fix
alexandraBara Mar 2, 2026
0ef5903
fix for utests being moved
alexandraBara Mar 2, 2026
f08b337
added expected/actual
alexandraBara Mar 2, 2026
f14fe90
addressing review comments
jaspals3123 Mar 2, 2026
9dbfccd
fix printout
alexandraBara Mar 2, 2026
e7a9d4f
fix printout
alexandraBara Mar 2, 2026
89e1245
enabled sudo
alexandraBara Mar 2, 2026
19e06d2
ommiting commands with largs output from the datamodel
alexandraBara Mar 2, 2026
033a8a1
ommiting more large cmds from datamodel
alexandraBara Mar 2, 2026
5be94ed
readdding to datamodel
alexandraBara Mar 2, 2026
5cc3598
artif only
alexandraBara Mar 2, 2026
59eaf7a
adding collection args to the PLUGIN_DOC.md as well
alexandraBara Mar 2, 2026
cac8a07
fixed
alexandraBara Mar 2, 2026
8721dd2
collector args added to overwrite rocm_path
alexandraBara Mar 2, 2026
aa93fa8
utest
alexandraBara Mar 2, 2026
f9dd9b4
some renames
alexandraBara Mar 2, 2026
e0ad4c7
utest fix
alexandraBara Mar 2, 2026
a55ed37
Merge branch 'development' into alex_es_updates
alexandraBara Mar 3, 2026
073288a
Merge pull request #132 from amd/alex_es_updates
alexandraBara Mar 3, 2026
b056b8d
Merge branch 'development' into alex_amdsmi
alexandraBara Mar 3, 2026
896629e
adding collection_args to dumping reference config + update utest to …
alexandraBara Mar 3, 2026
a44de8b
Merge branch 'development' into jaspal_ethtool_ns
alexandraBara Mar 3, 2026
9d72cb1
Merge branch 'development' into alex_rocm
alexandraBara Mar 3, 2026
07206b4
Merge pull request #138 from amd/jaspal_ethtool_ns
alexandraBara Mar 4, 2026
b647c7f
Merge branch 'development' into alex_rocm
alexandraBara Mar 4, 2026
ed15928
Merge pull request #143 from amd/alex_rocm
alexandraBara Mar 4, 2026
9ecb4b3
merged dev
alexandraBara Mar 4, 2026
f4cdea5
added analyzer for support_rdma check
alexandraBara Mar 4, 2026
35427b5
rename
alexandraBara Mar 4, 2026
dafa0ec
niccli -> nic folder rename
alexandraBara Mar 4, 2026
616e356
rdma cmds from fabric plugin
jaspals3123 Mar 4, 2026
34692f0
Merge branch 'development' into jaspal_rdma_ns
alexandraBara Mar 4, 2026
adb0ae1
more analysis added
alexandraBara Mar 4, 2026
a05be7f
more analysis aded
alexandraBara Mar 4, 2026
5736723
Merge pull request #135 from amd/jaspal_rdma_ns
alexandraBara Mar 4, 2026
e999b47
functional test
alexandraBara Mar 4, 2026
26c4e6f
regex added for log search
alexandraBara Mar 4, 2026
bf0c74f
merged develop
alexandraBara Mar 4, 2026
698a06d
renamed Collection->collection args to avoid col confusion
alexandraBara Mar 4, 2026
a300351
Merge branch 'development' into alex_amdsmi
alexandraBara Mar 4, 2026
3ee9c2d
Merge pull request #141 from amd/alex_coll_args
alexandraBara Mar 4, 2026
8fa4461
removed amdtst test
alexandraBara Mar 5, 2026
da7d6ff
initial commit
jaspals3123 Mar 5, 2026
f7f568c
readme change
jaspals3123 Mar 5, 2026
d153d64
very_ssl fix + utest + plugin_config merge fix
alexandraBara Mar 6, 2026
4d82868
Merge branch 'development' into alex_amdsmi
alexandraBara Mar 6, 2026
02b3b54
cleanup
alexandraBara Mar 6, 2026
54ebaec
Merge pull request #142 from amd/alex_amdsmi
alexandraBara Mar 9, 2026
70bbcc6
added option to overwrite api_root
alexandraBara Mar 9, 2026
8b207be
readme correction
Mar 9, 2026
a674196
Merge branch 'development' into alex_redfish
alexandraBara Mar 9, 2026
7f741d2
RedfishOemDiagPlugin
alexandraBara Mar 9, 2026
a4798a4
addressd reviews + utest
alexandraBara Mar 9, 2026
bf4e809
docs: Update plugin documentation [automated]
github-actions[bot] Mar 10, 2026
946c551
Merge branch 'development' into jaspal_allplugins
alexandraBara Mar 10, 2026
27eb13a
Merge pull request #146 from amd/alex_redfish
alexandraBara Mar 10, 2026
44a6ecf
Merge branch 'development' into jaspal_allplugins
alexandraBara Mar 10, 2026
7dd1660
merged develop
alexandraBara Mar 10, 2026
2e723b6
Merge pull request #144 from amd/jaspal_allplugins
alexandraBara Mar 10, 2026
41c324d
Merge branch 'development' into automated-plugin-docs-update
alexandraBara Mar 10, 2026
bae6295
cleanup
alexandraBara Mar 10, 2026
d396b72
Merge pull request #147 from amd/automated-plugin-docs-update
alexandraBara Mar 10, 2026
c6cffec
Merge branch 'development' into alex_oem_diag
alexandraBara Mar 10, 2026
ca09e13
missed README update
alexandraBara Mar 10, 2026
c586dea
Add Slingshot fallback for FabricsPlugin
bkumar-amd Mar 10, 2026
1413d20
addressed reviews + utest
alexandraBara Mar 11, 2026
da384fd
utests for the plugins
alexandraBara Mar 11, 2026
4608841
addressed reviews
alexandraBara Mar 11, 2026
5901e14
printout fix to display concat failures
alexandraBara Mar 11, 2026
8b0eeb5
pytest fix
alexandraBara Mar 11, 2026
2b76e6d
Merge pull request #148 from amd/alex_oem_diag
alexandraBara Mar 11, 2026
7f14e9e
Merge branch 'development' into alex_endpoint_fix
alexandraBara Mar 11, 2026
026c29c
utest updates
alexandraBara Mar 11, 2026
3dcd3d2
Merge pull request #151 from amd/alex_endpoint_fix
alexandraBara Mar 11, 2026
c3fc7d8
Apply pre-commit formatting for Fabrics PR
bkumar-amd Mar 12, 2026
bf169a7
update
alexandraBara Mar 12, 2026
8711476
version check
Mar 12, 2026
c9a5277
Merge branch 'development' into jaspal_niccli
jaspals3123 Mar 12, 2026
461f797
utest update
alexandraBara Mar 12, 2026
735c649
Merge branch 'development' into pr/bhupesh-fabrics-slingshot
alexandraBara Mar 12, 2026
183f4f3
Merge pull request #149 from amd/pr/bhupesh-fabrics-slingshot
alexandraBara Mar 12, 2026
df415e7
Merge branch 'development' into alex_sys_update
alexandraBara Mar 12, 2026
26e1b0c
Merge pull request #152 from amd/alex_sys_update
alexandraBara Mar 12, 2026
0c608af
test fix
Mar 12, 2026
2eaa16a
network test fix
Mar 12, 2026
a620a3a
logging stderr to events.json for better err detail collection
alexandraBara Mar 12, 2026
b54f199
some args in plugin config
Mar 12, 2026
980e83a
Merge branch 'development' into jaspal_niccli
jaspals3123 Mar 12, 2026
b0c44cd
docs: Update plugin documentation [automated]
github-actions[bot] Mar 13, 2026
8e4d1ce
comment & header fix
Mar 13, 2026
595f7a1
Merge pull request #153 from amd/jaspal_niccli
alexandraBara Mar 13, 2026
d4d091a
Merge branch 'development' into automated-plugin-docs-update
alexandraBara Mar 13, 2026
ff03000
Merge pull request #154 from amd/automated-plugin-docs-update
alexandraBara Mar 13, 2026
0b9938b
docs: Update plugin documentation [automated]
github-actions[bot] Mar 13, 2026
e247709
Merge pull request #156 from amd/automated-plugin-docs-update
alexandraBara Mar 13, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
145 changes: 141 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ system debug.
- ['run-plugins' sub command](#run-plugins-sub-command)
- ['gen-plugin-config' sub command](#gen-plugin-config-sub-command)
- ['compare-runs' subcommand](#compare-runs-subcommand)
- ['show-redfish-oem-allowable' subcommand](#show-redfish-oem-allowable-subcommand)
- ['summary' sub command](#summary-sub-command)
- [Configs](#configs)
- [Global args](#global-args)
Expand Down Expand Up @@ -85,7 +86,7 @@ options:
--sys-platform STRING
Specify system platform (default: None)
--plugin-configs [STRING ...]
built-in config names or paths to plugin config JSONs. Available built-in configs: NodeStatus (default: None)
built-in config names or paths to plugin config JSONs. Available built-in configs: AllPlugins, NodeStatus (default: None)
--system-config STRING
Path to system config json (default: None)
--connection-config STRING
Expand Down Expand Up @@ -116,6 +117,8 @@ node-scraper --sys-name <remote_host> --sys-location REMOTE --connection-config

##### Example: connection_config.json

In-band (SSH) connection:

```json
{
"InBandConnectionManager": {
Expand All @@ -128,6 +131,24 @@ node-scraper --sys-name <remote_host> --sys-location REMOTE --connection-config
}
```

Redfish (BMC) connection for Redfish-only plugins:

```json
{
"RedfishConnectionManager": {
"host": "bmc.example.com",
"port": 443,
"username": "admin",
"password": "secret",
"use_https": true,
"verify_ssl": true,
"api_root": "redfish/v1"
}
}
```

- `api_root` (optional): Redfish API path (e.g. `redfish/v1`). If omitted, the default `redfish/v1` is used. Override this when your BMC uses a different API version path.

**Notes:**
- If using SSH keys, specify `key_filename` instead of `password`.
- The remote user must have permissions to run the requested plugins and access required files. If needed, use the `--skip-sudo` argument to skip plugins requiring sudo.
Expand Down Expand Up @@ -319,6 +340,112 @@ node-scraper compare-runs path1 path2 --include-plugins DmesgPlugin --dont-trunc

You can pass multiple plugin names to `--skip-plugins` or `--include-plugins`.

#### **'show-redfish-oem-allowable' subcommand**
The `show-redfish-oem-allowable` subcommand fetches the list of OEM diagnostic types supported by your BMC (from the Redfish LogService `OEMDiagnosticDataType@Redfish.AllowableValues`). Use it to discover which types you can put in `oem_diagnostic_types_allowable` and `oem_diagnostic_types` in the Redfish OEM diag plugin config.

**Requirements:** A Redfish connection config (same as for RedfishOemDiagPlugin).

**Command:**
```sh
node-scraper --connection-config connection-config.json show-redfish-oem-allowable --log-service-path "redfish/v1/Systems/UBB/LogServices/DiagLogs"
```

Output is a JSON array of allowable type names (e.g. `["Dmesg", "JournalControl", "AllLogs", ...]`). Copy that list into your plugin config’s `oem_diagnostic_types_allowable` if you want to match your BMC.

**Redfish OEM diag plugin config example**

Use a plugin config that points at your LogService and lists the types to collect. Logs are written under the run log path (see `--log-path`).

```json
{
"name": "Redfish OEM diagnostic logs",
"desc": "Collect OEM diagnostic logs from Redfish LogService. Requires Redfish connection config.",
"global_args": {},
"plugins": {
"RedfishOemDiagPlugin": {
"collection_args": {
"log_service_path": "redfish/v1/Systems/UBB/LogServices/DiagLogs",
"oem_diagnostic_types_allowable": [
"JournalControl",
...
"AllLogs",
],
"oem_diagnostic_types": ["JournalControl", "AllLogs"],
"task_timeout_s": 600
},
"analysis_args": {
"require_all_success": false
}
}
},
"result_collators": {}
}
```

- **`log_service_path`**: Redfish path to the LogService (e.g. DiagLogs). Must match your system (e.g. `UBB` vs. another system id).
- **`oem_diagnostic_types_allowable`**: Full list of types the BMC supports (from `show-redfish-oem-allowable` or vendor docs).
- **`oem_diagnostic_types`**: Subset of types to collect on each run (e.g. `["JournalControl", "AllLogs"]`).
- **`task_timeout_s`**: Max seconds to wait per collection task.

**How to use**

1. **Discover allowable types** (optional): run `show-redfish-oem-allowable` and paste the output into `oem_diagnostic_types_allowable` in your plugin config.
2. **Set `oem_diagnostic_types`** to the list you want to collect (e.g. `["JournalControl", "AllLogs"]`).
3. **Run the plugin** with a Redfish connection config and your plugin config:
```sh
node-scraper --connection-config connection-config.json --plugin-config plugin_config_redfish_oem_diag.json run-plugins RedfishOemDiagPlugin
```
4. Use **`--log-path`** to choose where run logs (and OEM diag archives) are written; archives go under `<log-path>/scraper_logs_<name>_<timestamp>/redfish_oem_diag_plugin/redfish_oem_diag_collector/`.

#### **RedfishEndpointPlugin**

The RedfishEndpointPlugin collects Redfish URIs (GET responses) and optionally runs checks on the returned JSON. It requires a Redfish connection config (same as RedfishOemDiagPlugin).

**How to run**

1. Create a connection config (e.g. `connection-config.json`) with `RedfishConnectionManager` and your BMC host, credentials, and API root.
2. Create a plugin config with `uris` to collect and optional `checks` for analysis (see example below). For example save as `plugin_config_redfish_endpoint.json`.
3. Run:
```sh
node-scraper --connection-config connection-config.json --plugin-config plugin_config_redfish_endpoint.json run-plugins RedfishEndpointPlugin
```

**Sample plugin config** (`plugin_config_redfish_endpoint.json`):

```json
{
"name": "RedfishEndpointPlugin",
"desc": "Redfish endpoint: collect URIs and optional checks",
"global_args": {},
"plugins": {
"RedfishEndpointPlugin": {
"collection_args": {
"uris": [
"/redfish/v1/",
"/redfish/v1/Systems/1",
"/redfish/v1/Chassis/1/Power"
]
},
"analysis_args": {
"checks": {
"/redfish/v1/Systems/1": {
"PowerState": "On",
"Status/Health": { "anyOf": ["OK", "Warning"] }
},
"/redfish/v1/Chassis/1/Power": {
"PowerControl/0/PowerConsumedWatts": { "max": 1000 }
}
}
}
}
},
"result_collators": {}
}
```

- **`uris`**: List of Redfish paths (e.g. `/redfish/v1/`, `/redfish/v1/Systems/1`) to GET and store.
- **`checks`**: Optional. Map of URI to expected values or constraints for analysis. Supports exact match (e.g. `"PowerState": "On"`), `anyOf`, `min`/`max`, etc.

#### **'summary' sub command**
The 'summary' subcommand can be used to combine results from multiple runs of node-scraper to a
single summary.csv file. Sample run:
Expand Down Expand Up @@ -370,7 +497,11 @@ Below is an example that skips sudo requiring plugins and disables analysis.
```

#### Plugin config: **'--plugin-configs' command**
A plugin config can be used to compare the system data against the config specifications:
A plugin config can be used to compare the system data against the config specifications.
Built-in configs include **NodeStatus** (a subset of plugins) and **AllPlugins** (runs every
registered plugin with default arguments—useful for generating a reference config from the full system).

Using a JSON file:
```sh
node-scraper --plugin-configs plugin_config.json
```
Expand Down Expand Up @@ -431,10 +562,16 @@ Here is an example of a comprehensive plugin config that specifies analyzer args
This command can be used to generate a reference config that is populated with current system
configurations. Plugins that use analyzer args (where applicable) will be populated with system
data.
Sample command:

**Run all registered plugins (AllPlugins config):**
```sh
node-scraper --gen-reference-config run-plugins BiosPlugin OsPlugin
node-scraper --plugin-config AllPlugins

```

**Generate a reference config for specific plugins:**
```sh
node-scraper --gen-reference-config run-plugins BiosPlugin OsPlugin
```
This will generate the following config:
```json
Expand Down
Loading
Loading