The problem seems to be that the particular netprofiler misses some configured services. To configure the missing service would potentially require an additional license. The easiest way to work around this issue to comment out a line in the steelscript source code.
Based on original post, the absolute file name to be edited is :
C:\My Program Files\Python27\lib\site-packages\steelscript\netprofiler\core\_constants.py
In that file, line 20 is shown as : ’msq’. Add a ‘#’ to the left as #’msq’ to comment out the line. Save the file and rerun the script, the problem should go away.
The title of this post is a warning message, which is not related with the above issue.
Hey wenxuan guo,
Your response was really clear and helpful. After adding '#' before 'msq' the error message is gone. However, now I am getting an unexpected result.
As you can see in the screenshot each row starts and ends with a 'u' which is not the case for the returned result of the example I am following : https://support.riverbed.com/apis/steelscript/netprofiler/tutorial.html
In fact, I think this result is randomly generated because it's never the same each time I execute the script and most of these IP addresses are not monitored by the appliance on which I am executing the script.
Do you have any idea about what's happening please?
Your help would be greatly appreciated.
The reason you got different results is probably that you were using 'last 5 m' in your script, which means the script was querying data for the last 5 minutes before the current running time.
For fixed time ranges, you can use strings such as ""2016-07-05 22:00:00 to 2016-07-05 22:05:00"".
Thank you for your response. You were right, I just tested the example you've given me and the result remains the same this time.
However, I still don't understand the meaning of the 'u' letters appearing within the returned result.
I also would like to know if it's possible to specify in the script the interface to analyse because with this script the result contains dozens of IP addresses of different clients. In other terms, is there any way to only analyse the traffic coming from a specified source.
I thought about the TrafficFilter Object to do this, but I can't find any detailed documentation about this Object.
Thank you for your help.
'u' indicates the string is a unicode string. Below is a link that tells the background.
You are right about using TrafficFilter to see traffic from a specified source. There should be other netprofiler example scripts in your workspace that shows how to use TrafficFilter object. As for specific traffic expressions, try 'srv host <IP address>'. To find all the legit syntax for traffic expressions, you can go to the help window on your netprofiler UI and search for traffic expressions.
Hope it helps
As always your help permitted me to resolve my issues and I want to thank you for that.
For my last mile of tests with SteelScript I have a few other questions to ask:
1. Which is the best way to find the appropriate triple(realm, centricity, groupby) to get a specific column. For example, if I am interessted in the ID_SRV_HOST_ID column how can I figure out which type of report and groupby attribute I have to use?
2. My second question is about the direction (IN/OUT) when running an application report with scripts. As you will find on the screenshots the Avg Bytes/s (Tx) and Avg Bytes/s (Rx) displayed on the terminal are the same. In fact, it is the sum of the Avg Bytes/s (Tx) and Avg Bytes/s (Rx) displayed on the GUI. So I guess there is a way to get the correct values by specifying the direction on the script. A screenshot of the script is attached as well.
Unfortunately, there is not a straightforward way to map a column to a triple of (realm, centricity, groupby). One column can exist in multiple triples. You can use the below command to see all available columns with respect to triple of realm, centricity and groupby.
steel netprofiler columns <profiler-address> -u <user> -p <password> -r <realm> -c <centricity> -g <groupby>
You can also find the combination of triplets at https://support.riverbed.com/apis/steelscript/netprofiler/columns.html.
Regarding your second question, I was able to replicate the same issue. It turns out there is a bug in the underlying API code, and our Engineering team is working on a fix for it.
In case you want to see the traffic on each direction, I would suggest firstly you can run the script to get the application names with largest traffic (which you have done), then run a report using expression 'app <application_name>' as traffic filter with groupby 'hos' and key column host_ip. Then you will see Avg Bytes/s per direction for each host for the specified application.
On another note, I was testing the report using NetProfiler GUI, with report by set as "applications". I found that there is a check box "separate applications served from applications consumed". If the box is unchecked, there will be only one table with same in/out traffic bytes, as you got from the script. With box checked, there will be two tables, with different in/out traffic bytes in each table.
Hope it helps