Using SAP Lumira to analyze network connectivity information
SAP Lumira is a desktop software that allows you to build easily interactive graphics from your data sets.
SAP Lumira helps you to prepare and pre-process the input data, create visualizations with different types of graphics and to prepare stories pinpointing your the conclusions of your analysis. All in a user-friendly drag and drop environment.
SAP Lumira delivers faster time-to-insight in a repeatable, self-service way
SAP Lumira Personal Edition is free of charge and can be used to load data from Excel or .csv files.
You can download SAP Lumira Personal Edition from this link
With SAP Lumira Standard Edition you can additionally:
- Connect to database servers
- Perform analysis in live data with SAP HANA
SAP Lumira use case example
In this example we use SAP Lumira to visualize the date from a .csv file that contains the results of some network connectivity checks:
One server “serverA” is connected via a WAN to three different servers “host1″ , “host2″ and “host3″. The connection fails more often than expected.
We setup a mechanism based in “ping” executable that continously test the three servers. and store the result in the result.cvs file as:
Each line in the file contains info about the target host being tested, the date and hour (one test me minute) and the result of the test as percentage of packets loss detected in the test.
So 0 stands for 0% packet loss (all OK) , 100 means 100% packet loss or connection was not available during that period and other values in between show the quality of the line.
We add more detailed info on how we implemented this test in the anex at the end of the post.
This result.csv file is the input into SAP Lumira.
Preparing the data
- We start SAP Lumira in oir PC and go to File -> New ->
- Then we select CVS and the the “result.csv” file:
- Then go to “Prepare” tab and rename the columns as “host” , “date”, “time” and “packet_loss”:
- We rename the measure automatically created to “plm”:
- Also change agregation from “Sum” to “Average”:
- We convert column “date” to type date selecting the propoer date format “YYYY-MM-DD”. A new column is crreated “date(2)” and treated as a date.
Creating the first visualization
Now we go to the “Visualize” tab:
We drag & drop the measure packet_loss to “measures”, the attribute time to “attributes” and the attributes “host” and “date” as filters (selecting as filter host=”host1″ and date “25.11.2013″:
We select graphic of type “Line chart”.
As result we see how the connectivity behaved that day for host “host1″.
Then we “save” the view.
Now we can go to to the “Compose” tab, drag & drop our view into the first board of our story.
We can also rename and add text or images to the board.
Creating interactive boards
Now we create a second visualization under “Visualize” tabby clicking “Add new visualization”.
Now we add again “plm” as measure and we add “time” , “date(2)”and “host” as attributes (order matters) and select type og graphic (line):
We are not able to see any graphic because “the maximum number of 10.000 points has been reached”. We save and go to “Compose” tab.
We add a new board and drag&drop the new view.
We add “host” and “date” as controls (drag&drop):
Now we have an interactive board. We can display the graphic for several hosts and days by activating the controls.
These are the Unix scrips used to obtain the input data.
$ cat test_ping.sh
### test connectivity with ping ###
[ $# -ne 1 ]
echo "Usage: $0 IPAddress"
echo Testing ping for IP $IP
[ $c -eq 1 ]
echo Testing pingv22 packets $DATE $TIME $IP >> $log_file
ping -c 60 -v $IP >> $log_file
This Unix script is continously executing against the target server. The ping command executes 60 tests (one per second).
We run the script in background once per target host that we are monitoring:
$ test_ping.sh host1 &
$ test_ping.sh host2 &
$ test_ping.sh host3 &
As result we have one log files per target host and per day with the raw results of the test:
$ cat test_ping_v22-host1-2013-11-26.log
64 bytes from 10.2.13.20: icmp_seq=56 ttl=118 time=42.0 ms
64 bytes from 10.2.13.20: icmp_seq=57 ttl=118 time=42.0 ms
64 bytes from 10.2.13.20: icmp_seq=58 ttl=118 time=42.3 ms
64 bytes from 10.2.13.20: icmp_seq=59 ttl=118 time=42.3 ms
64 bytes from 10.2.13.20: icmp_seq=60 ttl=118 time=42.1 ms
— host1 ping statistics —
60 packets transmitted, 60 received,
0% packet loss, time 59080ms
rtt min/avg/max/mdev = 41.755/42.218/43.780/0.429 ms
Testing pingv22 packets 2013-11-27 00.01.27 host1
PING host1 (10.2.13.20) 56(84) bytes of data.
64 bytes from 10.2.13.20: icmp_seq=1 ttl=118 time=42.3 ms
64 bytes from 10.2.13.20: icmp_seq=2 ttl=118 time=41.7 ms
64 bytes from 10.2.13.20: icmp_seq=3 ttl=118 time=42.8 ms
64 bytes from 10.2.13.20: icmp_seq=4 ttl=118 time=42.2 ms
Then we use the following command and these two auxiliary script filter_log.sh and map.sh to extract the test results and from the log files and to build the result.csv file:
$ cat filter_log.sh
Then the command executed to generate the result.csv file is: