Analyze Application Performance Hourly or Daily with REST API

Use APPLICATIONS_HOURLY or APPLICATIONS_DAILY to view the performance each discovered application running on a device, where the measurements are aggregated per hour or per day, along with the user, location and device details.

For example, if a user complains that an application was slow between 9-10am, you can check if the drop happened to just this application or across all applications (pointing to a wider problem) by plotting a graph of the UXI of all applications on that device across that day.

Each returned entry from APPLICATIONS_HOURLY or APPLICATIONS_DAILY details the discovered application (Application), its performance measurements like UXI, wait time, hang time, the device details, user details, and response times if it has activities. If you use $select to display only specific columns, it makes the query faster by grouping all rows with identical attribute values into a single row with aggregated measurements.

Note

For APPLICATIONS_HOURLY: You can access data using this API (retention) going back up to one month. If you do not add a relative_time filter, by default it returns data for the past seven days.

For APPLICATIONS_DAILY: You can access data using this API (retention) going back up to 31 days. If you do not add a relative_time filter, by default it returns data for the past 31 days.

Before You Begin

To send a REST API query in Excel, PowerBI or a browser, enter an Aternity username which has the OData Role privilege, and its password. For SSO users, generate your own Aternity REST API password by selecting User icon > REST API Password. For LDAP users, enter the domain name, then a backslash ('\'), then your network username and password. For example domain_name\jsmith

To view an Aternity REST API, enter the URL: <base_url>/API_NAME from a browser, Excel or PowerBI (learn more). The <base_URL> is configured in the Aternity REST API Server as the external_url (learn more):

http://odata-aternity.company.com:80/aternity.odata/API_NAME
Tip

Wherever possible, use $select and $filter to narrow your query, to avoid receiving an error like Returned data is too large. Learn more.

Examples

To access this API from a browser, Excel or Power BI (learn more), enter <base_url>/APPLICATIONS_DAILY or <base_url>/APPLICATIONS_HOURLY

To view the trend of UXI scores for one day of all applications on one device, select to view the UXI and timeframe columns while filtering for the last 24 hours for a specific device hostname. Enter:

.../APPLICATIONS_HOURLY?$select=timeframe,UXI,application&filter=(SERVING_DEVICE_NAME eq 'hostname') and relative_time(last_24_hours)

To plot the hourly UXI for just one application, add a filter for that application name:

.../APPLICATIONS_HOURLY?$select=timeframe,UXI&filter=(SERVING_DEVICE_NAME eq 'hostname') and relative_time(last_24_hours) and APPLICATION eq 'Microsoft Word'

Supported Parameters

You can view the data by entering the URL into Excel, into a browser, or into or any OData compatible application such as Power BI.

You can add parameters to the URL to filter the returned data, by adding a question mark (?) followed by a parameter and value, such as .../aternity.odata/API_NAME?$filter=(USERNAME eq 'jsmith@company.com'), or several parameter-value pairs each separated by an ampersand (&), like .../aternity.odata/API_NAME?$format=xml&$top=5.

Parameter Description
$filter=

Use $filter to insert conditions which narrow down the data, to return only entries where those conditions are true. .

Combine several parameters using and, or, eq (equals) gt (greater than), ge (greater than or equal), lt (less than), le (less than or equal), ge (greater than or equal to), ne (not equal to) and le (less than or equal to). You can also use the text operator contains, though it significantly slows the API performance.

Aternity also supports the not operator, which negates the query expression that follows it. For example, .../aternity.odata/API_NAME?$filter=(CLIENT_DEVICE_TYPE eq 'Laptop' or CLIENT_DEVICE_TYPE eq 'Tablet') and not(LOCATION_CITY eq 'Miami' or LOCATION_CITY eq 'Los Angeles') will return data for laptops and tablets for all locations except Miami and Los Angeles. For details on these OData parameters that are supported by Aternity, see Microsoft's OData documentation.

Use the relative_time() filter to easily limit the timeframe of your query. For example, .../aternity.odata/API_NAME?$filter=relative_time(yesterday). Possible values are:

  • last_6_hours: Shows data starting from exactly six hours ago, displaying it summarized (aggregated) according to the view you selected.

  • last_24_hours: Shows data starting exactly this time yesterday, displaying it summarized (aggregated) according to the view you selected.

  • today: Displays data starting from 00:00AM today in the time zone of the Aternity Management Server.

  • yesterday: Displays data starting from 00:00AM yesterday according to the time zone of the Aternity Management Server.

  • last_48_hours: Displays data starting exactly this time two days ago, displaying it summarized (aggregated) according to the view you selected.

  • last_7_days: Displays data starting from 00:00AM seven days ago in the time zone of the Aternity Management Server.

  • this_week: Displays data for this week, beginning from 00:00 AM on Sunday morning according to the time zone of the Aternity Management Server, until the current time.

  • last_week: Displays data from 00:00AM on Sunday morning to 23:59 on the most recent Saturday night according to the time zone of the Aternity Management Server. Use this view to compare consistent weekly results.

  • last_14_days: Displays data from exactly this time 14 days ago, displaying it summarized (aggregated) according to the view you selected.

  • last_30_days: Displays data from exactly this time 30 days ago, displaying it summarized (aggregated) according to the view you selected.

$format=

Use $format to force the returned data to be either in XML or JSON format. This is only useful for programmers or those testing the raw data in a web browser. For example:

.../aternity.odata/API_NAME?$format=xml

$orderby

Use $orderby to order the returned data according to the value you choose. For example, to order results device inventory results based on location, use .../aternity.odata/DEVICE_INVENTORY?$orderby=LOCATION

$select=

Use $select to return only the data of specific columns (attributes). To return several columns, list them separated by a comma (no space).

For example, to return only the application and department, use:

.../aternity.odata/API_NAME?$select=APPLICATION,DEPARTMENT&...

$top=

Use $top (lower case only, not TOP) when you are initially testing the response of the API by returning the first few entries.

For example, to return the first five entries (not sorted in any way), use:

.../aternity.odata/API_NAME?$top=5

If you use $select to display only specific columns, it makes the query faster by grouping all rows with identical attribute values into a single row with aggregated measurements. For example, if you use $select to return only the RAM size and CPU usage, if 50 devices have the same attribute of 16GB RAM, it condenses them into a single row and outputs their CPU usage as a single weighted average measurement.

Tip

Wherever possible, use $select and $filter to narrow your query, to avoid receiving an error like Returned data is too large. Learn more.

Output

Each returned entry from APPLICATIONS_HOURLY or APPLICATIONS_DAILY details the discovered application (Application), its performance measurements like UXI, wait time, hang time, the device details, user details, and response times if it has activities. If you use $select to display only specific columns, it makes the query faster by grouping all rows with identical attribute values into a single row with aggregated measurements.

For APPLICATIONS_HOURLY: You can access data using this API (retention) going back up to 15 days. If you do not add a relative_time filter, by default it returns data for the past 7 days.

For APPLICATIONS_DAILY: You can access data using this API (retention) going back up to 31 days. If you do not add a relative_time filter, by default it returns data for the past 31 days.

To change the required disk space of the Oracle Database Server, you can change the retention times of some Aternity REST APIs by running an SQL script on the Oracle Database Server.

File name Description

data_retention_rest_api_short.sql

(Default) Sets a short data retention time for these REST APIs:

data_retention_rest_api_long.sql

Sets a long data retention time for these REST APIs:

The API returns two types of columns: Attributes (or dimensions) which are the properties of an entry, and Measurements which are the dynamic measured values. A single API row can display either a single measurement, or a weighted average of several entries grouped together. If you use $select to display several attributes, and all those attributes are identical, it groups them into a single entry.

Type Returned columns

Measurements

Active_Time,Activity_Client_Time_Avg,Activity_Network_Time_Avg,Activity_Response_Avg,Activity_Score,Activity_Server_Time_Avg,Activity_Volume,Crashes,Errors,Hang_Time,Page_Load_Client_Time_Avg,Page_Load_Network_Time_Avg,Page_Load_Server_Time_Avg,Page_Load_Time_Avg,Page_Load_Volume,Performance_Index,Performance_Weight,Remote_Display_Latency,Usage_Time,UXI,UXI_Weight,Wait_Time

Attributes

Account_ID,Account_Name,Application,Application_Type,Application_Version,Browser,Business_Location,Change_Pilot_Group,Client_Device_Name,Client_Device_Type,CPU_Cores,CPU_Frequency,CPU_Generation,CPU_Model,CPU_Type,Data_Center_Location,Days_From_Last_Boot,Device_Manufacturer,Device_Model,Location_City,Location_Country,Location_Region,Location_State,Memory_Size,Mobile_Device_ID,MS_Office_Version,Network_Type,On_Site,On_VPN,OS_Architecture,OS_Disk_Type,OS_Name,OS_Version,Serving_Device_Name,Serving_Device_Type,Subnet,Timeframe,User_Department,User_Domain,User_Email_Address,User_Full_Name,User_Office,User_Role,Username,Virtualization,Wifi_BSSID,Wifi_SSID