|
24 | 24 | | ProcessPlugin | top -b -n 1<br>rocm-smi --showpids<br>top -b -n 1 -o %CPU | **Analyzer Args:**<br>- `max_kfd_processes`: int<br>- `max_cpu_usage`: float | [ProcessDataModel](#ProcessDataModel-Model) | [ProcessCollector](#Collector-Class-ProcessCollector) | [ProcessAnalyzer](#Data-Analyzer-Class-ProcessAnalyzer) | |
25 | 25 | | RocmPlugin | {rocm_path}/opencl/bin/*/clinfo<br>env \| grep -Ei 'rocm\|hsa\|hip\|mpi\|openmp\|ucx\|miopen'<br>ls /sys/class/kfd/kfd/proc/<br>grep -i -E 'rocm' /etc/ld.so.conf.d/*<br>{rocm_path}/bin/rocminfo<br>ls -v -d /opt/rocm*<br>ls -v -d /opt/rocm-[3-7]* \| tail -1<br>ldconfig -p \| grep -i -E 'rocm'<br>grep . -r /opt/rocm/.info/*<br>/opt/rocm/.info/version-rocm<br>/opt/rocm/.info/version | **Analyzer Args:**<br>- `exp_rocm`: Union[str, list]<br>- `exp_rocm_latest`: str<br>- `exp_rocm_sub_versions`: dict[str, Union[str, list]] | [RocmDataModel](#RocmDataModel-Model) | [RocmCollector](#Collector-Class-RocmCollector) | [RocmAnalyzer](#Data-Analyzer-Class-RocmAnalyzer) | |
26 | 26 | | StoragePlugin | sh -c 'df -lH -B1 \| grep -v 'boot''<br>wmic LogicalDisk Where DriveType="3" Get DeviceId,Size,FreeSpace | - | [StorageDataModel](#StorageDataModel-Model) | [StorageCollector](#Collector-Class-StorageCollector) | [StorageAnalyzer](#Data-Analyzer-Class-StorageAnalyzer) | |
| 27 | +| SysSettingsPlugin | cat /sys/{}<br>ls -1 /sys/{} | **Analyzer Args:**<br>- `checks`: Optional[list[nodescraper.plugins.inband.sys_settings.analyzer_args.SysfsCheck]] | [SysSettingsDataModel](#SysSettingsDataModel-Model) | [SysSettingsCollector](#Collector-Class-SysSettingsCollector) | [SysSettingsAnalyzer](#Data-Analyzer-Class-SysSettingsAnalyzer) | |
27 | 28 | | SysctlPlugin | sysctl -n | **Analyzer Args:**<br>- `exp_vm_swappiness`: Optional[int]<br>- `exp_vm_numa_balancing`: Optional[int]<br>- `exp_vm_oom_kill_allocating_task`: Optional[int]<br>- `exp_vm_compaction_proactiveness`: Optional[int]<br>- `exp_vm_compact_unevictable_allowed`: Optional[int]<br>- `exp_vm_extfrag_threshold`: Optional[int]<br>- `exp_vm_zone_reclaim_mode`: Optional[int]<br>- `exp_vm_dirty_background_ratio`: Optional[int]<br>- `exp_vm_dirty_ratio`: Optional[int]<br>- `exp_vm_dirty_writeback_centisecs`: Optional[int]<br>- `exp_kernel_numa_balancing`: Optional[int] | [SysctlDataModel](#SysctlDataModel-Model) | [SysctlCollector](#Collector-Class-SysctlCollector) | [SysctlAnalyzer](#Data-Analyzer-Class-SysctlAnalyzer) | |
28 | 29 | | SyslogPlugin | ls -1 /var/log/syslog* 2>/dev/null \| grep -E '^/var/log/syslog(\.[0-9]+(\.gz)?)?$' \|\| true | - | [SyslogData](#SyslogData-Model) | [SyslogCollector](#Collector-Class-SyslogCollector) | - | |
29 | 30 | | UptimePlugin | uptime | - | [UptimeDataModel](#UptimeDataModel-Model) | [UptimeCollector](#Collector-Class-UptimeCollector) | - | |
@@ -678,6 +679,31 @@ StorageDataModel |
678 | 679 | - sh -c 'df -lH -B1 | grep -v 'boot'' |
679 | 680 | - wmic LogicalDisk Where DriveType="3" Get DeviceId,Size,FreeSpace |
680 | 681 |
|
| 682 | +## Collector Class SysSettingsCollector |
| 683 | + |
| 684 | +### Description |
| 685 | + |
| 686 | +Collect sysfs settings from user-specified paths. |
| 687 | + |
| 688 | +**Bases**: ['InBandDataCollector'] |
| 689 | + |
| 690 | +**Link to code**: [sys_settings_collector.py](https://github.com/amd/node-scraper/blob/HEAD/nodescraper/plugins/inband/sys_settings/sys_settings_collector.py) |
| 691 | + |
| 692 | +### Class Variables |
| 693 | + |
| 694 | +- **SUPPORTED_OS_FAMILY**: `{<OSFamily.LINUX: 3>}` |
| 695 | +- **CMD**: `cat /sys/{}` |
| 696 | +- **CMD_LS**: `ls -1 /sys/{}` |
| 697 | + |
| 698 | +### Provides Data |
| 699 | + |
| 700 | +SysSettingsDataModel |
| 701 | + |
| 702 | +### Commands |
| 703 | + |
| 704 | +- cat /sys/{} |
| 705 | +- ls -1 /sys/{} |
| 706 | + |
681 | 707 | ## Collector Class SysctlCollector |
682 | 708 |
|
683 | 709 | ### Description |
@@ -1065,6 +1091,23 @@ class for collection of PCIe data. |
1065 | 1091 |
|
1066 | 1092 | - **storage_data**: `dict[str, nodescraper.plugins.inband.storage.storagedata.DeviceStorageData]` |
1067 | 1093 |
|
| 1094 | +## SysSettingsDataModel Model |
| 1095 | + |
| 1096 | +### Description |
| 1097 | + |
| 1098 | +Data model for sysfs settings: path -> parsed value. |
| 1099 | + |
| 1100 | + Values are parsed from user-specified sysfs paths (bracketed value extracted |
| 1101 | + when present, e.g. '[always] madvise never' -> 'always'). |
| 1102 | + |
| 1103 | +**Link to code**: [sys_settings_data.py](https://github.com/amd/node-scraper/blob/HEAD/nodescraper/plugins/inband/sys_settings/sys_settings_data.py) |
| 1104 | + |
| 1105 | +**Bases**: ['DataModel'] |
| 1106 | + |
| 1107 | +### Model annotations and fields |
| 1108 | + |
| 1109 | +- **readings**: `dict[str, str]` |
| 1110 | + |
1068 | 1111 | ## SysctlDataModel Model |
1069 | 1112 |
|
1070 | 1113 | **Link to code**: [sysctldata.py](https://github.com/amd/node-scraper/blob/HEAD/nodescraper/plugins/inband/sysctl/sysctldata.py) |
@@ -1418,6 +1461,16 @@ Check storage usage |
1418 | 1461 |
|
1419 | 1462 | **Link to code**: [storage_analyzer.py](https://github.com/amd/node-scraper/blob/HEAD/nodescraper/plugins/inband/storage/storage_analyzer.py) |
1420 | 1463 |
|
| 1464 | +## Data Analyzer Class SysSettingsAnalyzer |
| 1465 | + |
| 1466 | +### Description |
| 1467 | + |
| 1468 | +Check sysfs settings against expected values from the checks list. |
| 1469 | + |
| 1470 | +**Bases**: ['DataAnalyzer'] |
| 1471 | + |
| 1472 | +**Link to code**: [sys_settings_analyzer.py](https://github.com/amd/node-scraper/blob/HEAD/nodescraper/plugins/inband/sys_settings/sys_settings_analyzer.py) |
| 1473 | + |
1421 | 1474 | ## Data Analyzer Class SysctlAnalyzer |
1422 | 1475 |
|
1423 | 1476 | ### Description |
@@ -1620,6 +1673,23 @@ Arguments for PCIe analyzer |
1620 | 1673 | - **exp_rocm_latest**: `str` |
1621 | 1674 | - **exp_rocm_sub_versions**: `dict[str, Union[str, list]]` |
1622 | 1675 |
|
| 1676 | +## Analyzer Args Class SysSettingsAnalyzerArgs |
| 1677 | + |
| 1678 | +### Description |
| 1679 | + |
| 1680 | +Sysfs settings for analysis via a list of checks (path, expected values, name). |
| 1681 | + |
| 1682 | + The path in each check is the sysfs path to read; the collector uses these paths |
| 1683 | + when collection_args is derived from analysis_args (e.g. by the plugin). |
| 1684 | + |
| 1685 | +**Bases**: ['AnalyzerArgs'] |
| 1686 | + |
| 1687 | +**Link to code**: [analyzer_args.py](https://github.com/amd/node-scraper/blob/HEAD/nodescraper/plugins/inband/sys_settings/analyzer_args.py) |
| 1688 | + |
| 1689 | +### Annotations / fields |
| 1690 | + |
| 1691 | +- **checks**: `Optional[list[nodescraper.plugins.inband.sys_settings.analyzer_args.SysfsCheck]]` |
| 1692 | + |
1623 | 1693 | ## Analyzer Args Class SysctlAnalyzerArgs |
1624 | 1694 |
|
1625 | 1695 | **Bases**: ['AnalyzerArgs'] |
|
0 commit comments