From f3cf739971a3e6d4625aa4dde6df399eda6115f3 Mon Sep 17 00:00:00 2001 From: yvolynets-mlnx <50697593+yvolynets-mlnx@users.noreply.github.com> Date: Wed, 18 Sep 2019 21:47:59 +0300 Subject: [PATCH] Monitoring of hardware resources consumed by a device (#439) * Added initial DUT monitor HLD Signed-off-by: Yuriy Volynets --- doc/DUT_monitor_HLD.md | 246 +++++++++++++++++++++ images/dut_monitor_hld/Dut_monitor_ssh.jpg | Bin 0 -> 21118 bytes images/dut_monitor_hld/Load_flaw.jpg | Bin 0 -> 67603 bytes 3 files changed, 246 insertions(+) create mode 100644 doc/DUT_monitor_HLD.md create mode 100755 images/dut_monitor_hld/Dut_monitor_ssh.jpg create mode 100755 images/dut_monitor_hld/Load_flaw.jpg diff --git a/doc/DUT_monitor_HLD.md b/doc/DUT_monitor_HLD.md new file mode 100644 index 0000000000..21e6233358 --- /dev/null +++ b/doc/DUT_monitor_HLD.md @@ -0,0 +1,246 @@ +Table of Contents + +- [Scope](#scope) +- [Overview](#overview) +- [Quality Objective](#quality-objective) +- [Module design](#module-design) + - [Overall design](#overall-design) + - [Updated directory structure](#updated-directory-structure) + - [Thresholds overview](#thresholds-overview) + - [Thresholds configuration file](#thresholds-configuration-file) + - [Thresholds template](#thresholds-template) + - [Preliminary defaults](#preliminary-defaults) +- [Pytest plugin overview](#pytest-plugin-overview) + - [Pytest option](#pytest-option) + - [Pytest hooks](#pytest-hooks) + - [Classes](#classes) +- [Interaction with dut](#interaction-with-dut) +- [Tests execution flaw](#tests-execution-flaw) +- [Extended info to print for error cases](#extended-info-to-print-for-error-cases) +- [Commands to fetch monitoring data](#commands-to-fetch-monitoring-data) +- [Possible future expansion](#possible-future-expansion) + + + +### Scope + +This document describes the high level design of verification the hardware resources consumed by a device. The hardware resources which are currently verified are CPU, RAM and HDD. + +This implementation will be integrated in test cases written on Pytest framework. + +### Overview + +During tests run test cases perform many manipulations with DUT including different Linux and SONiC configurations and sending traffic. + +To be sure that CPU, RAM and HDD resources utilization on DUT are not increasing within tests run, those parameters can be checked after each finished test case. + +Purpose of the current feature is to - verify that previously listed resources are not increasing during tests run. It achieves by performing verification after each test case. + +### Quality Objective ++ Ensure CPU consumption on DUT does not exceed threshold ++ Ensure RAM consumption on DUT does not exceed threshold ++ Ensure used space in the partition mounted to the HDD "/" root folder does not exceed threshold + +### Module design +#### Overall design +The following figure depicts current feature integration with existed Pytest framework. + +![](https://github.com/yvolynets-mlnx/SONiC/blob/dut_monitor/images/dut_monitor_hld/Load_flaw.jpg) + +Newly introduced feature consists of: ++ Pytest plugin – pytest_dut_monitor.py. Plugin defines: + + pytest hooks: pytest_addoption , pytest_configure, pytest_unconfigure + + pytest fixtures: dut_ssh, dut_monitor + + DUTMonitorPlugin – class to be registered as plugin. Define pytest fixtures described above + + DUTMonitorClient - class to control DUT monitoring over SSH ++ Pytest plugin register new options: "--dut_monitor", "--thresholds_file" ++ Python module - dut_monitor.py. Which is running on DUT and collects CPU, RAM and HDD data and writes it to the log files. There will be created three new files: cpu.log, ram.log, hdd.log. + +#### Updated directory structure ++ ./sonic-mgmt/tests/plugins/\_\_init__.yml ++ ./sonic-mgmt/tests/plugins/dut_monitor/thresholds.yml ++ ./sonic-mgmt/tests/plugins/dut_monitor/pytest_dut_monitor.py ++ ./sonic-mgmt/tests/plugins/dut_monitor/dut_monitor.py ++ ./sonic-mgmt/tests/plugins/dut_monitor/errors.py ++ ./sonic-mgmt/tests/plugins/dut_monitor/\_\_init__.py + +#### Thresholds overview +To be able to verify that CPU, RAM or HDD utilization are not critical on the DUT, there is a need to define specific thresholds. + +List of thresholds: ++ Total system CPU consumption ++ Separate process CPU consumption ++ Time duration of CPU monitoring ++ Average CPU consumption during test run ++ Peak RAM consumption ++ RAM consumption delta before and after test run ++ Used disk space + +```Total system CPU consumption``` - integer value (percentage). Triggers when total peak CPU consumption is >= to defined value during “Peak CPU monitoring duration” seconds. + +```Separate process CPU consumption``` - integer value (percentage). Triggers when peak CPU consumption of any separate process is >= to defined value during “Peak CPU measurement duration” seconds. + +```Time duration of CPU monitoring``` - integer value (seconds). Time frame. Used together with total or process peak CPU consumption verification. + +```Average CPU consumption during test run``` - integer value (percentage). Triggers when the average CPU consumption of the whole system between start/stop monitoring (between start/end test) is >= to defined value. + +```Peak RAM consumption``` – integer value (percentage). Triggers when RAM consumption of the whole system is >= to defined value. + +```RAM consumption delta before and after test``` – integer value (percentage). Difference between consumed RAM before and after test case. Triggers when the difference is >= to defined value. + +```Used disk space``` - integer value (percentage). Triggers when used disk space is >= to defined value. + +#### Thresholds configuration file +Default thresholds are defined in ./sonic-mgmt/tests/plugins/dut_monitor/thresholds.yml file. + +The proposal is to define thresholds for specific platform and its hwsku. Below is template of "thresholds.yml" file, which has defined: general default thresholds, platform default thresholds, specific HWSKU thresholds. + +If HWSKU is not defined for current DUT - platform thresholds will be used. + +If platform is not defined for current DUT - default thresholds will be used. + +##### Thresholds template: +```code +default: + cpu_total: x + cpu_process: x + cpu_measure_duration: x + cpu_total_average: x + ram_peak: x + ram_delta: x + hdd_used: x + +platform X: + hwsku: A + cpu_total: x + cpu_process: x + cpu_measure_duration: x + cpu_total_average: x + ram_peak: x + ram_delta: x + hdd_used: x + ... + default: + cpu_total: 80 + cpu_process: 70 + cpu_measure_duration: 10 + cpu_total_average: 90 + ram_peak: 90 + hdd_used: 75 +... +``` +##### Preliminary defaults +Note: need to be tested to define accurately. + + cpu_total: 90 + cpu_process: 60 + cpu_measure_duration: 10 + cpu_total_average: 90 + ram_peak: 80 + ram_delta: 1 + hdd_used: 80 + +##### How to tune thresholds +1. User can pass its own thresholds file for test run using "--thresholds_file" pytest option. For example: +```code +py.test TEST_RUN_OPTIONS --thresholds_file THRESHOLDS_FILE_PATH +``` +2. User can update thresholds directly in test case by using "dut_monitor" fixture. +For example: +```code +dut_monitor["cpu_total"] = 80 +dut_monitor["ram_peak"] = 90 +... +``` +3. Define thresholds for specific test groups. +For specific test groups like scale, performance, etc. thresholds can be common. In such case "thresholds.yml" file can be created and placed next to the test module file. Pytest framework will automatically discover "thresholds.yml" file and will apply defined thresholds for current tests. + + +### Pytest plugin overview + +#### Pytest option +To enable DUT monitoring for each test case the following pytest console option should be used - "--dut_monitor" + +#### Pytest hooks +dut_monitor.py module defines the following hooks: +##### pytest_addoption(parser) +Register "--dut_monitor" option. This option used for trigger device monitoring. + +Register "--thresholds_file" option. This option takes path to the thresholds file. + +##### pytest_configure(config) +Check whether "--dut_monitor" option is used, if so register DUTMonitorPlugin class as pytest plugin. +##### pytest_unconfigure(config) +Unregister DUTMonitorPlugin plugin. + +### Classes +#### DUTMonitorClient class +Define API for: + ++ Start monitoring on the DUT ++ Stop monitoring on the DUT. Compare measurements with defined thresholds ++ Execute remote commands via SSH ++ Track SSH connection with DUT ++ Automatically restore SSH connection with DUT while in monitoring mode + +#### DUTMonitorPlugin class +Defines the following pytest fixtures: + +##### dut_ssh(autouse=True, scope="session") +Establish SSH connection with a device. Keeps this connection during all tests run. + +If the connection to the DUT is broken during monitoring phase (test performed DUT reboot), it will automatically try to restore connection during some time (for example 5 minutes). + +If the connection will be restored, monitoring will be automatically restored as well and dut_monitor fixture will have monitoring results even if reboot occurred. So, monitoring results will not be lost if in some case DUT will be rebooted. + +If the connection will not be restored, exception will be raised that DUT become inaccessible. + +##### dut_monitor(dut_ssh, autouse=True, scope="function") +- Starts DUT monitoring before test start +- Stops DUT monitoring after test finish +- Get measured values and compare them with defined thresholds +- Pytest error will be generated if any of resources exceed the defined threshold. + + +### Interaction with dut + +![](https://github.com/yvolynets-mlnx/SONiC/blob/dut_monitor/images/dut_monitor_hld/Dut_monitor_ssh.jpg) + +### Tests execution flaw + ++ Start pytest run with added “–dut_monitor” option ++ Before each test case - initialize DUT monitoring ++ Start reading CPU, RAM and HDD values every 2 seconds ++ Start test case ++ Wait the test case to finish ++ Stop reading CPU, RAM and HDD values ++ Display logging message with measured parameters ++ After the end of each test case compare obtained values with defined thresholds ++ Pytest error will be generated if any of resources exceed the defined threshold. Error message will also show extended output about consumed CPU, RAM and HDD, which is described below. Test case status like pass/fail still be shown separately. It gives possibility to have separate results for test cases (pass/fail) and errors if resources consumption exceed the threshold. + + +#### Extended info to print for error cases +Display output of the following commands: + ++ df -h --total /* ++ ps aux --sort rss ++ docker stats --all --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}" + +### Commands to fetch monitoring data + +##### Fetch CPU consumption: +ps -A -o pcpu | tail -n+2 | python -c "import sys; print(sum(float(line) for line in sys.stdin))" +##### Fetch RAM consumption: +show system-memory +OR +ps -A -o rss | tail -n+2 | python -c "import sys; print(sum(float(line) for line in sys.stdin))" + +##### Fetch HDD usage: +df -hm / + + +### Possible future expansion + +Later this functionality can be integrated with some UI interface where will be displayed consumed resources and device health during regression run. As UI board can be used Grafana. + +It can be useful for DUT health debugging and for load/stress testing analysis. diff --git a/images/dut_monitor_hld/Dut_monitor_ssh.jpg b/images/dut_monitor_hld/Dut_monitor_ssh.jpg new file mode 100755 index 0000000000000000000000000000000000000000..4e05acd67d1d0907ef1c35f45a292a81fd3b8c78 GIT binary patch literal 21118 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 ZYdS8i{vM8JvgwLAuay-`IzDpx{{bZm5e5JN literal 0 HcmV?d00001 diff --git a/images/dut_monitor_hld/Load_flaw.jpg b/images/dut_monitor_hld/Load_flaw.jpg new file mode 100755 index 0000000000000000000000000000000000000000..0902650dac7937675cc478a949198e418343c269 GIT binary patch literal 67603 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

O&Sv(rar#E+IB*l~W+W{TL~M(!*5DDi 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 literal 0 HcmV?d00001