SEARCH

Knowledge Base

Showing results for 
Search instead for 
Do you mean 

mPulse 55.1.7 (7950.23.1048)

by tpoggi on ‎09-16-2015 10:01 AM - last edited on ‎09-16-2015 10:24 AM by Community Manager

 

Date

 

Sep 15 2015

 

Bug Fixes

 

This release includes several bug fixes for mPulse: 

 

97169 Update product tour welcome screen to 14 Day Trial

96619 Page-load mismatch issue on What-if Dashboard

96080 Network Errors metric should be available to Web domains as well as Mobile (if in the template)

95775 Fail with 400 and descriptive JSON when an invalid parameter is found

95518 Single aggregated value for multiple page groups in the Query API

94089 Session length should be shown with decimals

87758 JSON API response is invalid for data series

 

For more information about the fixes for Query API, see mPulse Query API.

CloudTest/TouchTest 55.16 (8023.244)

by tpoggi on ‎09-11-2015 04:44 PM - last edited on ‎09-15-2015 11:22 AM by Community Manager

Date: Sep 11 2015

 

This release includes several bug fixes for CloudTest and TouchTest.

 

 

Read more...

mPulse Boomerang (1.246.1441122062)

by Community Manager on ‎09-09-2015 06:56 PM - last edited on ‎09-11-2015 03:45 PM by tpoggi

Date: Sep 9 2015

 

This release includes several bug fixes.

Read more...

mPulse 55.1.6 (7950.23.1043)

by Community Manager ‎09-09-2015 06:40 PM - edited ‎09-09-2015 06:47 PM

 

Date

 

Sep 4 2015

 

 

This update deployed improvements for stability and performance.

CloudTest/TouchTest 55.15 (8023.227)

by tpoggi on ‎09-02-2015 03:20 PM - last edited on ‎09-02-2015 03:26 PM by Community Manager

Date: Sep 2 2015

 

This release includes several bug fixes for CloudTest and TouchTest.

 

 

Read more...

mPulse 55.1.5 (7950.23.1042)

by tpoggi ‎08-31-2015 01:58 PM - edited ‎09-01-2015 01:00 PM

 

Date

 

Aug 28 2015

 

Bug Fixes

 

This release includes several bug fixes for mPulse: 

 

96645: Alert with "On a specific date and time" does not fire after the date/time changes
96578: Don't set manufacturer to "Apple" for desktops
96500: Alert is cleared even when the condition is still met
95489: Alert filters on OS Family and Browser Family do not work

91683: Changing (every time interval) alert start date/time does not trigger it again

Continue with Update

by tpoggi on ‎08-31-2015 09:38 AM - last edited on ‎08-31-2015 04:18 PM by Community Manager

Continue with Update

 

As of SOASTA 55.14, you can continue updating the system if you have background procedures marked as busy.

 

The new Continue anyway button has been added to the following About SOASTA CloudTest & TouchTest (build) screen:

 

CloudTest/TouchTest 55.14 (8023.217)

by Community Manager ‎08-31-2015 07:48 AM - edited ‎10-05-2015 10:32 PM

Date: Aug 28 2015

 

This release includes a new feature, enhancement, and several bug fixes for CloudTest and TouchTest.

 

 

Read more...

Share Dashboard

by Community Manager ‎08-26-2015 08:58 AM - edited ‎08-31-2015 02:50 PM

Share your Dashboard with ease by customizing your authentication requirements each time you share.

 

Read more...

mPulse Boomerang Backbone Plugin

by Community Manager ‎08-13-2015 01:46 PM - edited ‎09-03-2015 10:41 AM

mPulse Boomerang Backbone Plugin draft

Read more...

mPulse Boomerang Ember Plugin

by Community Manager on ‎08-13-2015 01:24 PM - last edited on ‎09-23-2015 09:49 AM by tpoggi

The mPulse™ Boomerang Ember.js plugin allows users to automatically monitor their Single Page App's (SPA) navigations beyond the initial page load.

Read more...

CSS Selectors

by Community Manager on ‎08-13-2015 01:03 PM

You can now use CSS Selectors to locate and capture values based on their id, class, type, etc. Your Tenant Administrator must enable this feature.

Read more...

Password Complexity

by Community Manager on ‎07-29-2015 09:47 AM

This feature allows you to set password rules, helping secure passwords by increasing their complexity. For mPulse and other SaaS customers, please contact SOASTA support to create or change password rules.

Read more...

Copy image file to Customer's Azure account

by Community Manager ‎07-08-2015 10:31 AM - edited ‎07-08-2015 10:41 AM

Pre-requisites

 

You will need the following:

  • Setup Azure Account
  • Setup Azure as a Cloud Provider

Find more information on how to setup Azure, click here

 

Add 'vhds' container on Storage

  • Login to Azure Portal
  • Click on Storage
  • Open Storage account
  • Click on Containers and Click Add
  • Opens a new Container window. Choose following

name = vdhs

Access = Public Container

  • Click  to save the container.

Copy image files

 

  • Contact support@soasta.com to copy the image files.
  • include Storage Name, Access Key in the email.

Enabling XHR

by Community Manager ‎07-01-2015 02:57 PM - edited ‎07-28-2015 08:32 AM

By default, mPulse captures full page loads, not Ajax requests (XMLHttpRequest) from a loaded page. However, you can easily enable mPulse to retrieve and display Ajax requests.

Warnings

  • With the XHR filter enabled, you will see an increase in beacon usage. It is possible that increase may exceed your beacon limit, causing data collection to be throttled.
  • XHR loads and full-page loads have different average speeds, so being mindful of beacon filters (in particular XHR) when reviewing the Dashboard is helpful.

 

Configuring XHR

Auto Instrument XHR

To enable XHR:

  1. Log into mPulse.
  2. Click the Central tab atop your screen.
  3. Click Apps on the navigation panel and select the appropriate app on the right.
  4. Click the Advanced button at the bottom of the Configure Web App window.
  5. Place a checkmark next to Auto Instrument XHR.
  6. Click OK.

 

Filter XHR Beacons

To filter XHR beacons in dashboards XHR:

  1. Go to your Dashboard screen.
  2. Expand All Beacon Types toward the top of the screen.
  3. Place a check mark next to XHR.
  4. Click Apply.

Custom Dimensions

by on ‎07-01-2015 02:54 PM

App Admins can define dimensions to track on each beacon. Beacon-level dimensions can be defined using one of six supported pattern-matching techniques, or value types found in the Configure Apps box, Advanced view, Dimensions tab.

SOASTA recommends defining dimensions on value types that have relatively few possible values. With that in mind, a good example is a dimension used to track free and paid users on a domain.

Custom Dimensions

Dashboard performance may decrease if a custom dimension returns more than 100 unique values. So, categorical dimensions work well because they can only return a limited number of possible values.

Identity-tracking dimensions, however, are riskier for performance because they can return millions of unique values. Displaying a list of 1 million values in a dashboard will take longer to load and analyze than a list of 100 values. Examples include: user ID, session ID, and username.

Tenants are each limited to 10 custom dimensions.

Note:  For performance reasons, this feature should be used according to best practices. Best practices will prevent data explosions that are counter-productive and could result in performance hits against your app.

Within individual dimensions, an alias map can be used to create user-friendly values for display in dashboards.

Each of the six supported value types can be either text (any value), numeric (Boomerang will convert it to an integer or, if it fails, it will not persist), or Boolean (follows JavaScript truthiness).

Note:  Boolean will do JavaScript truthiness except for in the JavaScript value source itself. mPulse's server side has been tweaked for JavaScript truthiness (e.g. if it's there, then its value is 1, and if not there, then 0).

Value Sources Used to Define Dimensions

The App Administrator can use any of the following Value Source techniques to define a dimension:

  • XPath- extracts the value of a DOM Element, located via XPath.

Note:  If you require compatibility with Internet Explorer, you can only use a limited subset of the XPath language.

  • URL- extracts a portion of the URL, using a regular expression
  • Query Parameter- extracts the value of a query string parameter
  • Cookie- extracts a portion of a cookie value, using a regular expression
  • User Agent- extracts a portion of the "User-Agent" header, using a regular expression
  • JavaScript variable- extracts the value of a JavaScript variable

No matter which type you choose, the value is extracted on the client side (inside the browser).

URL Patterns

Some custom dimensions only apply to a portion of your website. In those cases, you can limit the set of URLs for which the dimension value will be extracted, using the "URL Pattern" input. For example, if a custom dimension only applies to the online store portion of your site, the URL pattern might be http://www.mywebsite.com/store/*.

Note that URL patterns are not regular expressions. Their syntax is limited to asterisk wildcards.

URL Patterns

Dimension Types

Dimensions may be of three (user facing) types:

  • Text - Some text on a page; can be any value
  • Numeric - A count on a page such as the number of advertisements
  • Boolean - A 0 or 1 for Boolean (implemented as a Numeric)

To define a Text type Dimension by Alias Map, define some token value on the left and an English-readable string on the right. This will match a value defined in the web or mobile app. Similarly, a numeric value from a JavaScript can be aliased to have a text value.

Alias Maps

In some cases, the actual value extracted at runtime is not the value that you want to display in dashboards. For example, let’s say you’re setting up an "Account Type" dimension, whose values are "Free", "Pro", or "Enterprise". The value will be extracted from a cookie, but it turns out that the cookie uses internal codes, like "f", "p"and "e".

You can define an Alias Maps to translate the internal values collected in the browser to "user-friendly" values that will be shown in the mPulse dashboard and alert UIs.

For example, a simple Alias Map for user authentication status plus user type might be defined using the following user-defined values and aliases (with the numeric dimension type):

0 = Logged Out
1 = Logged In Lite User
2 = Logged In Pro User
3 = Logged In Elite User

Alias Maps

For the map defined above, mPulse will get the numeric value and place it on the beacon, save that value to the database, and then display the user-friendly alias in dashboards (e.g. as Logged Out, Logged In Lite User, etc.).

Defining a Dimension Using XPath

XPath matching works similarly to the matching presented in mPulse via the Metrics tab and can also be filtered by URL pattern. When this value source is selected, define an Xpath from which to match.

For example, a news site might create a custom dimension called "Market Vertical," which uses XPath to pull the type of news content that the user is currently viewing.

Defining a Dimension using XPath

  1. Enter the dimension name and (optionally) description.
  2. Select the desired data type (Text, Numeric, or Boolean).
  3. Optionally, if the dimension only applies to certain pages within your site, set the URL Pattern to match those pages.
  4. Set the Value Source drop-down to XPath.
  5. Enter the XPath of the DOM element that will contain the dimension value.
  6. Optionally, configure an Alias Map to translate the DOM element values to user-friendly names.

Note:  If you require compatibility with Internet Explorer, you can only use a limited subset of the XPath language.

Defining a Dimension Using URL

URL matching works similarly to the matching presented in mPulse via the Page Groups tab and can also be filtered by pattern.

For example, an ecommerce site might create a custom dimension called "Product Type" that uses a Regex capture group to pull the product type from a URL, and a replacement value to capture the specific product value, such as hammer.

Defining a Dimension Using URL

  1. Enter the dimension name and (optionally) description.
  2. Select the desired data type (Text, Numeric, or Boolean).
  3. If the dimension only applies to certain pages within your site, set the URL Pattern to match those pages.
  4. Set the Value Source drop-down to URL.
  5. Enter the regular expression that captures the portion of the URL you want to extract.
  6. Optionally, configure an Alias Map to translate the extracted strings to user-friendly names.

Defining a Dimension Using Query Parameter

Query Parameter matching works similarly to the matching presented in mPulse via the Page Groups tab. When this value source is selected, define a query string parameter from which to match. The URL used here must have a query string (e.g., a "?" that precedes the non-hierarchical data that follows).

For example, the Query Parameter value source can be used to pull the value of the common query parameter, referrer.

Defining a Dimension Using Query Parameter

  1. Enter the dimension name and (optionally) description.
  2. Select the desired data type (Text, Numeric, or Boolean).
  3. If the dimension only applies to certain pages within your site, set the URL Pattern to match those pages. This is strongly recommended for the Query Parameter value source, because most query parameters only apply to a subset of URLs.
  4. Set the Value Source drop-down to Query Parameter.
  5. Enter the name of the query parameter that contains the dimension value.
  6. Optionally, configure an Alias Map to translate the extracted strings to user-friendly names.

Defining a Dimension Using Cookie

Cookie matching works similarly to the matching presented in mPulse via the Page Groups tab.

For example, many e-tailers store the marketing campaign value(s) that resulted in a web site hit. Using the Cookie value source to define a custom dimension, we can extract that information from a cookie named details, and then get the campaign name using a replacement value.

Defining a Dimension Using Cookie

  1. Enter the dimension name and (optionally) description.
  2. Select the desired data type (Text, Numeric, or Boolean).
  3. If the dimension only applies to certain pages within your site, set the URL Pattern to match those pages.
  4. Set the Value Source drop-down to Cookie.
  5. Enter the cookie name.
  6. Enter the regular expression that will determine which portion of the cookie value is used.
  7. f you have Regular Expression replacement strings (e.g. from a reference) then they can be used in the Replacement field. The string entered here should be the text that will replace a regex match after a search.
  8. Optionally, configure an Alias Map to translate the extracted strings to user-friendly names.

Defining a Dimension Using User Agent

User Agent matching works similarly to the matching presented in mPulse via the Page Groups tab.

For example, a physical retailer may have specialty in-store kiosks whose user agents (e.g. browsers) are identified by a kiosk-code such as "kiosk-code:5869:". In such a case, mPulse can capture this user-agent string from their internal site's instrumentation.

Defining a Dimension Using User Agent

  1. Enter the dimension name and (optionally) description.
  2. Select the desired data type (Text, Numeric, or Boolean).
  3. If the dimension only applies to certain pages within your site, set the URL Pattern to match those pages.
  4. Set the Value Source drop-down to User Agent.
  5. If you have Regular Expression replacement strings (e.g. from a reference) then they can be used in the Replacement field. The string entered here should be the text that will replace a regex match after a search.
  6. Optionally, configure an Alias Map to translate the extracted strings to user-friendly names.

Defining a Dimension Using JavaScript Variable

JavaScript Variable matching works similarly to the matching presented in mPulse via the Page Groups tab.

This option allows you to handle more complex extraction scenarios, by writing JavaScript that captures the value and then makes it available to mPulse.

Defining a Dimension Using JavaScript Variable

  1. Enter the dimension name and (optionally) description.
  2. Select the desired data type (Text, Numeric, or Boolean).
  3. If the dimension only applies to certain pages within your site, set the URL Pattern to match those pages.
  4. Set the Value Source drop-down to JavaScript Variable.
  5. Enter the JavaScript variable name.
  6. Optionally, configure an Alias Map to translate the extracted strings to user-friendly names.

mPulse Boomerang Life Cycle and Support Matrix

by jgardner on ‎06-16-2015 09:29 AM - last edited on ‎05-19-2016 04:31 PM by tpoggi

The SOASTA mPulse™ service relies on the mPulse Boomerang. In general, the latest mPulse feature set will require the Boomerang developer alongside those features. The mPulse team also works hard to ensure that mPulse can work seamlessly with earlier Boomerangs. The following Boomerang Support Policy presents update guidelines, including posted expiration dates for each Boomerang version listed.

Boomerang Support Policy

SOASTA will notify customers running an older Boomerang version of any necessary Boomerang updates at least one month prior to the retirement date of that version. After notification, and whenever an old version is retired, apps running that version will be migrated to the latest GA version.

Customers are encouraged to work with us to schedule an upgrade to any latest GA version prior to the migration date.

Boomerang Support Matrix

Click here.

 

About mPulse Boomerang Versions

In general, the latest GA version will always be necessary to experience the latest Boomerang/mPulse features, and so users are encouraged to schedule an upgrade at their earliest opportunity.

The latest GA version will be supported for a full year after the latest GA version release. At that time, we will require you to upgrade to a newer version in order for us to continue to process your beacon traffic. The mPulse team will follow up with additional communications as the end-of-life date for any Boomerang version approaches.

 

Forcing the Alpha Maestro To Be A Specific Server

by jgardner ‎04-16-2015 10:21 AM - edited ‎04-16-2015 01:46 PM

Every loaded Composition has an "Alpha" (or controlling) Maestro also sometimes known as the "Main" Maestro.

This Alpha is not a hard-coded server, but is chosen from among the Maestro servers involved in the Composition. The Main Maestro is the server that you don't want rebooting unless necessary, and don't want to crash, as it will leave the other servers (known as the "Remote" servers) orphaned.

Note: For some general background on the Maestro server loading, playing, and unloading process, see Loading Compositions.

Users can force the Alpha Maestro to be a specific server by choosing it in the Play Options box, Maestro drop-down (accessible from the Composition Editor's Etc (…) drop-down menu.

Play Options drop-down menu

Using the Play Options box, users can override various settings about the Composition including the Main Maestro in use. Note that these changes are not persisted, they are for this play only. Once the Composition Editor is closed, Play Options settings are gone.

By specifying a Maestro here, when the Composition is loaded, CloudTest will try to load it there, rather than searching for the first suitable server that it can find based upon the configuration of Tracks in the Composition.

The Alpha server must be one that the Composition would normally play on, because the Alpha server is not strictly just a "controller" it also plays one Track itself, just like any other server. Accordingly, the server specified using Play Options must be among those that the Composition is already configured to play on. For example, if the Composition's Tracks specify that they are to played in Location 1, then the user can't force the Alpha to be on a server in Location 2.

Play Options drop-down menu

If a new Alpha server is specified, then if it is successfully loaded on the server you specified, that server will become the Alpha.

The only reason I can see for doing this is if you know some server or location is generally more stable or reliable than others, and therefore you want the Alpha to be there. Or perhaps because you don't want to search Player Status to find the Alpha (although that is not that difficult).

For example, in the following shot the Composition is set up to play Tracks on servers A2, A3, A4, and A5.

Play Options drop-down menu

 

How do I update the list of monitors from a build?

by jgardner on ‎04-07-2015 07:23 AM - last edited on ‎10-15-2015 09:14 AM by

Use the following steps to update the list of monitored servers from a build:

  1. Configure the necessary Monitoring Server Group(s) and Monitor(s) in the regular CloudTest UI.
  2. Confirm that they are working correctly, and you're receiving data.
  3. Export the Monitoring Server Group(s) to XML. There is no need to export the Monitors.
  4. Edit the XML file(s) and remove the content of the element, then replace it with some kind of unique token. For example,
 <Hosts><Host>qa1.fidelity.com</Host></Hosts>

would become:

 <Hosts><!–– INSERT host XML here ––></Hosts>
  1. Check the XML file(s) into source code, or put them somewhere else that's available to Jenkins.
  2. In the Jenkins build, use the text replacement command of your choice (e.g. sedif it's a Linux/Unix box) to replace the token with a new list of Host elements.
  3. Use the "Import CloudTest Objects" build step, which is part of the CloudTest Jenkins plug-in, to import in Overwrite mode and replace what's in the Repository.

 

 

Dynamic Host Monitoring

 

1. Do the above steps 

 

2. By default Monitoring requires Conductor. To override that you need to do the following

    On the appliance(CTMain), edit the file (or) if you don’t have one create it.

    $sudo vi $JBOSS_HOME/server/all/conf/props/soasta.properties

 

 

   Add the below line and save the file

   monitoring.customCommands.remoteExecution.enabled=true

 

 

3. Create a parameter in Jenkins as pass the server name[s]. For example below the "Monitor_Hostname"       parameter contains multiple server names by comma separated 

 

1.png

 

4. The below Shell script splits the Monitor_Hostname[s] by comma and append the respective xml tag in       the exported Monitor Server Groups XML

 

2.png

 

 

5. Make sure the shell script and exported Monitor Group xml files are in the Jenkins’s workspace. See          example below

 

3.png

 

6. Call the shell script in Jenkins, Import the modified XML before play the composition

 

4.png

 

7. Jenkins executes the shell script, imports and executes the composition

 

5.png

 

8. Here is the sample dashboard

 

6.png

 

 

mPulse™ Boomerang AngularJS Plugin

by jgardner on ‎04-06-2015 03:20 PM - last edited on ‎09-23-2015 09:40 AM by tpoggi

 

The mPulse™ Boomerang AngularJS plugin allows users to automatically monitor their Single Page App's (SPA) navigations beyond the initial page load.

In non-SPA scenarios, your visitors do a full navigation with every new page they visit. The browser requests the new page's HTML from the server, and the CSS and JavaScript is re-executed once all of the components have been loaded.

In SPA apps, only the first page that the visitor loads is a full navigation. All subsequent navigations are handled by frameworks like AngularJS, where it dynamically pulls in the content it needs to render the new page, without doing a full navigation.

Boomerang works well in the traditional, non-SPA scenario, where a full navigation occurs. On each page load, it tracks performance information about the entire page load experience. However, in SPA scenarios like AngularJS, only the first page triggers a full navigation. Thus, any subsequent pages your AngularJS visitors see to do not get tracked by Boomerang.

With the Boomerang AngularJS Plugin, Boomerang is able to track all of the SPA navigations beyond the first, initial navigation.

To do so, the Boomerang AngularJS plugin listens for several life cycle events from AngularJS, such as $routeChangeStart. Once it gets notified of these events, the Boomerang AngularJS plugin starts monitoring the page's markup (DOM) for changes. If any of these changes trigger a download, such as an XHR, a new image (IMG) getting inserted, or new CSS (LINK) being fetched, then the Boomerang AngularJS plugin monitors those resources as well. Only once all of these new resources have been fetched does Boomerang AngularJS consider the SPA navigation to be complete.

Note: Users should note that any XHR outside of a route change (e.g. outside of a navigation) will not be captured as a page load (e.g. as a beacon).

Integration Code

The following code snippet initializes the plugin and should be placed in your Angular app or module startup.

The Boomerang AngularJS plugin does not require any additional instrumentation of your app, its clicks or URLs, nor does it require any additional directives or markup changes.

/*
* Installation:
*
* Somewhere in your Angular app or module startup, call BOOMR.plugins.Angular.hook($rootScope).
*
* For example:
*/

 angular.module('app')
   .run(['$rootScope', function($rootScope) {
     var hadRouteChange = false;
     $rootScope.$on("$routeChangeStart", function() {
       hadRouteChange = true;
     });
     function hookAngularBoomerang() {
       if (window.BOOMR && BOOMR.version) {
         if (BOOMR.plugins && BOOMR.plugins.Angular) {
           BOOMR.plugins.Angular.hook($rootScope, hadRouteChange);
         }
         return true;
       }
     }
     if (!hookAngularBoomerang()) {
       if (document.addEventListener) {
         document.addEventListener("onBoomerangLoaded", hookAngularBoomerang);
       }
       else if (document.attachEvent) {
         document.attachEvent("onpropertychange", function(e) {
           e = e || window.event;
           if (e && e.propertyName === "onBoomerangLoaded") {
             hookAngularBoomerang();
           }
         });
       }
     }
   }]);

 

If you do not have run block:

Add the following lines for code as well the Integration Code mentioned above.

angular.module('ANGULAR_MODULE_NAME')
  .run(['$rootScope', function($rootScope) {
    //Integration Code goes here

 

If you have a run block, but no rootScope dependency:

Add the following lines of code, insert '$rootscope', and the Integration Code mentioned above.

angular.module('ANGULAR_MODULE_NAME')
  .run(['$blah’, ‘$rootScope’, function($blah, $rootScope) {
//Your code 
 //Integration Code goes here
  }]);

 

 If you have a run block, with a rootScope dependency, but not the integration code:

Add the following lines of code, and then insert the Integration Code mentioned above.

angular.module('ANGULAR_MODULE_NAME')
  .run(['$rootScope', function($rootScope) {
    //Your code 
    //Integration Code goes here
   }]);

 

Page-Level Override for Partial AngularJS Apps

If your app or site includes both AngularJS and non-AngularJS pages, page-level overrides help to ensure non-AngularJS requests are not ignored. Page-level overrides alllow you to insert stand-alone snippets to programmaitcally monitor both Angular and non-Angular pages.

If all of your pages are setup using AngularJS,

  1. Select the AngularJS radio button in the Configure Web App dialog box,
  2. Insert the Boomerang snippet.
  3. Implement the plugin code described in the previous section. 

If most of your pages are setup using AngularJS,

  1. Select the AngularJS radio button in the Configure Web App dialog box.
  2. Insert the Boomerang snippet.
  3. Implement the Plugin Code described in the previous section.
  4. Insert the page-level override javascript code below into the specific page(s) built with a non-AngularJS framework.

BOOMR_config = {
    autorun: true,
    Angular: {
        enabled: false
    }
};

If only one or a few of your pages are setup using AngularJS,

  1. Select the None radio button in the Configure Web App dialog box.
  2. For the specific page(s) built with an AngularJS framework,
  • Insert the Boomerang snippet.
  • Implement the Plugin Code described in the previous section.
  • Insert the page-level override javascript code below into the specific page(s) built with an AngularJS framework.

BOOMR_config = {
    autorun: false,
    Angular: {
        enabled: true
    }
};


Setting and Refreshing the ResourceTimings Buffer

The Boomerang AngularJS plugin gathers ResourceTiming data for all SPA navigations. ResourceTiming data contains performance metrics about all of the resources (IMG, CSS, etc) that were downloaded to construct the page (in supporting browsers). This data is used in the Waterfall dashboards.

Users should note that the Resource Timing API in use in browsers enforces an upper limit of 150 resources tracked. While this upper limit can be manipulated by the developer in order to track more resources (window.performance.setResourceTimingBufferSize()), there are likely performance tradeoffs, and SOASTA doesn't attempt to make such impactful changes for the user.

For this reason, SOASTA provides the following additional code examples, which can be used to set and/or refresh the ResourceTiming buffer after each Boomerang beacon in order to ensure that beacons beyond the initial 150 are retrieved.

 

Set the Resource Timings Buffer

var setResourceTimingBufferSize == window && window.performance && (performance.setResourceTimingBufferSize || performance.webkitSetResourceTimingBufferSize);
if (setResourceTimingBufferSize) {
    setResourceTimingBufferSize(<size>);
}

 

Clear the Resource Timings Buffer

(function(w){
    if (!w || !w.performance)
        { return;
    }

    var clearResourceTimings = w.performance.clearResourceTimings || w.performance.webkitClearResourceTimings;    
    if (!clearResourceTimings) {
        return;
    }

    document.addEventListener("onBoomerangLoaded", function() {
        BOOMR.subscribe("onbeacon", function() {
            clearResourceTimings.call(w.performance);
        });
    });

})(window);

Metrics and Sessions in SPA Apps

Because mPulse doesn't evaluate beacons until right before the beacon is set, Page Groups, Timers, and Metrics are tracked in SPAs using the same methods available in non-SPA apps (e.g. XPath, Regex, etc.).

Similarly, sessions are tracked the same in SPA apps as in non-SPA apps. The session length will increase every time the route changes and the session will be kept alive as long as user actions occur.

 

What changes does the MakeAppTouchTestable utility make to my project?

by jgardner ‎04-02-2015 10:11 AM - edited ‎06-04-2015 10:23 AM

Applying the MakeAppTouchTestable utility to your Android or iOS project will make the following OS-specific project changes.

MakeAppTouchTestable utility project changes in Android

The MakeAppTouchTestable utility makes the following Android project changes when an app is made TouchTestable:

  1. Adds aspectjrt.jar, TouchTestDriver.jar, TouchTestDriver-APIv11.jar, and TouchTestDriver-APIv12.jar to the /libs folder.
  2. Adds a /TouchTestDriver folder containing TouchTest jars that help instrument the app.
  3. Adds post_compile_touchtest Builder to the project's Build steps – in order to instrument compiled classes.
  4. Adds /custom_rules.xml – in order to instrument compiled classes when built via ant.
  5. Makes the following changes to the project's AndroidManifest.xml:
    • Adds an intent-filter so that TouchTestAgent can launch the app for recording/playback
    • Adds a service called TouchTestService
    • Adds permissions if not already present. Ex: ACCESS_WIFI_STATE, INTERNET, READ_PHONE_STATE, BLUETOOTH, BLUETOOTH_ADMIN, GET_TASKS

MakeAppTouchTestable utility project changes in iOS

The MakeAppTouchTestable utility makes the following iOS project changes when an app is made TouchTestable:

  1. Adds URL Type to the info.plist file in order to launch the app for recording and playback
  2. Adds a /TouchTestDriver folder containing libTouchTestDriver.a and TouchTestDriver.h files
  3. Adds libTouchTestDriver.a to the project's Linked Frameworks and Libraries
  4. Adds the following to the project's Other Linker Flags:
    • -force_load
    • TouchTestDriver/libTouchTestDriver.a
    • -F$(SDKROOT)$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks/
  5. Adds the following to the project's 'Library Search Paths'
    • $(inherited)
    • "$(SRCROOT)/TouchTestDriver"
  6. Adds the following frameworks to the project's Link Binary With Libraries
    • CFNetwork
    • CoreLocation
    • CoreGraphics
    • GraphicsServices
    • IOKit
    • libxml2
    • libz
    • libTouchTestDriver.a
    • MapKit
    • OpenGLES
    • QuartzCore

 

Cloud Service Provider Status

by Community Manager on ‎03-30-2015 03:10 PM

Below are the system status pages for several Cloud providers in use with our services:

Here is our own System Status.

Export and Import of Test Suite Results

by jgardner ‎02-19-2015 02:51 PM - edited ‎02-19-2015 02:53 PM

Test Suite results contain a distinct master/child relationship that doesn't exist in results where no Launch Composition is involved.

For example, if Composition A contains a clip element that launches Composition B, then when Composition A runs it has a "child" result (from Composition B). Use the following steps to export the entire "Test Suite" result.

Export a Test Suite Result

  1. In Central, select the Test Suite (top level) result to export in either the Compositions list or in the Results list. This is the master composition that has children.
  2. Right click the selection and choose Export.

  1. Select the Export format as you would for any test result.
  2. Check the Also export any child results box to ensure the entire Test Suite result set is included.
  3. Click OK to begin the export.

Import a Test Suite Result

  1. If SOASTA XML Definition format was selected for the Test Suite (top level) test composition, and the Also export any child results box was checked, then the exported file (XML or ZIP) can be re-imported.

As usual, importing a test result relies on the existence of relevant test objects in the Import environment. It is a good practice to export the entire Test Composition with all of its dependant objects and import that into the new instance prior to attempting to import a test result.

Metric Labeling in Monitors

by jgardner on ‎02-19-2015 11:02 AM

Users can assign custom names to CloudTest's out-of-the-box metrics via the System Resources Selection page of the monitor wizard.

  •  
  • To label an out-of-the-box metric, check its box and type the metric label into the Name (Optional) field.

  • If you are configuring a new monitor, also enter the Sample Rate and Arguments to use.

The new metric label is used in the coresponding Widget Title bar (e.g. JBoss will override the default title "Per Process CPU Percentage" in this example).

Users can now create Cloud Provider Accounts and launch Grids for the QingCloud vendor. QingCloud provides data centers in the U.S., Africa, Asia Pacific, and Europe.

Setup QingCloud as a Cloud Provider

Use the following steps to enter your valid QingCloud credentials as a CloudTest Pro Cloud Provider Account

  1. Select Central > Cloud Provider Accounts and then click New to launch the Cloud Provider Account dialog box
  2. Enter a name for the new cloud provider account. This name is used in locations and also appears in the Cloud Provider Account drop-down in the Grid Manager
  3. Change the Type drop-down to QingCloud”.

  1. Enter the QingCloud Access Key ID
  2. Enter the Secret Access Key and then enter it in the Confirm Secret Access Key field a second time.

  1. Optionally, configure an access control list in the Cloud Provider Account box in CloudTest. Refer to Cloud Provider Accounts for additional Access Control List steps.

  1. Click OK to complete configuration of this Cloud Provider Account

The completed item appears in the Cloud Provider Accounts list in Central

When the Cloud Provider Account is saved, a new set of locations for QingCloud will be automatically created, if they do not already exist.

These locations must be specified during Grid Manager configuration of grids (as described below)

TFor more information about Locations, refer to Using Locations

Additionally, CloudTest creates all of the Server Classes supported by the QingCloud vendor.

QingCloud Server Instance Types

The following SOASTA server instance types map to the following QingCloud configurations

SOASTA Instance Type

QingCloud Configuration

LARGE

8 GB total RAM and 2 CPU cores

EXTRA_LARGE

16 GB total RAM and 4 CPU cores

HIGH_MEMORY_EXTRA_LARGE

16 GB of RAM and 2 CPU cores

HIGH_MEMORY_DOUBLE_EXTRA_LARGE

32 GB of RAM and 4 CPU cores

HIGH_MEMORY_QUADRUPLE_EXTRA_LARGE

64 GB of RAM and 8 CPU cores

HIGH_CPU_EXTRA_LARGE

8 GB of RAM and 8 CPU cores

HIGH_CPU_DOUBLE_EXTRA_LARGE

16 GB of RAM and 8 CPU cores

These Server Instance Types can be used in either Results Server or Test Server instances

Launching Test Servers using QingCloud

Once a QingCloud Provider Account has been created for use with CloudTest, you are ready to create a grid that will provision servers via that cloud vendor

Creating a Grid using QingCloud

  1. Select Central > Grids and then click New. The Grid Manager appears with Step 1 General displayed.

  1. Select the SOASTA product to which the grid pertains, which in this case is CloudTest.

  1. Enter a Grid Name, and optionally, enter a description and a repository location for the new grid, and then click the right arrow
  2. The Step 2 Server Instances page appears.

Note:  Every QingCloud server is given a bandwidth limit by the user. Total bandwidth across the given QingCloud account is capped by QingCloud. The Default cap is 1 Gbps (e.g. 8,000 Mbps). Bandwidth is specified in the CloudTest Grid Manager, Server Instances page, Provisioned Bandwidth setting.

  1. Change the Location” drop-down to one of defined QingCloud locations. For example, QingCloud Asia-Pacific 1 (Hong Kong) (shown in the first location above) or QingCloud China Beijing 1 (shown in the second location above)
  2. Optionally, specify additional locations such as the QingCloud China Quangdong 1 location (or a second Beijing location that uses a different combination of results and test servers.

  1. Specify the number of Test Server instances, and then optionally, define Results Server Instances. For most cases, the default One for every 50 Test Serverinstances is acceptable for result servers
  2. If you wish to combine the QingCloud servers from one location with servers from another location (or even with other cloud providers), click the Add a Location box and make the appropriate selection(s). Otherwise, click the right arrow icon to proceed

The Step 3 Summary and Deploy Tear Down page appears. Click the Deploy Instances button to begin launching servers.

Note: CloudTest Pro users may see an additional Grid Monitor Database field for those configurations where more than one Results Database is available. For more about using and launching grids, refer to Managing Grids.

Custom Commands for Monitoring

by jgardner on ‎02-05-2015 07:33 AM

Custom Commands can be used to create Custom Monitors in supported environments (all except Windows—support for which will be provided in the near future). Using this technique provides the ability to monitor runtime metrics (e.g. metrics whose value is not known ahead of time).

Custom Command monitors utilize an inline process call (entered into the provided Monitors box, text entry field) that executes a command inline or can refer to an external Shell Script accessible within the given environment.

TIP: Users should note that the output of the "script" in question must be a real number.

Custom Command monitors require an agent, SOASTA Conductor, be in use as part of command configuration. This configuration is done using the existing Monitor UI, which now includes the Custom Command field, as well as a new Enable Custom Commands for Monitoring box is found in the SOASTA Conductor field, which appears in the Conductor Capabilities section under Allow Monitoring.

Both the Allow monitoring box, and the Enable Custom Commands for Monitoring opt-in box must be checked for subsequent monitor setup to succeed.

Once the opt-in boxes in the relevant SOASTA Conductor are checked, the remaining portion of the Monitor configuration follows the same workflow found in the setup of SOASTA-provided monitors.

Creating a Custom Command Monitor

  1. Create a new monitor using Central > Monitors > New.
  2. In the Server Group or Monitor page, give the new monitor a name.
  3. Ensure that the new monitor is associated with a Monitor Server Group setup for the host that will be monitored (shown below using the LibertyMonitorGroup).

Additionally, ensure that the Monitor Server Group's Connection Type has been set to the Conductor in use for the given host (e.g. as opposed to SSH).

If you're not yet familiar with CloudTest's extensive monitoring capabilities, refer to Creating Monitor Server Groups and Creating a Monitor before proceeding.

  1. On the System Resources page, scroll down and click Add Custom Object (the green Plus icon) and then select Custom Command from the drop-down.

  1. In the "Select resource type" dial that appears, select Custom Command.

  1. In the Add a new Monitor Server Group or Monitor, System Resources page, check the Custom Command box in the Type column.
  2. In the Name column, enter a name to use for the monitor. For example, Shared DB Memory-PostgreSQL.

TIP: Although this name is optional, it will appear on the widget title bar in any dashboard where the monitor is in display, so SOASTA recommends that each Custom Monitor have a unique name to distinguish its purpose and the information being tracked at runtime.

  1. Next, create the external shell script to use on the machine to monitor.
  2. For example, create a shell script called apache_shared_mem. This script will get the sum of shared memory for apache processes on the given machine.

#!/bin/bash
top -b -n 1 | grep httpd | awk '{sum+=print $7} END {print sum}'

TIP: You can also enter your script inline in the System Resource Selection page (shown above) but SOASTA recommends doing so only for very basic scripts (e.g. usually ones that can be viewed in their entirety in the Arguments columns).

  1. On the Command Line (e.g. as an Administrator on the monitored server), change the script's permissions to make it executable. For example:

chmod a+x apache_shared_mem

  1. Enter the call to the script Monitor wizard's System Resource Selection. Note that the "./" preceding the script's name is required.

  1. Complete the monitor creation.
  2. At runtime, CloudTest will utilize a number returned from the given path.
  3. Click Next and then complete the creation of the Custom Monitor.

The Name (Optional) value appears on the Monitor dashboard (as noted above).

CloudTest: Global Activity

by jgardner ‎02-04-2015 03:39 PM - edited ‎03-17-2015 03:41 PM

With the advent of the Globe Dashboard in this release, SOASTA is also introducing Activity Arcs; an exciting new, geo-spatial depiction of real load tests, in real time. Activity Arcs depict the flow of server data. from different data centers against the target site(s).

An Activity Arc depicts real-time data flow combining color (for error rate), width (for bandwidth), as well as other arc attributes including animation, gradient length, speed, height, and shape, in order to provide powerful visual reinforcement of the data flow in the test composition and in its result.

Note: Opt in for enabling Global Activity is done per test composition. After adding the Globe to your test composition, ensure that the Perform Geo-IP Activity for Globe Activity box is checked. This setting is found in the Composition Editor lower panel, Properties, Play Settings tab.

Two new System Dashboards—Globe Dashboard and the Dynamic Globe, display Activity Arcs. The Globe can also be added to new custom dashboards.  Large screen displays are recommended and are the preferred vehicle for display of all SOASTA Globes.

Globe System Dashboard

The Globe Dashboard presents the test composition's data stream in one dramatic, three-dimensional, WebGL-based global format with fly-to animation, and other Globe features readily available by drop-down settings.

The Globe System Dashboard presents the CloudTest Globe in a wide layout where it can be combined with other widgets while also functioning as a background.

CloudTest users should note that the Globe's Settings are found in the upper right drop-down panels rather than in the Dashboard Editor lower panel.

Arc animation is enabled by default and can be disabled in the Globe's Activity Arc panel (covered in the following section).

Use the Widget-on-Widget Layout and Edge Constraints procedure to add Charts to your own custom Globe Dashboard.

Set your custom Dashboard Theme to Dark to improve the blending between your widget-on-widget layout and the Globe's Starfield.

Dynamic Globe Dashboard

The Dynamic Globe System Dashboard combines the Globe and Dynamic Ramp Controller into an exciting new, geo-spatial depiction of real load tests, in real time.

In the Dynamic Globe Dashboard, an Activity Arc depicts the flow of data from the different data centers (e.g. cloud vendors) where load servers run against the target site. Once play is clicked in cloud-based load tests, or while reviewing results, the Globe shows an arc from any cloud-based data centers in use in the test.

Description: Screen Shot 2015-01-27 at 9

Note: In general, the Globe is designed for large displays. In the context of the new Dynamic Globe System Dashboard this is especially true. The user experience may suffer notably on smaller displays such as laptop screens since the Dynamic Ramp Controller will overlap the Globe background.

Using the Globe as its background this new System Dashboard also presents the Average Response Time and Send Rate widgets. The Dynamic Ramp Controller in use in this System Dashboard has its top charts suppressed (e.g. via the widget's lower panel settings).

Activity Arc Controls

For CloudTest, a new Activity Arcs panel appears that was not found in the prior mPulse-only version of the Globe widget. Clicking the Arc icon on the Globe toolbar drops down the panel.

The Activity Arcs panel is divided into two main control tabs for Arc and Pulse—the Arc Controls panel displays by default. Additional settings for labels and markers appear at the top of the panel.

Labels and Markers

The Global Activity dashboard displays labels and markers that clearly identify data centers and target sites where the data flow begins and ends.

Flyout Labels

A Flyout Label is a two-line label that allows for a pair of text data fields (above and below.

Description: Description: Actvity Arc on main panel

Pinpoint Markers 

A Pinpoint Marker is a 3D marker shown as a billboard (e.g. facing camera) that represents an origin or terminal point of the relevant portion of the data flow (e.g. the geo location of a Data Center or other data point).

Description: Screen Shot 2015-01-26 at 8

When displayed on the currently visible portion of the Globe, markers and labels appear on the Globe surface (e.g. similarly to how they display while in 2D Mercator view).

Description: Screen Shot 2015-01-26 at 8

As the Globe rotates, the markers and labels are presented as if floating in space.

Arc Color (Error Rate)

The error basis for Arc Color can be changed from Error Rate to

The default Arc Color settings can be modified in custom dashboards by adjusting the maximum value of the error ranges shown below.

Arc Animation is a subtle pulse effect on the arc layer (solid component) that is noticeable when the pulses layer is off. The Enable Arc Animation box is checked by default. Disable if you do not wish to see arc animation at all.

Arc Control sliders

Use the following Arc Control sliders to customize your arcs:

Arc Visibility – Use this slider to control the arc's opacity

Arc Width (Bandwidth) – Use this slider to control the arc's width with respect to bandwidth in the test composition

Arc Gradient Length – Use this slider to adjust the arc's "squircle" length

Arc Speed – Use this slider to control the arc's growth on creation and following subtle pulses along its length.

Arc Height – Use this slider to control arc height (e.g. the height in relation to the 3D globe or 2D map view

Arc Shape – Use this slider to control arc shape (e.g. odd or even)

Pulse Controls

Click the Pulse Controls panel for additional settings. Pulse controls allow the user to experiment with different pulse frequencies, offsets, speeds (based on message rate), random variance and length. Pulses account for a great deal of the effects along the arc line, from a pure linear effect, to smaller pulses.

Pulse Color (Average Message Response)

The default pulse color settings shown below can be modified (just as in other Globe settings).

Pulse Control sliders

Pulse Control sliders are factor sliders, which is to say that they pertain to the message rate attached to pulse speed. The relative speed differences are scaled.

Use the following Pulse Control sliders to customize your arcs:

Pulse Visibility – Use this slider to control the pulse's opacity

Pulse Width (Bandwidth) – Use this slider to control the pulse's width

Pulse Length – Use this slider to control the pulse's "squircle" length. The slider is a factor the relative speed differences are just scaled.

Pulse Speed – Use this slider to control the pulse's speed.

Pulse Frequency – Use this slider to control how frequently the pulse occurs.

The Enable Pulse Animation box is checked by default. Disable if you do not wish to see arc animation.

 

Other CloudTest Globe Settings

In addition to the Activity Arcs panel (covered in the Dynamic Globe Dashboard section below), CloudTest shares additional settings with the Globe Dashboard found in mPulse. The Globe toolbar panels are (from left to right) Favorite Locations, Activity Arcs, Globe Style, and General Settings.

Favorite Locations

Click the Star icon to access location settings in the Location drop-down.

  • Click any listed location to fly-to its given location on the Globe.
  • To add a new location, enter it into the entry field and click the Add.
  • Click any default or custom location to fly to (out if you're already zoomed into a location, in if you're at satellite view) to the desired location. The default locations are Mountain View, CA; New York, NY; London, UK; Paris, France; Sydney, Australia; Singapore, and Hong Kong.
  • Enter an integer in seconds to control the fly-to sequence's cycle speed.
  • Click Home View to return to the location set as "Home View" (while in Edit mode use "Set as Home View" to make the current globe view home)
  • To tour all of the locations, click the new Tour Locations command in the Locations drop-down. When you do so, the locations will load. Click the command a second time to begin the tour.

To rotate the globe at a steady rate, click Rotate. The globe background rotates along with the globe itself for increased realism.

 

Globe Style

Globe Style settings are found in the Globe dropdown. Choose from among the Base Imagery globes shown in the Globe Style drop-down.

Popular choices include:

  • Blue Marble (the classic global nickname for our planet displays Earth as if from a satellite or a traveling spacecraft)

  • Street (Shows the globe with political boundaries and other features including street plotting
  • Aerial (An aerial perspective globe)
  • Mono Dark (mPulse Dark shows darkened land masses)
  • Mono Light (mPulse Light shows white land masses)
  • Other available views include Satellite, Hybrid, (alternate) Street, Terrain, Storm, and Mongo Terrain

Globe General Settings

General Settings are found under the Gear icon.

Check/uncheck the Display Legend to toggle the legend on the Globe surface

 

Alignment — Set widget alignment to left, right, or center by selecting a radio button.

Rotation Speed — Use the rotation speed to control the rate at which the globe spins.

Gamma Correction — Use gamma correction to control the dark to light range of the Globe display itself. This setting is useful when your work environment is darker or lighter than the average setting, such as is common in corporate "NOCs" (i.e. network operation centers that require low lighting levels).

Imagery — Use Imagery settings to control night (on/off), toggle cloud animations, or to use a quicker Intro sequence (on Globe launch).

Labels — Use Labels to toggle place name labels (check/uncheck). City labels are not shown by default. Check Show city labels if you prefer to show them. Additional labels will display on zoom.

Background — Select a background for the globe itself. Choose from among Starfield (shows a black background in a field of stars), White, Black (with no stars), and Transparent (for combining with other charts and interpolating data).

Projection — Sets the base imagery for the globe itself. Use Projection to select between 3D Globe view and 2D Columbus (e.g. "flat earth" map projection) modes. Projection permits the user to view al' of the Earth as if projected onto a flat surface as is common on two-dimensional maps.

Visuals — Check Show Sun to add our local star to the Globe visual background.

Borders — Check Show country borders or State and region to enable border display at those levels. Note that state and region borders are only applicable to one country at a time. Check any Country in the list to enable it. Check State and region for and then check the box for one or more countries to show internal political borders such as states or provinces.

CloudTest Activity Legend

In CloudTest, the Globe Legend presents CloudTest Activity, including visual cues for:

Description: active_legend

  • Error Rate (Arc Color)
  • Bandwidth (Arc Width)
  • Response Time (Pulse Color
  • Message Rate (Pulse Speed).

The defaults shown in the CloudTest Activity Legend can be adjusted in the Activity Arcs panel (detailed below) in any custom dashboard.

Globe Filtering

The Global Activity System Dashboard, as well as the Globe widget, is fully filterable in the manner of all other SOASTA dashboards and widgets. Use the default Filter controls (shown in the breadcrumb along the dashboard top) to apply time windows, or, add more filters where necessary in custom dashboards.

The Cloud Test, Globe widget features the same transparent control panel found in its mPulse cousin. For Globe-specific settings, these controls present easy, inline control, and preclude the necessity of lower-panel settings. The legend appears in the lower left and controls are in the top-right corner.

In its default state, the Globe spins, clearly and accurately showing the current solar terminator point between night and day as well as clearly representing the twilight zone, or moving line, between the two. Click to stop the globe's rotation and use gestures to zoom. Alternately, click one of the fly-to locations on the Legend to move to it.

 

Non-Automated Upgrades While Using Cloud Instances

by jgardner ‎01-12-2015 04:42 PM - edited ‎01-12-2015 04:47 PM

For cloud instances running on AWS, please tear down the Test Environment and redeploy with the latest new build.

Non-Automated Upgrades While Using CloudTest Appliances

by jgardner on ‎01-12-2015 04:42 PM - last edited on ‎02-03-2015 04:24 PM by Community Manager

For CloudTest Appliance instances, please contact support@soasta.com for assistance updating non-automated builds.  Please provide us a contact name, phone number and email address to work with, and the proposed target date for the upgrade.  In preparation for the upgrade, this contact should be able to SSH to the appliance and the appliance should be able to reach the following three locations:  cloudtestmanager.soasta.com port 80, cdn.soasta.com port 80, and soastaftp.soasta.com port 21.