Custom Measurements

The Custom Measurement feature, which is unique to dsClient Desktop, is available in Chart Reports and Tabular Reports. You can use it to create new measurements by performing mathematical operations on dsTest OMs. The Custom Measurements you define are saved with your report configurations and you can import them from one report into another regardless of the report type. In this topic we'll discuss how to define measurements and use them in your reports.

To view or define Custom Measurements, open the report configuration dialog by clicking the Manage... button in the report's toolbar and then select the Custom Measurements tab.

Managing Your Measurements

The leftmost list in the Custom Measurement screen displays the measurements defined for the current report, and you can use the new () and delete () icons to create a new measurement or to remove a measurement definition.

You can also click the Import... button to import a measurement from another report. dsClient will scan your libraries and display any Custom Measurements found, along with the associated reports. Select the measurements to be imported and then click Import Selected Measurements.

When you import measurements, keep in mind that if the dsTest OMs referenced in those measurement definitions are not present in the receiving report you will have to repair the OM configuration. In addition, unlike XML Snippets, every Custom Measurement definition is independent and is saved with the report in which it is used. If you import a measurement and then change the definition, the original measurement definition will remain unchanged.

Measurement Definition

Custom Measurements are identified by the text you enter in the Measurement Name field, and every Custom Measurement within a report must be uniquely named. This text will be displayed in chart legends and row headers as well as in the list of Custom Measurements in this screen. When you've finished defining your measurements click the Update Configuration button to make those measurements available in your report.

Selecting Component OMs

The leftmost list within the Measurement Configuration container displays the OMs with which you will be working. Click the add OM button () to display the OM tree for the report and select the desired OMs. You can choose from any Custom Measurements included in the report as well as dsTest OMs.

Only measurements of the same type can be used in a Custom Measurement's configuration, and a Custom Measurement will take on the same type designation as its component OMs. When the first OM is selected from the tree, or if component OMs already exist, the checkboxes associated with incompatible measurements will be disabled.

The Report Mode setting will have the same effect on your Custom Measurements as it does with dsTest OMs.

Configuring the Calculations

You can choose between three types of calculations: Set Operation, Simple Calculation, or Compound Calculation. As you define the operations involved, the Measurement Formula pane will display a translation of your configuration and the Validation Errors pane will display issues that must be corrected before your measurement can be added to the report configuration.

Set Operation

When you select Set Operation you can select one Operation - Sum, Average, Minimum Value, or Maximum Value -  that will be performed across all Component OMs. The resulting value will be reported by your Custom Measurement.

Simple Calculation

Simple Calculation performs one Operation with one or two operands depending on the operation selected. You can perform operations with two operands - Add, Subtract, Multiply, or Divide - using two Measurement Values or one measurement value and one Static Value. The square and square root operations accept one Measurement Value. The exponent operation accepts a Measurement Value on the left side while the exponent value is entered using the Static Value field on the right. The measurements that appear on the drop-down lists are only those from your list of Component OMs.

In the example shown above, summary-level Messages Received is subtracted from summary-level Messages Sent - a measurement we would expect to result in 0 at the end of the test.

Compound Calculation

Compound Calculation extends Simple Calculation and provides the ability to define an intermediate value as the value source for one or both sides of a simple calculation. This option creates embedded custom measurements that will not be displayed in the measurement tree. In the formula pane intermediate calculations are enclosed in parentheses.


The following example illustrates how to define simple and compound calculations and how to layer calculations while utilizing other custom measurements.

The goal for this example is to create a set of measurements that report each gNodeB's percent of the traffic processed by all gNodeB emulators involved in the test. The final calculation for each measurement that we'll add to our report is ((this gNodeB's traffic)/(all gNodeB traffic)) * 100.

Creating the Divisor

The first measurement we'll need will be the divisor in our formula - all gNodeB traffic - which means we need to add Messages Received and Messages Sent for all gNodeBs. Summary Measurements already provide us with the base OMs under Summary Measurements>gnb>n2>interface>sctp and we added those OMs to our Component OMs list. All we need is a simple calculation that adds them together as shown below. Note that the name of this measurement is "Total gnb Traffic."


Next we'll define the calculation that divides a single gNodeB's traffic by the divisor we just defined, resulting in that gNodeB's fraction of the total traffic. Our Component OMs for this calculation are the detailed Messages Received and Messages Sent OMs for a single gNodeB and the Total gnb Traffic measurement we defined above. In this case we use a Compound Calculation as we need to add the Messages Received and Messages Sent detail OMs and then divide by the Total gnb Traffic value. We could have used Intermediate Value 2 to calculate the total gNodeB traffic, but since we'll be reusing that calculation for every gNodeB emulator measurement it's more efficient to define it once and then include it where needed. Note that the Measurement Formula pane displays not only the calculation defined here but also shows the formula defined for Total gnb Traffic.

Finally, we add a simple calculation that converts gnb Fraction of Traffic to gnb Percent of Traffic. All we need to do is multiply gnb Fraction of Traffic by 100, utilizing a static value multiplier. In this case the formula pane displays the details of all calculations in the component measurements: ((Messages Received + Message Sent) / (Messages Received + Message Sent)) * 100. This is the measurement we'll add to our report.

After repeating the process above to create fractional and percentage measurements for each gNodeB emulator, we have a chart that portrays the actual traffic load across all node emulators. In this case it clearly was not balanced as one emulator processed significantly less traffic. Since these are client nodes that are all configured to generate the same volume of requests, we then look for errors associated with that emulator and find Interface Congested, indicating that the DUT is failing to respond at a rate that would allow dsTest to send new requests at the configured rate. You can learn more about finding error measurements in the Reporting Overview topic.