mirror of
				https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
				synced 2025-10-31 02:38:03 +00:00 
			
		
		
		
	run dataplane_to_grafana from remote machine
Signed-off-by: Matthew Stidham <stidmatt@gmail.com>
This commit is contained in:
		| @@ -336,9 +336,10 @@ class cv_test(Realm): | ||||
|                 location = location.replace('\"Report Location:::', '') | ||||
|                 location = location.replace('\"', '') | ||||
|                 report = lf_rpt() | ||||
|                 if graphgroupsfile: | ||||
|                     filelocation=open(graphgroupsfile, 'w') | ||||
|                     filelocation.write(location) | ||||
|                 print(graphgroupsfile) | ||||
|                 if graphgroupsfile is not None: | ||||
|                     filelocation = open(graphgroupsfile, 'a') | ||||
|                     filelocation.write(location + '/kpi.csv\n') | ||||
|                     filelocation.close() | ||||
|                 print(location) | ||||
|                 self.report_dir = location | ||||
| @@ -347,8 +348,9 @@ class cv_test(Realm): | ||||
|                         print(lf_host) | ||||
|                         report.pull_reports(hostname=lf_host, username=lf_user, password=lf_password, | ||||
|                                             report_location=location) | ||||
|                 except: | ||||
|                     raise Exception("Could not find Reports") | ||||
|                 except Exception as e: | ||||
|                     print("SCP failed, user %s, password %s, dest %s", (lf_user, lf_password, lf_host)) | ||||
|                     raise e#Exception("Could not find Reports") | ||||
|                 break | ||||
|  | ||||
|             # Of if test stopped for some reason and could not generate report. | ||||
| @@ -372,7 +374,6 @@ class cv_test(Realm): | ||||
|             else: | ||||
|                 break | ||||
|  | ||||
|  | ||||
|     # Takes cmd-line args struct or something that looks like it. | ||||
|     # See csv_to_influx.py::influx_add_parser_args for options, or --help. | ||||
|     def check_influx_kpi(self, args): | ||||
| @@ -389,19 +390,20 @@ class cv_test(Realm): | ||||
|         print("Creating influxdb connection.\n") | ||||
|         # lfjson_host would be if we are reading out of LANforge or some other REST | ||||
|         # source, which we are not.  So dummy those out. | ||||
|         influxdb = RecordInflux(_lfjson_host = "", | ||||
|                                 _lfjson_port = "", | ||||
|                                 _influx_host = args.influx_host, | ||||
|                                 _influx_port = args.influx_port, | ||||
|                                 _influx_org = args.influx_org, | ||||
|                                 _influx_token = args.influx_token, | ||||
|                                 _influx_bucket = args.influx_bucket) | ||||
|         influxdb = RecordInflux(_lfjson_host="", | ||||
|                                 _lfjson_port="", | ||||
|                                 _influx_host=args.influx_host, | ||||
|                                 _influx_port=args.influx_port, | ||||
|                                 _influx_org=args.influx_org, | ||||
|                                 _influx_token=args.influx_token, | ||||
|                                 _influx_bucket=args.influx_bucket) | ||||
|  | ||||
|         path = "%s/kpi.csv" % (self.report_dir) | ||||
|  | ||||
|         path = "%s/kpi.csv"%(self.report_dir) | ||||
|         print("Attempt to submit kpi: ", path) | ||||
|         csvtoinflux = CSVtoInflux(influxdb = influxdb, | ||||
|                                   target_csv = path, | ||||
|                                   _influx_tag = args.influx_tag) | ||||
|         csvtoinflux = CSVtoInflux(influxdb=influxdb, | ||||
|                                   target_csv=path, | ||||
|                                   _influx_tag=args.influx_tag) | ||||
|         print("Posting to influx...\n") | ||||
|         csvtoinflux.post_to_influx() | ||||
|  | ||||
| @@ -483,4 +485,3 @@ class cv_test(Realm): | ||||
|         if dialog[0]["LAST"]["response"] != "NO-DIALOG": | ||||
|             print("Popup Dialog:\n") | ||||
|             print(dialog[0]["LAST"]["response"]) | ||||
|  | ||||
|   | ||||
| @@ -6,11 +6,16 @@ Help() | ||||
| { | ||||
|   echo "This bash script creates a DUT, loads a scenario, runs a WiFi Capacity test, and saves it to Influx" | ||||
| } | ||||
| MGR=192.168.1.7 | ||||
| INFLUXTOKEN=Tdxwq5KRbj1oNbZ_ErPL5tw_HUH2wJ1VR4dwZNugJ-APz__mEFIwnqHZdoobmQpt2fa1VdWMlHQClR8XNotwbg== | ||||
| GRAFANATOKEN=eyJrIjoiZTJwZkZlemhLQVNpY3hiemRjUkNBZ3k2RWc3bWpQWEkiLCJuIjoibWFzdGVyIiwiaWQiOjF9 | ||||
| MGR=192.168.1.6 | ||||
| #INFLUXTOKEN=Tdxwq5KRbj1oNbZ_ErPL5tw_HUH2wJ1VR4dwZNugJ-APz__mEFIwnqHZdoobmQpt2fa1VdWMlHQClR8XNotwbg== | ||||
| #GRAFANATOKEN=eyJrIjoiZTJwZkZlemhLQVNpY3hiemRjUkNBZ3k2RWc3bWpQWEkiLCJuIjoibWFzdGVyIiwiaWQiOjF9 | ||||
| INFLUXTOKEN=31N9QDhjJHBu4eMUlMBwbK3sOjXLRAhZuCzZGeO8WVCj-xvR8gZWWvRHOcuw-5RHeB7xBFnLs7ZV023k4koR1A== | ||||
| GRAFANATOKEN=eyJrIjoiS1NGRU8xcTVBQW9lUmlTM2dNRFpqNjFqV05MZkM0dzciLCJuIjoibWF0dGhldyIsImlkIjoxfQ== | ||||
| TESTBED=Stidmatt-01 | ||||
| GROUPS=/tmp/lf_cv_rpt_filelocation.txt | ||||
| INFLUXBUCKET=stidmatt | ||||
| INFLUX_MGR=192.168.100.201 | ||||
|  | ||||
| #Replace my arguments with your setup.  Separate your ssid arguments with spaces and ensure the names are lowercase | ||||
| echo "Make new DUT" | ||||
| ./create_chamberview_dut.py --lfmgr ${MGR} --dut_name DUT_TO_GRAFANA_DUT --ssid "ssid_idx=0 ssid=lanforge security=WPA2 password=password bssid=04:f0:21:2c:41:84 traffic=wiphy1" | ||||
| @@ -23,9 +28,9 @@ echo "Build Chamber View Scenario" #change the lfmgr to your system, set the rad | ||||
| #config_name doesn't matter, change the influx_host to your LANforge device, | ||||
| echo "run Dataplane test" | ||||
| ./lf_dataplane_test.py --mgr ${MGR} --instance_name dataplane-instance --config_name test_config --upstream 1.1.eth1 \ | ||||
| --station 1.1.14 --dut linksys-8450 --influx_host ${MGR} --influx_port 8086 --influx_org Candela --influx_token ${INFLUXTOKEN} \ | ||||
| --influx_bucket lanforge --influx_tag testbed ${TESTBED} --graphgroups ${GROUPS} | ||||
| --station 1.1.14 --dut linksys-8450 --influx_host ${INFLUX_MGR} --influx_port 8086 --influx_org Candela --influx_token ${INFLUXTOKEN} \ | ||||
| --influx_bucket ${INFLUXBUCKET} --influx_tag testbed ${TESTBED} --graphgroups ${GROUPS} | ||||
|  | ||||
| ./grafana_profile.py --create_custom --title ${TESTBED} --influx_bucket lanforge --mgr 192.168.1.7 --grafana_token ${GRAFANATOKEN} \ | ||||
| --grafana_host 192.168.1.7 --testbed ${TESTBED} --graph-groups ${GROUPS} \ | ||||
| ./grafana_profile.py --create_custom --title ${TESTBED} --influx_bucket ${INFLUXBUCKET} --mgr ${MGR} --grafana_token ${GRAFANATOKEN} \ | ||||
| --grafana_host ${INFLUX_MGR} --testbed ${TESTBED} --graph-groups ${GROUPS} \ | ||||
| --scripts Dataplane --scripts 'WiFi Capacity' | ||||
|   | ||||
| @@ -3,7 +3,7 @@ import subprocess | ||||
| def main(): | ||||
|     print("Installing Script Python3 Dependencies") | ||||
|     packages = ['pandas', 'plotly', 'numpy', 'cryptography', 'paramiko', 'bokeh','pyarrow', 'websocket-client', 'xlsxwriter',\ | ||||
|          'pyshark', 'influxdb', 'influxdb-client', 'matplotlib', 'pdfkit', 'pip-search', 'pyserial', 'pexpect-serial' ] | ||||
|          'pyshark', 'influxdb', 'influxdb-client', 'matplotlib', 'pdfkit', 'pip-search', 'pyserial', 'pexpect-serial' ,'scp'] | ||||
|     packages_installed = [] | ||||
|     packages_failed =[] | ||||
|     for package in packages: | ||||
|   | ||||
| @@ -5,11 +5,15 @@ | ||||
| # into influxdb.  As final step, it builds a grafana dashboard for the KPI information. | ||||
|  | ||||
| # Define some common variables.  This will need to be changed to match your own testbed. | ||||
| MGR=192.168.1.7 | ||||
| INFLUXTOKEN=Tdxwq5KRbj1oNbZ_ErPL5tw_HUH2wJ1VR4dwZNugJ-APz__mEFIwnqHZdoobmQpt2fa1VdWMlHQClR8XNotwbg== | ||||
| MGR=192.168.1.6 | ||||
| INFLUX_MGR=192.168.100.201 | ||||
| #INFLUXTOKEN=Tdxwq5KRbj1oNbZ_ErPL5tw_HUH2wJ1VR4dwZNugJ-APz__mEFIwnqHZdoobmQpt2fa1VdWMlHQClR8XNotwbg== | ||||
| INFLUXTOKEN=31N9QDhjJHBu4eMUlMBwbK3sOjXLRAhZuCzZGeO8WVCj-xvR8gZWWvRHOcuw-5RHeB7xBFnLs7ZV023k4koR1A== | ||||
| TESTBED=Stidmatt-01 | ||||
| GRAFANATOKEN=eyJrIjoiZTJwZkZlemhLQVNpY3hiemRjUkNBZ3k2RWc3bWpQWEkiLCJuIjoibWFzdGVyIiwiaWQiOjF9 | ||||
| GROUPS=/tmp/lf_cv_rpt_filelocation.txt | ||||
| INFLUXBUCKET=stidmatt | ||||
| #GRAFANATOKEN=eyJrIjoiZTJwZkZlemhLQVNpY3hiemRjUkNBZ3k2RWc3bWpQWEkiLCJuIjoibWFzdGVyIiwiaWQiOjF9 | ||||
| GRAFANATOKEN=eyJrIjoiS1NGRU8xcTVBQW9lUmlTM2dNRFpqNjFqV05MZkM0dzciLCJuIjoibWF0dGhldyIsImlkIjoxfQ== | ||||
| GROUPS=lf_cv_rpt_filelocation.txt | ||||
|  | ||||
| # Create/update new DUT. | ||||
| #Replace my arguments with your setup.  Separate your ssid arguments with spaces and ensure the names are lowercase | ||||
| @@ -21,19 +25,26 @@ echo "Make new DUT" | ||||
| echo "Build Chamber View Scenario" | ||||
| #change the lfmgr to your system, set the radio to a working radio on your LANforge system, same with the ethernet port. | ||||
| ./create_chamberview.py --lfmgr ${MGR} --create_scenario DUT_TO_GRAFANA_SCENARIO \ | ||||
| --line "Resource=1.1 Profile=default Amount=32 Uses-1=wiphy1 DUT=DUT_TO_GRAFANA_DUT Traffic=wiphy1 Freq=-1" \ | ||||
| --line "Resource=1.1 Profile=default Amount=4 Uses-1=wiphy1 DUT=DUT_TO_GRAFANA_DUT Traffic=wiphy1 Freq=-1" \ | ||||
| --line "Resource=1.1 Profile=upstream Amount=1 Uses-1=eth1 DUT=DUT_TO_GRAFANA_DUT Traffic=eth1 Freq=-1" | ||||
|  | ||||
| # Run capacity test on the stations created by the chamber view scenario. | ||||
| # Submit the KPI data into the influxdb. | ||||
| #config_name doesn't matter, change the influx_host to your LANforge device, | ||||
| echo "run wifi capacity test" | ||||
| ./lf_wifi_capacity_test.py --config_name Custom --create_stations --radio wiphy1 --pull_report --influx_host ${MGR} \ | ||||
| --influx_port 8086 --influx_org Candela --influx_token  ${INFLUXTOKEN} --influx_bucket lanforge --mgr ${MGR} \ | ||||
| --instance_name testing --upstream eth1 --test_rig ${TESTBED} --graphgroups ${GROUPS} | ||||
| ./lf_wifi_capacity_test.py --config_name Custom --create_stations --radio wiphy1 --pull_report --influx_host ${INFLUX_MGR} \ | ||||
| --influx_port 8086 --influx_org Candela --influx_token  ${INFLUXTOKEN} --influx_bucket ${INFLUXBUCKET} --mgr ${MGR} \ | ||||
| --instance_name testing --upstream eth1 --test_rig ${TESTBED} --graphgroups lf_cv_rpt_filelocation.txt --lf_password lanforgepassword | ||||
|  | ||||
|  | ||||
| #config_name doesn't matter, change the influx_host to your LANforge device, | ||||
| echo "run Dataplane test" | ||||
| ./lf_dataplane_test.py --mgr ${MGR} --instance_name dataplane-instance --config_name test_config --upstream 1.1.eth1 \ | ||||
| --station 1.1.06 --dut linksys-8450 --influx_host ${INFLUX_MGR} --influx_port 8086 --influx_org Candela --influx_token ${INFLUXTOKEN} \ | ||||
| --influx_bucket ${INFLUXBUCKET} --influx_tag testbed ${TESTBED} --graphgroups lf_cv_rpt_filelocation.txt | ||||
|  | ||||
| # Build grafana dashboard and graphs view for the KPI in the capacity test. | ||||
| ./grafana_profile.py --create_custom --title ${TESTBED} --influx_bucket lanforge --mgr 192.168.1.7 --grafana_token ${GRAFANATOKEN} \ | ||||
| --grafana_host 192.168.1.7 --testbed ${TESTBED} --graph-groups  ${GROUPS} --scripts Dataplane --scripts 'WiFi Capacity' | ||||
| ./grafana_profile.py --create_custom --title ${TESTBED} --influx_bucket ${INFLUXBUCKET} --mgr ${MGR} --grafana_token ${GRAFANATOKEN} \ | ||||
| --grafana_host ${INFLUX_MGR} --testbed ${TESTBED} --graph-groups  lf_cv_rpt_filelocation.txt --scripts Dataplane --scripts 'WiFi Capacity' | ||||
|  | ||||
| rm ${GROUPS} | ||||
| #rm ${GROUPS} | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Matthew Stidham
					Matthew Stidham