Stratusphere API Builder

A few months ago the Stratusphere API was introduced. This API provides a fast and easy to understand method of extracting the various metrics and data captured from Stratusphere UX/FIT directly through a URL call. This data can be extracted into various formats including JSON (JavaScript Object Notation) and CSV files. This gives the ability to integrate the Stratusphere UX/FIT data into any tool you may use without having to understand all the intricacies of the underlying Stratusphere database.

Now with the release of Stratusphere 5.7 using the API has gotten even easier. Now included is a graphical tool, called the Stratusphere API Builder. With this new tool you can quickly build API URL calls with simple graphical point and click selections. In this post I’ll showcase the power of the Stratusphere API, and the ease at which you can use employ Stratusphere metrics and information to perform tasks such as performing ad hoc application audits.

You can access the API builder directly with the following URL.

https://{your.servername.com}/apibuilder/

5.7API-1

Now let’s look at a specific use case as an example, to show the flexibility and ease of use the API Builder.

Use Case:

Audit how many users are using a particular application for yesterday.

Step 1: Select Your Inspector

The first thing we want to do is set our inspector. This focuses the API query on exactly what type of data we want to extract. In this use case we are looking for application related metrics. We want to select the ‘Application Inspector’ from the Main Tab and use the default Basis ‘Application Name’. This will provide application related data summarized and grouped by the Basis, in this case by Application Name.

5.7API-2

Step 2: Select Your Columns

At the bottom of the API Builder interface in a Preview Pane it shows the first 10 rows of data for the API query we are building. It contains the default columns for the Inspector chosen. In our example this is more data then we require so we are going to select a focused set of columns that we want to have as part of the API query.

5.7API-3

On the Columns tab you can select and order the specific columns required. These columns will show in the API query following your Basis (grouping) column or columns. In this example we selected:

  • User Count
  • Machine Count
  • Memory Used KB
  • CPU Used Mhz
  • IO KBs
  • Workload Ranking

This gives us not only the user counts we were looking for per application, but also a Memory, a CPU and IO based metrics. In addition the Workload Ranking was added to show overall resource consumption of an application. Workload is a Stratusphere UX composite metric that looks at a combination of metrics from the desktop’s OS perspective. It provides an excellent overall metric to sort by where you are looking to see what applications are causing the most consumption load on the desktops versus sorting by versus sorting by specific metrics like CPU, Memory or IO.

5.7API-4

Step 3: Set the Sort Order

With our focused set of columns selected we can now set the Sort Order for the API query being built. As mentioned, Workload Ranking is a great metric to determine overall desktop load so we are going to choose that column as our sort. The application with the highest load is ranked # 1 and so on.

The Sort column is selected on the Format tab. In our case we also want the sort to be ‘ascending’ so the top workload rankings are listed first.

5.7API-5

Step 4: Set Filter if required

The Stratusphere API supports an extensive Filtering ability. In this example we are going to add one Filter to our query. Since there are lot of process and applications running in our environment we want to only look at those where 10 or more users are running the specific application.

This is done easily on the Filters tab where we have selected the column ‘User Count’ and added a condition of greater then (>) 10. If additional filters were needed they can be added by checking the ‘green plus sign’ icon.

5.7API-6

Note: In the Preview Pane we have dropped the application with a workload ranking of 2. That is fine and just means that particular application doesn’t match the filter applied. In this case it has less than 10 users running it.

5.7API-7

Step 5: Set the Date Range

When we first defined our use case we indicated we wanted to select the data for ‘Yesterday’. The reason is we plan to run the API query each day and load a spreadsheet with the prior day’s application by user count data.

The date range is defined on the Date tab and here we have selected ‘Yesterday’. Here you can also change the ‘Resolution’ of the query. Resolution is a way of defining how we want to see the data displayed within the date range. Each item in the basis column will be shown by the resolution setting.

The metric columns will also be averaged or totaled (depending on the column) by the resolution setting. A few examples are, by each CID Callback Record, by Day by Hour or just by Day. Sometimes it can be beneficial to return the average or total for each application over the entire time period versus by each record, hour or day.  Notice In our user case, we aren’t using a specific Resolution so all of the metrics for the records of each application will be averaged or totaled over the time frame.

5.7API-8

Step 6: The API Query is complete

We have now completed building our API query for the use case defined. In the preview pane we can see the top 10 rows that would be returned, showing our specific columns selected, sorted correctly and for data over our date range.

5.7API-9

On the right hand side of the API builder you will see your API query and URL built. You would take the API URL and embed that into the tool that will execute your CSV or JSON file extraction. In our example we will use CSV and open it into an Excel spreadsheet.

5.7API-10

This is the final URL you can use for this API Query. Note: Replace the Stratusphere Hub name with your own, in this example the Hub is called ‘demo.liquidwarelabs.com’.

https://demo.liquidwarelabs.com/lwl/api?json={“inspector”:”1″,”basis”:”application_name”,”date”:”yesterday”,”limit”:”0″,”columns”:”user_count,node_count,memory_used_mb,cpu_used_mhz,total_io_bps,score”,”sort_col”:”score”,”filter”:”user_count gt 10″}

Additional Detail Use Case

Now with the first API query built we can look at expanding on this use case and adding additional detail to it. Suppose in your third party tool you wanted to drill into a specific application that was returned with the original Stratusphere API query.

For example let’s drill into the ‘Google Chrome’ application to look at what users are running it. We are going to start with the initial configuration as the previously built API query and then modify it.

Step 1: Add Additional Basis

The Basis is a key functionality of the Stratusphere UX Advanced Inspectors and the API. It adds in columns that you want to group by. Since we now wish to look at specific applications and the users associated with them we accomplish this by adding a second basis to the API Query. In this example we are adding the ‘User Name’ basis.

5.7API-11

Step 2: Add a Search for the application

With the additional basis added now let’s add to the Query the search for the specific application. This is done on the Search Tab where we enter in the Application Name we wanted to drill into. You can also do this directly from the API builder preview pane by clicking on the application name. That will automatically load the search data.

5.7API-12

Step 3: The Stratusphere API URL is complete

We now have a second API query URL built with this looking at a specific application and the users running it.

5.7API-13

The Preview Pane shows the first 10 records the query will return.

5.7API-14

It should be noted that we took the filter of user count > 10 off this detail query because we wanted to see all of the users running the application.

If you were coding this within your third party tool below is the part of the URL where you would enter your search name, replacing “Google Chrome” with the application the user drilled into and you wanted to have the Stratusphere API return the users for. Also you can search for a partial application name using a wild card (*) search.  For example ‘Google*’

“,”application_name”:”Google Chrome”}

Sample Data:

 JSON formatted data example, returned by Stratusphere API

“table” : [    {      “application_name”      : “Google Chrome”,      “user_name”             : “dkhare”,      “user_count”            : “1”,      “node_count”            : “3”,      “memory_used_mb”        : “2071.0”,      “cpu_used_mhz”          : “501.1”,      “total_io_bps”          : “87.8”,      “score”                 : “1”    },    {      “application_name”      : “Google Chrome”,      “user_name”             : “dgreenspan”,      “user_count”            : “1”,      “node_count”            : “1”,      “memory_used_mb”        : “1749.3”,      “cpu_used_mhz”          : “342.4”,      “total_io_bps”          : “42.6”,      “score”                 : “2”    },

 Conclusion

We have seen two examples of how quickly we can build a Stratusphere API Query URL to extract focused metrics from the Stratusphere database for analysis in whatever tool we wish. The power is totally in the end user’s hands to easily gather any metric data needed and present it exactly how you need it.

More Information

For more information on Liquidware Labs Stratusphere UX, the Stratusphere API and the API Builder visit the Stratusphere UX Product Page or contact sales at Liquidware Labs.

Pete Del Rey
Technology Evangelist
Liquidware Labs

www.liquidwarelabs.com

3 thoughts on “Stratusphere API Builder

  1. Hi LWL Team,

    did someone already update the excel spreadsheet you offered for the 5.6.x API?
    I loved the macro functionality because i was able to create a “self-maintaining” chart and UX-6 panel with it. I am trying to get the macro updated too but its hard to find the time.

    Thanks in advance for any info.

    best regards,
    Niko

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s