amd-node-scraper 0.1.0__tar.gz → 1.0.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/.github/workflows/code_quality_checks.yml +8 -1
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/.github/workflows/functional-test.yml +1 -1
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/.github/workflows/release-trusted-publisher.yml +11 -2
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/.github/workflows/unit-test.yml +1 -1
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/PKG-INFO +55 -3
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/README.md +54 -2
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/amd_node_scraper.egg-info/PKG-INFO +55 -3
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/amd_node_scraper.egg-info/SOURCES.txt +6 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/dev-setup.sh +4 -1
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/docs/PLUGIN_DOC.md +34 -4
- amd_node_scraper-1.0.2/nodescraper/base/regexanalyzer.py +275 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/amdsmi/amdsmi_analyzer.py +1 -1
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/bios/bios_analyzer.py +6 -4
- amd_node_scraper-1.0.2/nodescraper/plugins/inband/cmdline/analyzer_args.py +222 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/cmdline/cmdline_analyzer.py +70 -5
- amd_node_scraper-1.0.2/nodescraper/plugins/inband/cmdline/cmdlineconfig.py +120 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/device_enumeration/device_enumeration_analyzer.py +2 -3
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/dimm/dimm_collector.py +18 -15
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/dmesg/analyzer_args.py +5 -1
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/dmesg/dmesg_analyzer.py +119 -10
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/fabrics/fabrics_collector.py +1 -1
- amd_node_scraper-1.0.2/nodescraper/plugins/inband/journal/analyzer_args.py +41 -0
- amd_node_scraper-1.0.2/nodescraper/plugins/inband/journal/journal_analyzer.py +238 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/journal/journal_collector.py +68 -4
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/journal/journal_plugin.py +8 -2
- amd_node_scraper-1.0.2/nodescraper/plugins/inband/journal/journaldata.py +142 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/kernel/kernel_analyzer.py +2 -4
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/kernel_module/kernel_module_analyzer.py +7 -9
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/memory/memory_analyzer.py +8 -6
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/os/os_analyzer.py +2 -2
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/package/package_analyzer.py +2 -2
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/process/process_analyzer.py +7 -9
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/rocm/rocm_analyzer.py +4 -6
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/resultcollators/tablesummary.py +2 -2
- amd_node_scraper-1.0.2/test/functional/fixtures/cmdline_plugin_config.json +38 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/functional/fixtures/dmesg_plugin_config.json +4 -2
- amd_node_scraper-1.0.2/test/functional/fixtures/dmesg_plugin_config_custom_regex.json +34 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/functional/fixtures/dmesg_sample.log +28 -0
- amd_node_scraper-1.0.2/test/functional/fixtures/dmesg_sample_with_collapsing.log +30 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/functional/test_plugin_configs.py +258 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/functional/test_run_plugins.py +5 -2
- amd_node_scraper-1.0.2/test/unit/framework/test_regexanalyzer.py +236 -0
- amd_node_scraper-1.0.2/test/unit/plugin/test_cmdline_analyzer.py +259 -0
- amd_node_scraper-1.0.2/test/unit/plugin/test_dmesg_analyzer.py +738 -0
- amd_node_scraper-1.0.2/test/unit/plugin/test_journal_collector.py +232 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/plugin/test_kernel_module_analyzer.py +4 -1
- amd_node_scraper-0.1.0/nodescraper/base/regexanalyzer.py +0 -120
- amd_node_scraper-0.1.0/nodescraper/plugins/inband/cmdline/analyzer_args.py +0 -80
- amd_node_scraper-0.1.0/nodescraper/plugins/inband/journal/journaldata.py +0 -44
- amd_node_scraper-0.1.0/test/functional/fixtures/cmdline_plugin_config.json +0 -14
- amd_node_scraper-0.1.0/test/unit/plugin/test_cmdline_analyzer.py +0 -107
- amd_node_scraper-0.1.0/test/unit/plugin/test_dmesg_analyzer.py +0 -281
- amd_node_scraper-0.1.0/test/unit/plugin/test_journal_collector.py +0 -71
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/.github/CODEOWNERS +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/.github/workflows/update-plugin-docs.yml +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/.gitignore +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/.mypy.ini +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/.pre-commit-config.yaml +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/CONTRIBUTING.md +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/EXTENDING.md +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/LICENSE +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/amd_node_scraper.egg-info/dependency_links.txt +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/amd_node_scraper.egg-info/entry_points.txt +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/amd_node_scraper.egg-info/requires.txt +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/amd_node_scraper.egg-info/top_level.txt +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/docs/generate_plugin_doc_bundle.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/docs/node-scraper-external/README.md +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/docs/node-scraper-external/ext_nodescraper_plugins/sample/__init__.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/docs/node-scraper-external/ext_nodescraper_plugins/sample/sample_analyzer.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/docs/node-scraper-external/ext_nodescraper_plugins/sample/sample_collector.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/docs/node-scraper-external/ext_nodescraper_plugins/sample/sample_data.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/docs/node-scraper-external/ext_nodescraper_plugins/sample/sample_plugin.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/docs/node-scraper-external/pyproject.toml +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/__init__.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/base/__init__.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/base/inbandcollectortask.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/base/inbanddataplugin.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/cli/__init__.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/cli/cli.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/cli/constants.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/cli/dynamicparserbuilder.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/cli/helper.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/cli/inputargtypes.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/configbuilder.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/configregistry.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/configs/node_status.json +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/connection/__init__.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/connection/inband/__init__.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/connection/inband/inband.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/connection/inband/inbandlocal.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/connection/inband/inbandmanager.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/connection/inband/inbandremote.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/connection/inband/sshparams.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/constants.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/enums/__init__.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/enums/eventcategory.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/enums/eventpriority.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/enums/executionstatus.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/enums/osfamily.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/enums/systeminteraction.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/enums/systemlocation.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/generictypes.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/interfaces/__init__.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/interfaces/connectionmanager.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/interfaces/dataanalyzertask.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/interfaces/datacollectortask.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/interfaces/dataplugin.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/interfaces/plugin.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/interfaces/resultcollator.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/interfaces/task.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/interfaces/taskresulthook.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/models/__init__.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/models/analyzerargs.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/models/collectorargs.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/models/connectionconfig.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/models/datamodel.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/models/datapluginresult.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/models/event.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/models/pluginconfig.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/models/pluginresult.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/models/systeminfo.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/models/taskresult.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/models/timerangeargs.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/pluginexecutor.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/pluginregistry.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/__init__.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/__init__.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/amdsmi/__init__.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/amdsmi/amdsmi_collector.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/amdsmi/amdsmi_plugin.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/amdsmi/amdsmidata.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/amdsmi/analyzer_args.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/amdsmi/cper.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/bios/__init__.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/bios/analyzer_args.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/bios/bios_collector.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/bios/bios_plugin.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/bios/biosdata.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/cmdline/__init__.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/cmdline/cmdline_collector.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/cmdline/cmdline_plugin.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/cmdline/cmdlinedata.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/device_enumeration/__init__.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/device_enumeration/analyzer_args.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/device_enumeration/device_enumeration_collector.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/device_enumeration/device_enumeration_plugin.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/device_enumeration/deviceenumdata.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/dimm/__init__.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/dimm/collector_args.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/dimm/dimm_plugin.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/dimm/dimmdata.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/dkms/__init__.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/dkms/analyzer_args.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/dkms/dkms_analyzer.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/dkms/dkms_collector.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/dkms/dkms_plugin.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/dkms/dkmsdata.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/dmesg/__init__.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/dmesg/collector_args.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/dmesg/dmesg_collector.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/dmesg/dmesg_plugin.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/dmesg/dmesgdata.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/fabrics/__init__.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/fabrics/fabrics_plugin.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/fabrics/fabricsdata.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/journal/__init__.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/journal/collector_args.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/kernel/__init__.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/kernel/analyzer_args.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/kernel/kernel_collector.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/kernel/kernel_plugin.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/kernel/kerneldata.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/kernel_module/__init__.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/kernel_module/analyzer_args.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/kernel_module/kernel_module_collector.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/kernel_module/kernel_module_data.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/kernel_module/kernel_module_plugin.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/memory/__init__.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/memory/analyzer_args.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/memory/memory_collector.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/memory/memory_plugin.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/memory/memorydata.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/network/__init__.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/network/network_collector.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/network/network_plugin.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/network/networkdata.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/nvme/__init__.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/nvme/nvme_collector.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/nvme/nvme_plugin.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/nvme/nvmedata.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/os/__init__.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/os/analyzer_args.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/os/os_collector.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/os/os_plugin.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/os/osdata.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/package/__init__.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/package/analyzer_args.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/package/package_collector.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/package/package_plugin.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/package/packagedata.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/pcie/__init__.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/pcie/analyzer_args.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/pcie/pcie_analyzer.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/pcie/pcie_collector.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/pcie/pcie_data.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/pcie/pcie_plugin.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/process/__init__.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/process/analyzer_args.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/process/collector_args.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/process/process_collector.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/process/process_plugin.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/process/processdata.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/rocm/__init__.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/rocm/analyzer_args.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/rocm/rocm_collector.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/rocm/rocm_plugin.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/rocm/rocmdata.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/storage/__init__.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/storage/analyzer_args.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/storage/collector_args.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/storage/storage_analyzer.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/storage/storage_collector.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/storage/storage_plugin.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/storage/storagedata.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/sysctl/__init__.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/sysctl/analyzer_args.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/sysctl/sysctl_analyzer.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/sysctl/sysctl_collector.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/sysctl/sysctl_plugin.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/sysctl/sysctldata.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/syslog/__init__.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/syslog/syslog_collector.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/syslog/syslog_plugin.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/syslog/syslogdata.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/uptime/__init__.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/uptime/uptime_collector.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/uptime/uptime_plugin.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/plugins/inband/uptime/uptimedata.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/resultcollators/__init__.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/taskresulthooks/__init__.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/taskresulthooks/filesystemloghook.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/typeutils.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/nodescraper/utils.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/pyproject.toml +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/pytest.ini +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/setup.cfg +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/setup.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/functional/__init__.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/functional/conftest.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/functional/fixtures/bios_plugin_config.json +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/functional/fixtures/dimm_plugin_config.json +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/functional/fixtures/dkms_plugin_config.json +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/functional/fixtures/fabrics_plugin_config.json +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/functional/fixtures/journal_plugin_config.json +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/functional/fixtures/kernel_module_plugin_config.json +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/functional/fixtures/kernel_plugin_config.json +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/functional/fixtures/memory_plugin_config.json +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/functional/fixtures/network_plugin_config.json +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/functional/fixtures/nvme_plugin_config.json +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/functional/fixtures/os_plugin_config.json +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/functional/fixtures/package_plugin_config.json +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/functional/fixtures/pcie_plugin_advanced_config.json +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/functional/fixtures/pcie_plugin_config.json +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/functional/fixtures/process_plugin_config.json +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/functional/fixtures/rocm_plugin_config.json +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/functional/fixtures/storage_plugin_config.json +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/functional/fixtures/sysctl_plugin_config.json +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/functional/fixtures/syslog_plugin_config.json +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/functional/fixtures/uptime_plugin_config.json +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/functional/test_cli_describe.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/functional/test_cli_help.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/functional/test_fabrics_plugin.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/functional/test_network_plugin.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/functional/test_pcie_plugin.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/functional/test_plugin_registry.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/functional/test_reference_config_workflow.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/conftest.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/framework/common/shared_utils.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/framework/fixtures/example.json +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/framework/fixtures/example_config.json +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/framework/fixtures/invalid.json +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/framework/fixtures/log_dir/collector/biosdatamodel.json +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/framework/fixtures/log_dir/collector/result.json +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/framework/test_analyzerargs.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/framework/test_cli.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/framework/test_cli_helper.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/framework/test_config_builder.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/framework/test_config_registry.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/framework/test_dataanalyzer.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/framework/test_datacollector.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/framework/test_dataplugin.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/framework/test_file_artifact.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/framework/test_plugin_executor.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/framework/test_type_utils.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/plugin/fixtures/package_commands.json +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/plugin/test_amdsmi_analyzer.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/plugin/test_amdsmi_collector.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/plugin/test_analyzer_args_build_from_model.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/plugin/test_bios_analyzer.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/plugin/test_bios_collector.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/plugin/test_cmdline_collector.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/plugin/test_device_enumeration_analyzer.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/plugin/test_device_enumeration_collector.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/plugin/test_dimms_collector.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/plugin/test_dkms_analyzer.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/plugin/test_dkms_collector.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/plugin/test_dmesg_collector.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/plugin/test_fabrics_collector.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/plugin/test_kernel_analyzer.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/plugin/test_kernel_collector.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/plugin/test_kernel_module_collector.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/plugin/test_memory_analyzer.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/plugin/test_memory_collector.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/plugin/test_network_collector.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/plugin/test_nvme_collector.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/plugin/test_os_analyzer.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/plugin/test_os_collector.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/plugin/test_package_analyzer.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/plugin/test_package_collector.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/plugin/test_process_analyzer.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/plugin/test_process_collector.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/plugin/test_rocm_analyzer.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/plugin/test_rocm_collector.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/plugin/test_storage_analyzer.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/plugin/test_storage_collector.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/plugin/test_sysctl_analyzer.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/plugin/test_sysctl_collector.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/plugin/test_syslog_collector.py +0 -0
- {amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/test/unit/plugin/test_uptime_collector.py +0 -0
|
@@ -10,11 +10,18 @@ on:
|
|
|
10
10
|
|
|
11
11
|
jobs:
|
|
12
12
|
pre-commit:
|
|
13
|
-
runs-on:
|
|
13
|
+
runs-on: [ self-hosted ]
|
|
14
14
|
container: python:3.9
|
|
15
15
|
|
|
16
16
|
steps:
|
|
17
17
|
- uses: actions/checkout@v3
|
|
18
|
+
with:
|
|
19
|
+
fetch-depth: 0 # Fetch all history for pre-commit to work
|
|
20
|
+
- name: Configure git for container
|
|
21
|
+
run: |
|
|
22
|
+
git config --global --add safe.directory /__w/node-scraper/node-scraper
|
|
23
|
+
git config --global user.email "ci@github.com"
|
|
24
|
+
git config --global user.name "CI Bot"
|
|
18
25
|
- name: setup environment and run pre-commit hooks
|
|
19
26
|
shell: bash
|
|
20
27
|
run: |
|
{amd_node_scraper-0.1.0 → amd_node_scraper-1.0.2}/.github/workflows/release-trusted-publisher.yml
RENAMED
|
@@ -19,6 +19,8 @@ on:
|
|
|
19
19
|
jobs:
|
|
20
20
|
release:
|
|
21
21
|
runs-on: ubuntu-latest
|
|
22
|
+
# Only allow this workflow to run on main branch
|
|
23
|
+
if: github.ref == 'refs/heads/main'
|
|
22
24
|
|
|
23
25
|
steps:
|
|
24
26
|
- name: Checkout code
|
|
@@ -27,6 +29,10 @@ jobs:
|
|
|
27
29
|
fetch-depth: 0 # Fetch all history and tags
|
|
28
30
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
29
31
|
|
|
32
|
+
- name: Fetch all tags
|
|
33
|
+
run: |
|
|
34
|
+
git fetch --tags --force
|
|
35
|
+
|
|
30
36
|
- name: Set up Python
|
|
31
37
|
uses: actions/setup-python@v4
|
|
32
38
|
with:
|
|
@@ -41,8 +47,11 @@ jobs:
|
|
|
41
47
|
id: next_version
|
|
42
48
|
shell: bash
|
|
43
49
|
run: |
|
|
44
|
-
# Get the
|
|
45
|
-
LATEST_TAG=$(git
|
|
50
|
+
# Get the highest semantic version tag (not most recent, but highest version number)
|
|
51
|
+
LATEST_TAG=$(git tag -l 'v*' | sort -V | tail -n1)
|
|
52
|
+
if [ -z "$LATEST_TAG" ]; then
|
|
53
|
+
LATEST_TAG="v0.0.0"
|
|
54
|
+
fi
|
|
46
55
|
echo "Latest tag: $LATEST_TAG"
|
|
47
56
|
|
|
48
57
|
# Remove 'v' prefix and split into components
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: amd-node-scraper
|
|
3
|
-
Version:
|
|
3
|
+
Version: 1.0.2
|
|
4
4
|
Summary: A framework for automated error detection and data collection
|
|
5
5
|
Project-URL: homepage, https://github.com/amd/node-scraper
|
|
6
6
|
Project-URL: documentation, https://github.com/amd/node-scraper
|
|
@@ -260,7 +260,9 @@ This would produce the following config:
|
|
|
260
260
|
"analysis_range_start": null,
|
|
261
261
|
"analysis_range_end": null,
|
|
262
262
|
"check_unknown_dmesg_errors": true,
|
|
263
|
-
"exclude_category": null
|
|
263
|
+
"exclude_category": null,
|
|
264
|
+
"interval_to_collapse_event": 60,
|
|
265
|
+
"num_timestamps": 3
|
|
264
266
|
}
|
|
265
267
|
}
|
|
266
268
|
},
|
|
@@ -268,11 +270,61 @@ This would produce the following config:
|
|
|
268
270
|
}
|
|
269
271
|
```
|
|
270
272
|
|
|
273
|
+
**Running DmesgPlugin with a dmesg log file:**
|
|
274
|
+
|
|
275
|
+
Instead of collecting dmesg from the system, you can analyze a pre-existing dmesg log file using the `--data` argument:
|
|
276
|
+
|
|
277
|
+
```sh
|
|
278
|
+
node-scraper --run-plugins DmesgPlugin --data /path/to/dmesg.log --collection False
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
This will skip the collection phase and directly analyze the provided dmesg.log file.
|
|
282
|
+
|
|
283
|
+
**Custom Error Regex Example:**
|
|
284
|
+
|
|
285
|
+
You can extend the built-in error detection with custom regex patterns. Create a config file with custom error patterns:
|
|
286
|
+
|
|
287
|
+
```json
|
|
288
|
+
{
|
|
289
|
+
"global_args": {},
|
|
290
|
+
"plugins": {
|
|
291
|
+
"DmesgPlugin": {
|
|
292
|
+
"analysis_args": {
|
|
293
|
+
"check_unknown_dmesg_errors": false,
|
|
294
|
+
"interval_to_collapse_event": 60,
|
|
295
|
+
"num_timestamps": 3,
|
|
296
|
+
"error_regex": [
|
|
297
|
+
{
|
|
298
|
+
"regex": "MY_CUSTOM_ERROR.*",
|
|
299
|
+
"message": "My Custom Error Detected",
|
|
300
|
+
"event_category": "SW_DRIVER",
|
|
301
|
+
"event_priority": 3
|
|
302
|
+
},
|
|
303
|
+
{
|
|
304
|
+
"regex": "APPLICATION_CRASH: .*",
|
|
305
|
+
"message": "Application Crash",
|
|
306
|
+
"event_category": "SW_DRIVER",
|
|
307
|
+
"event_priority": 4
|
|
308
|
+
}
|
|
309
|
+
]
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
},
|
|
313
|
+
"result_collators": {}
|
|
314
|
+
}
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
Save this to `dmesg_custom_config.json` and run:
|
|
318
|
+
|
|
319
|
+
```sh
|
|
320
|
+
node-scraper --plugin-configs dmesg_custom_config.json run-plugins DmesgPlugin
|
|
321
|
+
```
|
|
322
|
+
|
|
271
323
|
#### **'summary' sub command**
|
|
272
324
|
The 'summary' subcommand can be used to combine results from multiple runs of node-scraper to a
|
|
273
325
|
single summary.csv file. Sample run:
|
|
274
326
|
```sh
|
|
275
|
-
node-scraper summary --
|
|
327
|
+
node-scraper summary --search-path /<path_to_node-scraper_logs>
|
|
276
328
|
```
|
|
277
329
|
This will generate a new file '/<path_to_node-scraper_logs>/summary.csv' file. This file will
|
|
278
330
|
contain the results from all 'nodescraper.csv' files from '/<path_to_node-scarper_logs>'.
|
|
@@ -232,7 +232,9 @@ This would produce the following config:
|
|
|
232
232
|
"analysis_range_start": null,
|
|
233
233
|
"analysis_range_end": null,
|
|
234
234
|
"check_unknown_dmesg_errors": true,
|
|
235
|
-
"exclude_category": null
|
|
235
|
+
"exclude_category": null,
|
|
236
|
+
"interval_to_collapse_event": 60,
|
|
237
|
+
"num_timestamps": 3
|
|
236
238
|
}
|
|
237
239
|
}
|
|
238
240
|
},
|
|
@@ -240,11 +242,61 @@ This would produce the following config:
|
|
|
240
242
|
}
|
|
241
243
|
```
|
|
242
244
|
|
|
245
|
+
**Running DmesgPlugin with a dmesg log file:**
|
|
246
|
+
|
|
247
|
+
Instead of collecting dmesg from the system, you can analyze a pre-existing dmesg log file using the `--data` argument:
|
|
248
|
+
|
|
249
|
+
```sh
|
|
250
|
+
node-scraper --run-plugins DmesgPlugin --data /path/to/dmesg.log --collection False
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
This will skip the collection phase and directly analyze the provided dmesg.log file.
|
|
254
|
+
|
|
255
|
+
**Custom Error Regex Example:**
|
|
256
|
+
|
|
257
|
+
You can extend the built-in error detection with custom regex patterns. Create a config file with custom error patterns:
|
|
258
|
+
|
|
259
|
+
```json
|
|
260
|
+
{
|
|
261
|
+
"global_args": {},
|
|
262
|
+
"plugins": {
|
|
263
|
+
"DmesgPlugin": {
|
|
264
|
+
"analysis_args": {
|
|
265
|
+
"check_unknown_dmesg_errors": false,
|
|
266
|
+
"interval_to_collapse_event": 60,
|
|
267
|
+
"num_timestamps": 3,
|
|
268
|
+
"error_regex": [
|
|
269
|
+
{
|
|
270
|
+
"regex": "MY_CUSTOM_ERROR.*",
|
|
271
|
+
"message": "My Custom Error Detected",
|
|
272
|
+
"event_category": "SW_DRIVER",
|
|
273
|
+
"event_priority": 3
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
"regex": "APPLICATION_CRASH: .*",
|
|
277
|
+
"message": "Application Crash",
|
|
278
|
+
"event_category": "SW_DRIVER",
|
|
279
|
+
"event_priority": 4
|
|
280
|
+
}
|
|
281
|
+
]
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
},
|
|
285
|
+
"result_collators": {}
|
|
286
|
+
}
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
Save this to `dmesg_custom_config.json` and run:
|
|
290
|
+
|
|
291
|
+
```sh
|
|
292
|
+
node-scraper --plugin-configs dmesg_custom_config.json run-plugins DmesgPlugin
|
|
293
|
+
```
|
|
294
|
+
|
|
243
295
|
#### **'summary' sub command**
|
|
244
296
|
The 'summary' subcommand can be used to combine results from multiple runs of node-scraper to a
|
|
245
297
|
single summary.csv file. Sample run:
|
|
246
298
|
```sh
|
|
247
|
-
node-scraper summary --
|
|
299
|
+
node-scraper summary --search-path /<path_to_node-scraper_logs>
|
|
248
300
|
```
|
|
249
301
|
This will generate a new file '/<path_to_node-scraper_logs>/summary.csv' file. This file will
|
|
250
302
|
contain the results from all 'nodescraper.csv' files from '/<path_to_node-scarper_logs>'.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: amd-node-scraper
|
|
3
|
-
Version:
|
|
3
|
+
Version: 1.0.2
|
|
4
4
|
Summary: A framework for automated error detection and data collection
|
|
5
5
|
Project-URL: homepage, https://github.com/amd/node-scraper
|
|
6
6
|
Project-URL: documentation, https://github.com/amd/node-scraper
|
|
@@ -260,7 +260,9 @@ This would produce the following config:
|
|
|
260
260
|
"analysis_range_start": null,
|
|
261
261
|
"analysis_range_end": null,
|
|
262
262
|
"check_unknown_dmesg_errors": true,
|
|
263
|
-
"exclude_category": null
|
|
263
|
+
"exclude_category": null,
|
|
264
|
+
"interval_to_collapse_event": 60,
|
|
265
|
+
"num_timestamps": 3
|
|
264
266
|
}
|
|
265
267
|
}
|
|
266
268
|
},
|
|
@@ -268,11 +270,61 @@ This would produce the following config:
|
|
|
268
270
|
}
|
|
269
271
|
```
|
|
270
272
|
|
|
273
|
+
**Running DmesgPlugin with a dmesg log file:**
|
|
274
|
+
|
|
275
|
+
Instead of collecting dmesg from the system, you can analyze a pre-existing dmesg log file using the `--data` argument:
|
|
276
|
+
|
|
277
|
+
```sh
|
|
278
|
+
node-scraper --run-plugins DmesgPlugin --data /path/to/dmesg.log --collection False
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
This will skip the collection phase and directly analyze the provided dmesg.log file.
|
|
282
|
+
|
|
283
|
+
**Custom Error Regex Example:**
|
|
284
|
+
|
|
285
|
+
You can extend the built-in error detection with custom regex patterns. Create a config file with custom error patterns:
|
|
286
|
+
|
|
287
|
+
```json
|
|
288
|
+
{
|
|
289
|
+
"global_args": {},
|
|
290
|
+
"plugins": {
|
|
291
|
+
"DmesgPlugin": {
|
|
292
|
+
"analysis_args": {
|
|
293
|
+
"check_unknown_dmesg_errors": false,
|
|
294
|
+
"interval_to_collapse_event": 60,
|
|
295
|
+
"num_timestamps": 3,
|
|
296
|
+
"error_regex": [
|
|
297
|
+
{
|
|
298
|
+
"regex": "MY_CUSTOM_ERROR.*",
|
|
299
|
+
"message": "My Custom Error Detected",
|
|
300
|
+
"event_category": "SW_DRIVER",
|
|
301
|
+
"event_priority": 3
|
|
302
|
+
},
|
|
303
|
+
{
|
|
304
|
+
"regex": "APPLICATION_CRASH: .*",
|
|
305
|
+
"message": "Application Crash",
|
|
306
|
+
"event_category": "SW_DRIVER",
|
|
307
|
+
"event_priority": 4
|
|
308
|
+
}
|
|
309
|
+
]
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
},
|
|
313
|
+
"result_collators": {}
|
|
314
|
+
}
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
Save this to `dmesg_custom_config.json` and run:
|
|
318
|
+
|
|
319
|
+
```sh
|
|
320
|
+
node-scraper --plugin-configs dmesg_custom_config.json run-plugins DmesgPlugin
|
|
321
|
+
```
|
|
322
|
+
|
|
271
323
|
#### **'summary' sub command**
|
|
272
324
|
The 'summary' subcommand can be used to combine results from multiple runs of node-scraper to a
|
|
273
325
|
single summary.csv file. Sample run:
|
|
274
326
|
```sh
|
|
275
|
-
node-scraper summary --
|
|
327
|
+
node-scraper summary --search-path /<path_to_node-scraper_logs>
|
|
276
328
|
```
|
|
277
329
|
This will generate a new file '/<path_to_node-scraper_logs>/summary.csv' file. This file will
|
|
278
330
|
contain the results from all 'nodescraper.csv' files from '/<path_to_node-scarper_logs>'.
|
|
@@ -105,6 +105,7 @@ nodescraper/plugins/inband/cmdline/analyzer_args.py
|
|
|
105
105
|
nodescraper/plugins/inband/cmdline/cmdline_analyzer.py
|
|
106
106
|
nodescraper/plugins/inband/cmdline/cmdline_collector.py
|
|
107
107
|
nodescraper/plugins/inband/cmdline/cmdline_plugin.py
|
|
108
|
+
nodescraper/plugins/inband/cmdline/cmdlineconfig.py
|
|
108
109
|
nodescraper/plugins/inband/cmdline/cmdlinedata.py
|
|
109
110
|
nodescraper/plugins/inband/device_enumeration/__init__.py
|
|
110
111
|
nodescraper/plugins/inband/device_enumeration/analyzer_args.py
|
|
@@ -135,7 +136,9 @@ nodescraper/plugins/inband/fabrics/fabrics_collector.py
|
|
|
135
136
|
nodescraper/plugins/inband/fabrics/fabrics_plugin.py
|
|
136
137
|
nodescraper/plugins/inband/fabrics/fabricsdata.py
|
|
137
138
|
nodescraper/plugins/inband/journal/__init__.py
|
|
139
|
+
nodescraper/plugins/inband/journal/analyzer_args.py
|
|
138
140
|
nodescraper/plugins/inband/journal/collector_args.py
|
|
141
|
+
nodescraper/plugins/inband/journal/journal_analyzer.py
|
|
139
142
|
nodescraper/plugins/inband/journal/journal_collector.py
|
|
140
143
|
nodescraper/plugins/inband/journal/journal_plugin.py
|
|
141
144
|
nodescraper/plugins/inband/journal/journaldata.py
|
|
@@ -237,7 +240,9 @@ test/functional/fixtures/cmdline_plugin_config.json
|
|
|
237
240
|
test/functional/fixtures/dimm_plugin_config.json
|
|
238
241
|
test/functional/fixtures/dkms_plugin_config.json
|
|
239
242
|
test/functional/fixtures/dmesg_plugin_config.json
|
|
243
|
+
test/functional/fixtures/dmesg_plugin_config_custom_regex.json
|
|
240
244
|
test/functional/fixtures/dmesg_sample.log
|
|
245
|
+
test/functional/fixtures/dmesg_sample_with_collapsing.log
|
|
241
246
|
test/functional/fixtures/fabrics_plugin_config.json
|
|
242
247
|
test/functional/fixtures/journal_plugin_config.json
|
|
243
248
|
test/functional/fixtures/kernel_module_plugin_config.json
|
|
@@ -266,6 +271,7 @@ test/unit/framework/test_datacollector.py
|
|
|
266
271
|
test/unit/framework/test_dataplugin.py
|
|
267
272
|
test/unit/framework/test_file_artifact.py
|
|
268
273
|
test/unit/framework/test_plugin_executor.py
|
|
274
|
+
test/unit/framework/test_regexanalyzer.py
|
|
269
275
|
test/unit/framework/test_type_utils.py
|
|
270
276
|
test/unit/framework/common/shared_utils.py
|
|
271
277
|
test/unit/framework/fixtures/example.json
|
|
@@ -6,13 +6,13 @@
|
|
|
6
6
|
| --- | --- | --- | --- | --- | --- |
|
|
7
7
|
| AmdSmiPlugin | firmware --json<br>list --json<br>partition --json<br>process --json<br>ras --cper --folder={folder}<br>static -g all --json<br>static -g {gpu_id} --json<br>version --json | **Analyzer Args:**<br>- `check_static_data`: bool<br>- `expected_gpu_processes`: Optional[int]<br>- `expected_max_power`: Optional[int]<br>- `expected_driver_version`: Optional[str]<br>- `expected_memory_partition_mode`: Optional[str]<br>- `expected_compute_partition_mode`: Optional[str]<br>- `expected_pldm_version`: Optional[str]<br>- `l0_to_recovery_count_error_threshold`: Optional[int]<br>- `l0_to_recovery_count_warning_threshold`: Optional[int]<br>- `vendorid_ep`: Optional[str]<br>- `vendorid_ep_vf`: Optional[str]<br>- `devid_ep`: Optional[str]<br>- `devid_ep_vf`: Optional[str]<br>- `sku_name`: Optional[str]<br>- `expected_xgmi_speed`: Optional[list[float]]<br>- `analysis_range_start`: Optional[datetime.datetime]<br>- `analysis_range_end`: Optional[datetime.datetime] | [AmdSmiDataModel](#AmdSmiDataModel-Model) | [AmdSmiCollector](#Collector-Class-AmdSmiCollector) | [AmdSmiAnalyzer](#Data-Analyzer-Class-AmdSmiAnalyzer) |
|
|
8
8
|
| BiosPlugin | sh -c 'cat /sys/devices/virtual/dmi/id/bios_version'<br>wmic bios get SMBIOSBIOSVersion /Value | **Analyzer Args:**<br>- `exp_bios_version`: list[str]<br>- `regex_match`: bool | [BiosDataModel](#BiosDataModel-Model) | [BiosCollector](#Collector-Class-BiosCollector) | [BiosAnalyzer](#Data-Analyzer-Class-BiosAnalyzer) |
|
|
9
|
-
| CmdlinePlugin | cat /proc/cmdline | **Analyzer Args:**<br>- `required_cmdline`: Union[str,
|
|
9
|
+
| CmdlinePlugin | cat /proc/cmdline | **Analyzer Args:**<br>- `required_cmdline`: Union[str, List]<br>- `banned_cmdline`: Union[str, List]<br>- `os_overrides`: Dict[str, nodescraper.plugins.inband.cmdline.cmdlineconfig.OverrideConfig]<br>- `platform_overrides`: Dict[str, nodescraper.plugins.inband.cmdline.cmdlineconfig.OverrideConfig] | [CmdlineDataModel](#CmdlineDataModel-Model) | [CmdlineCollector](#Collector-Class-CmdlineCollector) | [CmdlineAnalyzer](#Data-Analyzer-Class-CmdlineAnalyzer) |
|
|
10
10
|
| DeviceEnumerationPlugin | powershell -Command "(Get-WmiObject -Class Win32_Processor \| Measure-Object).Count"<br>lspci -d {vendorid_ep}: \| grep -i 'VGA\\|Display\\|3D' \| wc -l<br>powershell -Command "(wmic path win32_VideoController get name \| findstr AMD \| Measure-Object).Count"<br>lscpu<br>lshw<br>lspci -d {vendorid_ep}: \| grep -i 'Virtual Function' \| wc -l<br>powershell -Command "(Get-VMHostPartitionableGpu \| Measure-Object).Count" | **Analyzer Args:**<br>- `cpu_count`: Optional[list[int]]<br>- `gpu_count`: Optional[list[int]]<br>- `vf_count`: Optional[list[int]] | [DeviceEnumerationDataModel](#DeviceEnumerationDataModel-Model) | [DeviceEnumerationCollector](#Collector-Class-DeviceEnumerationCollector) | [DeviceEnumerationAnalyzer](#Data-Analyzer-Class-DeviceEnumerationAnalyzer) |
|
|
11
11
|
| DimmPlugin | sh -c 'dmidecode -t 17 \| tr -s " " \| grep -v "Volatile\\|None\\|Module" \| grep Size' 2>/dev/null<br>dmidecode<br>wmic memorychip get Capacity | - | [DimmDataModel](#DimmDataModel-Model) | [DimmCollector](#Collector-Class-DimmCollector) | - |
|
|
12
12
|
| DkmsPlugin | dkms status<br>dkms --version | **Analyzer Args:**<br>- `dkms_status`: Union[str, list]<br>- `dkms_version`: Union[str, list]<br>- `regex_match`: bool | [DkmsDataModel](#DkmsDataModel-Model) | [DkmsCollector](#Collector-Class-DkmsCollector) | [DkmsAnalyzer](#Data-Analyzer-Class-DkmsAnalyzer) |
|
|
13
13
|
| DmesgPlugin | dmesg --time-format iso -x<br>ls -1 /var/log/dmesg* 2>/dev/null \| grep -E '^/var/log/dmesg(\.[0-9]+(\.gz)?)?$' \|\| true | **Built-in Regexes:**<br>- Out of memory error: `(?:oom_kill_process.*)\|(?:Out of memory.*)`<br>- I/O Page Fault: `IO_PAGE_FAULT`<br>- Kernel Panic: `\bkernel panic\b.*`<br>- SQ Interrupt: `sq_intr`<br>- SRAM ECC: `sram_ecc.*`<br>- Failed to load driver. IP hardware init error.: `\[amdgpu\]\] \*ERROR\* hw_init of IP block.*`<br>- Failed to load driver. IP software init error.: `\[amdgpu\]\] \*ERROR\* sw_init of IP block.*`<br>- Real Time throttling activated: `sched: RT throttling activated.*`<br>- RCU preempt detected stalls: `rcu_preempt detected stalls.*`<br>- RCU preempt self-detected stall: `rcu_preempt self-detected stall.*`<br>- QCM fence timeout: `qcm fence wait loop timeout.*`<br>- General protection fault: `(?:[\w-]+(?:\[[0-9.]+\])?\s+)?general protectio...`<br>- Segmentation fault: `(?:segfault.*in .*\[)\|(?:[Ss]egmentation [Ff]au...`<br>- Failed to disallow cf state: `amdgpu: Failed to disallow cf state.*`<br>- Failed to terminate tmr: `\*ERROR\* Failed to terminate tmr.*`<br>- Suspend of IP block failed: `\*ERROR\* suspend of IP block <\w+> failed.*`<br>- amdgpu Page Fault: `(amdgpu \w{4}:\w{2}:\w{2}\.\w:\s+amdgpu:\s+\[\S...`<br>- Page Fault: `page fault for address.*`<br>- Fatal error during GPU init: `(?:amdgpu)(.*Fatal error during GPU init)\|(Fata...`<br>- PCIe AER Error: `(?:pcieport )(.*AER: aer_status.*)\|(aer_status.*)`<br>- Failed to read journal file: `Failed to read journal file.*`<br>- Journal file corrupted or uncleanly shut down: `journal corrupted or uncleanly shut down.*`<br>- ACPI BIOS Error: `ACPI BIOS Error`<br>- ACPI Error: `ACPI Error`<br>- Filesystem corrupted!: `EXT4-fs error \(device .*\):`<br>- Error in buffered IO, check filesystem integrity: `(Buffer I\/O error on dev)(?:ice)? (\w+)`<br>- PCIe card no longer present: `pcieport (\w+:\w+:\w+\.\w+):\s+(\w+):\s+(Slot\(...`<br>- PCIe Link Down: `pcieport (\w+:\w+:\w+\.\w+):\s+(\w+):\s+(Slot\(...`<br>- Mismatched clock configuration between PCIe device and host: `pcieport (\w+:\w+:\w+\.\w+):\s+(\w+):\s+(curren...`<br>- RAS Correctable Error: `(?:\d{4}-\d+-\d+T\d+:\d+:\d+,\d+[+-]\d+:\d+)?(....`<br>- RAS Uncorrectable Error: `(?:\d{4}-\d+-\d+T\d+:\d+:\d+,\d+[+-]\d+:\d+)?(....`<br>- RAS Deferred Error: `(?:\d{4}-\d+-\d+T\d+:\d+:\d+,\d+[+-]\d+:\d+)?(....`<br>- RAS Corrected PCIe Error: `((?:\[Hardware Error\]:\s+)?event severity: cor...`<br>- GPU Reset: `(?:\d{4}-\d+-\d+T\d+:\d+:\d+,\d+[+-]\d+:\d+)?(....`<br>- GPU reset failed: `(?:\d{4}-\d+-\d+T\d+:\d+:\d+,\d+[+-]\d+:\d+)?(....`<br>- ACA Error: `(Accelerator Check Architecture[^\n]*)(?:\n[^\n...`<br>- ACA Error: `(Accelerator Check Architecture[^\n]*)(?:\n[^\n...`<br>- MCE Error: `\[Hardware Error\]:.+MC\d+_STATUS.*(?:\n.*){0,5}`<br>- Mode 2 Reset Failed: `(?:\d{4}-\d+-\d+T\d+:\d+:\d+,\d+[+-]\d+:\d+)? (...`<br>- RAS Corrected Error: `(?:\d{4}-\d+-\d+T\d+:\d+:\d+,\d+[+-]\d+:\d+)?(....`<br>- SGX Error: `x86/cpu: SGX disabled by BIOS`<br>- GPU Throttled: `amdgpu \w{4}:\w{2}:\w{2}.\w: amdgpu: WARN: GPU ...`<br>- LNet: ko2iblnd has no matching interfaces: `(?:\[[^\]]+\]\s*)?LNetError:.*ko2iblnd:\s*No ma...`<br>- LNet: Error starting up LNI: `(?:\[[^\]]+\]\s*)?LNetError:\s*.*Error\s*-?\d+\...`<br>- Lustre: network initialisation failed: `LustreError:.*ptlrpc_init_portals\(\).*network ...` | [DmesgData](#DmesgData-Model) | [DmesgCollector](#Collector-Class-DmesgCollector) | [DmesgAnalyzer](#Data-Analyzer-Class-DmesgAnalyzer) |
|
|
14
14
|
| FabricsPlugin | ibstat<br>ibv_devinfo<br>ls -l /sys/class/infiniband/*/device/net<br>mst start<br>mst status -v<br>ofed_info -s<br>rdma dev<br>rdma link | - | [FabricsDataModel](#FabricsDataModel-Model) | [FabricsCollector](#Collector-Class-FabricsCollector) | - |
|
|
15
|
-
| JournalPlugin | journalctl --no-pager --system --output=short-iso |
|
|
15
|
+
| JournalPlugin | journalctl --no-pager --system --output=short-iso<br>journalctl --no-pager --system --output=json | **Analyzer Args:**<br>- `check_priority`: Optional[int]<br>- `group`: bool | [JournalData](#JournalData-Model) | [JournalCollector](#Collector-Class-JournalCollector) | [JournalAnalyzer](#Data-Analyzer-Class-JournalAnalyzer) |
|
|
16
16
|
| KernelPlugin | sh -c 'uname -a'<br>wmic os get Version /Value | **Analyzer Args:**<br>- `exp_kernel`: Union[str, list]<br>- `regex_match`: bool | [KernelDataModel](#KernelDataModel-Model) | [KernelCollector](#Collector-Class-KernelCollector) | [KernelAnalyzer](#Data-Analyzer-Class-KernelAnalyzer) |
|
|
17
17
|
| KernelModulePlugin | cat /proc/modules<br>modinfo amdgpu<br>wmic os get Version /Value | **Analyzer Args:**<br>- `kernel_modules`: dict[str, dict]<br>- `regex_filter`: list[str] | [KernelModuleDataModel](#KernelModuleDataModel-Model) | [KernelModuleCollector](#Collector-Class-KernelModuleCollector) | [KernelModuleAnalyzer](#Data-Analyzer-Class-KernelModuleAnalyzer) |
|
|
18
18
|
| MemoryPlugin | free -b<br>lsmem<br>numactl -H<br>wmic OS get FreePhysicalMemory /Value; wmic ComputerSystem get TotalPhysicalMemory /Value | **Analyzer Args:**<br>- `ratio`: float<br>- `memory_threshold`: str | [MemoryDataModel](#MemoryDataModel-Model) | [MemoryCollector](#Collector-Class-MemoryCollector) | [MemoryAnalyzer](#Data-Analyzer-Class-MemoryAnalyzer) |
|
|
@@ -275,6 +275,7 @@ Read journal log via journalctl.
|
|
|
275
275
|
|
|
276
276
|
- **SUPPORTED_OS_FAMILY**: `{<OSFamily.LINUX: 3>}`
|
|
277
277
|
- **CMD**: `journalctl --no-pager --system --output=short-iso`
|
|
278
|
+
- **CMD_JSON**: `journalctl --no-pager --system --output=json`
|
|
278
279
|
|
|
279
280
|
### Provides Data
|
|
280
281
|
|
|
@@ -283,6 +284,7 @@ JournalData
|
|
|
283
284
|
### Commands
|
|
284
285
|
|
|
285
286
|
- journalctl --no-pager --system --output=short-iso
|
|
287
|
+
- journalctl --no-pager --system --output=json
|
|
286
288
|
|
|
287
289
|
## Collector Class KernelCollector
|
|
288
290
|
|
|
@@ -866,6 +868,7 @@ Data model for journal logs
|
|
|
866
868
|
### Model annotations and fields
|
|
867
869
|
|
|
868
870
|
- **journal_log**: `str`
|
|
871
|
+
- **journal_content_json**: `list[nodescraper.plugins.inband.journal.journaldata.JournalJsonEntry]`
|
|
869
872
|
|
|
870
873
|
## KernelDataModel Model
|
|
871
874
|
|
|
@@ -1248,6 +1251,16 @@ Check dmesg for errors
|
|
|
1248
1251
|
- - LNet: Error starting up LNI: `(?:\[[^\]]+\]\s*)?LNetError:\s*.*Error\s*-?\d+\...`
|
|
1249
1252
|
- - Lustre: network initialisation failed: `LustreError:.*ptlrpc_init_portals\(\).*network ...`
|
|
1250
1253
|
|
|
1254
|
+
## Data Analyzer Class JournalAnalyzer
|
|
1255
|
+
|
|
1256
|
+
### Description
|
|
1257
|
+
|
|
1258
|
+
Check journalctl for errors
|
|
1259
|
+
|
|
1260
|
+
**Bases**: ['DataAnalyzer']
|
|
1261
|
+
|
|
1262
|
+
**Link to code**: [journal_analyzer.py](https://github.com/amd/node-scraper/blob/HEAD/nodescraper/plugins/inband/journal/journal_analyzer.py)
|
|
1263
|
+
|
|
1251
1264
|
## Data Analyzer Class KernelAnalyzer
|
|
1252
1265
|
|
|
1253
1266
|
### Description
|
|
@@ -1413,8 +1426,10 @@ Check sysctl matches expected sysctl details
|
|
|
1413
1426
|
|
|
1414
1427
|
### Annotations / fields
|
|
1415
1428
|
|
|
1416
|
-
- **required_cmdline**: `Union[str,
|
|
1417
|
-
- **banned_cmdline**: `Union[str,
|
|
1429
|
+
- **required_cmdline**: `Union[str, List]`
|
|
1430
|
+
- **banned_cmdline**: `Union[str, List]`
|
|
1431
|
+
- **os_overrides**: `Dict[str, nodescraper.plugins.inband.cmdline.cmdlineconfig.OverrideConfig]`
|
|
1432
|
+
- **platform_overrides**: `Dict[str, nodescraper.plugins.inband.cmdline.cmdlineconfig.OverrideConfig]`
|
|
1418
1433
|
|
|
1419
1434
|
## Analyzer Args Class DeviceEnumerationAnalyzerArgs
|
|
1420
1435
|
|
|
@@ -1440,6 +1455,21 @@ Check sysctl matches expected sysctl details
|
|
|
1440
1455
|
- **dkms_version**: `Union[str, list]`
|
|
1441
1456
|
- **regex_match**: `bool`
|
|
1442
1457
|
|
|
1458
|
+
## Analyzer Args Class JournalAnalyzerArgs
|
|
1459
|
+
|
|
1460
|
+
### Description
|
|
1461
|
+
|
|
1462
|
+
Arguments for journal analyzer
|
|
1463
|
+
|
|
1464
|
+
**Bases**: ['TimeRangeAnalysisArgs']
|
|
1465
|
+
|
|
1466
|
+
**Link to code**: [analyzer_args.py](https://github.com/amd/node-scraper/blob/HEAD/nodescraper/plugins/inband/journal/analyzer_args.py)
|
|
1467
|
+
|
|
1468
|
+
### Annotations / fields
|
|
1469
|
+
|
|
1470
|
+
- **check_priority**: `Optional[int]`
|
|
1471
|
+
- **group**: `bool`
|
|
1472
|
+
|
|
1443
1473
|
## Analyzer Args Class KernelAnalyzerArgs
|
|
1444
1474
|
|
|
1445
1475
|
**Bases**: ['AnalyzerArgs']
|