Custom Query Languages in UR

Contents
uim901
Contents
The out-of-box reports installed with UR use the custom query languages NimsoftJSONTopN and NimsoftJSONTimeSeries, which are installed to the Unified Reporter web app. This section provides information on using the NimsoftJSONTopN and NimsoftJSONTimeSeries query languages.
The iReport application must be correctly configured before you can modify, copy, or run reports using a custom Nimsoft query language. See the section Set Up iReport.
NimsoftJSONTopN Query Language
This section provides information about using the NimsoftJSONTopN query language.
The NimsoftJSONTopN language expects a string representation of a JSON object. In addition:
The JSON object must contain a topNReportDefinition object.
  • The topNReportDefinition object must contain the qos key, the value of which is a string of the QoS metric for the desired report.
For example, the following syntax reports the average value of QOS_MEMORY_PHYSICAL_PERC for each source that is collecting this data over the last 24 hours.
NimsoftJSONTopN Example 1
{"topNReportDefinition": { "qos":"QOS_MEMORY_PHYSICAL_PERC" } }
In the next example, the following syntax will report the top five, average, minimum, and maximum values of QOS_PROCESS_CPU over the last 30 minutes on the machine cadev.dev.fco.
NimsoftJSONTopN Example 2
{"topNReportDefinition": { "numberOfBars":5, "statistics":["avg", "max", "min"], "qos":"QOS_PROCESS_CPU", "source":"cadev.dev.fco", "period":30, "periodUnits":"minute", "groupFirstBy": "target" } }
Refer to the following table  for more, optional values you can provide in the topNReportDefinition object to further define the report.
Key
Description
Value Datatype
Default Value
statistics
Define the statistics to collect for the report. Options: avg, min, max
JSONArray
"statistics":["avg"]
numberOfBars
Restricts the report to the top # of results
Integer
"numberOfBars":10
source
Restricts the report to a specific source
String
Matches any source
target
Restricts the report to a specific target. Can also be special token "{source}" to match where target=source
String
Matches any target
period
Restricts the report to a given interval length
Long
"period":24
periodUnits
This defines the units for the period. Options: minute, hour, day, month
String
"periodUnits":"hour"
groupFirstBy
Can be either source or target
String
"groupFirstBy":"source"
 
NimsoftJSONTimeSeries Query Language
This section provides information about using the NimsoftJSONTimeSeries query language.
The NimsoftJSONTimeSeries language expects a string representation of a JSON object. In addition:
The JSON object must contain a timeSeriesReportDefinition object.
  • The timeSeriesReportDefinition object must contain the qos key, the value of which is a string of the QoS metric for the desired report.
For example, the following syntax reports the average value of QOS_MEMORY_PHYSICAL_PERC for each source that is collecting this data over the last 24 hours.
NimsoftJSONTimeSeries Example 1
{"timeSeriesReportDefinition": { "qos":"QOS_MEMORY_PHYSICAL_PERC" } }
Refer to the following table  for more, optional values you can provide in the timeSeriesReportDefinition object to further define the report.
Key
Description
Value Datatype
Default Value
source
Restricts the report to a specific source
String
Matches any source
target
Restricts the report to a specific target. Can also be special token "{source}" to match where target=source
String
Matches any target
period
Restricts the report to a given interval length
Long
"period":24
periodUnits
This defines the units for the period. ["minute", "hour", "day", "month"]
String
"periodUnits":"hour"
measurementScale
Scales the measurement values returned by this value
Double
"measurementScale":1
measurementOffset
Offsets the measurement values returned by this value
Double
"measurementOffset":0
percentileLine
Provides a horizontal percentile line calculated at the time the report is run [true, false]
Boolean
"percentileLine":false
percentileValue
The value for the percentile line [0-100]
Double
"percentileValue":95.0