Query CGI
myarmquery.cgi
The myarmquery.cgi program can be used to query any
recorded ARM transaction and/or application instance from a
web-browser. The following "myarmquery.cgi: Overview" gives
an overview of the query CGI. It is divided into the left side
which provides forms to compose your queries to the MyARM system
and the right side where the results of your queries are shown. It
supports output of single transaction and application instances and
also provides a statistical analysis for transaction or application
instances matching the selected constraints.

Figure: myarmquery.cgi: Overview
Form frame
The from frame on the left side consists of different sub-frames. On the top a header shows buttons to navigate through definitions or to request free forms for application and transaction queries. Queries for ARM application and ARM transaction instances can be made in two different approaches:
- Definition based query forms which use the registered application and transaction definition from the data source.
- Free forms where any application and transaction name can be entered and used.

Figure: myarmquery.cgi: form header
"myarmquery.cgi: form header" displays three different buttons. You can use the
Definitions- button for browsing through all registered application and transaction definitions
Applications- button for a free form to query application instances.
Transactions- button for a free form to query transaction measurements.
"myarmquery.cgi: identity form part" shows the part of the form that describes the current application and transaction. ARM applications and transactions have its own identity. This identity is mainly formed by their name and optional so-called identity properties. The CGI based query shows all these identity strings if the query form was generated by browsing through the ARM definitions. "myarmquery.cgi: identity display" depicts the identity display of the ARM'ed Apache web-server application:

Figure: myarmquery.cgi: identity form part
The first line displays the application name and its optional identity properties. The second line displays the transaction name and identity properties. If the application has more than one transaction the user can select one transaction from a list of all possible transactions to submit queries for. Note: You have to press the select button to use the selected transaction in a query. The CGI has no real active part such as Java-Script since it is not really portable.
"myarmquery.cgi: constraints form part" shows the part of the form that enables you to choose attributes of the transactions you want to see. The list on the left side is used to select several fields of a transaction to display in the result (e.g. Name, ResponseTime, Status, etc).

Figure: myarmquery.cgi: constraints form part
On the right of the list there are input fields to specify your specific query constraints:
Time FormatandDuration Unitselections-
specifies the time and response time format to be used as in- and output formats. For example you can select a response time unit in seconds or in microseconds depending on the transaction average execution time.
Start FromandStart Untilinput fields- matches only transactions which have started since and until the specified dates
Stop FromandStop Untilinput fields- matches only transactions which have stopped since and until the specified dates
Duration MinandDuration Maxinput fields- specifies the minimum and maximum response time of a transaction to match. All transactions which executed faster or slower are excluded in the result.
Statusselection- specifies the status of a transaction to match. For example, GOOD or FAILED.
Userselection- selects the user on behalf a transaction was executed (if any)
Show childrencheckbox- if marked also displays any children of matching transactions.
correlate incrementalcheckbox- if marked incremental correlation process is used (only new parent/child relation ships are searched) if the below correlation button is pressed otherwise a full correlation process is performed.
If you entered all constraints for your query you can press the
Query button. This will load the result of the query
into the right-frame.
The next form part allows you to limit, sort and execute your queries. When querying transaction measurements it is usual that matching transactions are more numerous than can be displayed within a browser. Therefore the CGI can be configured to display only parts of the result and offer the possibility to navigate through the result set.

Figure: myarmquery.cgi: result config form part with submit buttons
Pagesinput field- Number of pages to provide direct access through the result navigation bar. See section below.
Max/Pageinput field- specifies the maximum number of matching transactions displayed at once (page).
Indexinput field- specifies the index into the result set.
Sortingselection- specifies if the result set should be sorted or not. Some sorting criteria are supported. For example stop time or duration time.
Descendingcheckbox- if checked the sorting is performed in a descending order instead of an ascending.
After all constraints are specified the real query can be submitted to the MyARM CGI. "myarmquery.cgi: result config form part with submit buttons" shows buttons of all different kinds of queries which the CGI supports:
Querybutton- submits the query to the CGI and each matching transaction measurement is displayed to the right-frame side as the result. See section below.
Statisticbutton- computes a statistic over the result transactions and displays it
Histogrambutton- generates a histogram of the result transactions and displays it
Correlatebutton- Executes the correlation function within underlying MyARM data
store which correlates parent/child transactions. You can only show
parent/child relationships using the
Show childrencheckbox in the query form if you executed this function first. It computes internal links from parent to child transactions.The correlation process operates also on the constraints specified in the constraints form part. This is quite useful if you operate on a large set of transaction measurements.
Result frame
"myarmquery.cgi:
result frame" shows the result of a query for the
HTTP Request transaction of application Apache
HTTP Server.

Figure: myarmquery.cgi: result frame
In many cases there are more transactions than can be displayed on the screen. Therefore a navigation bar provides the functionality to browse through the result set:

Figure: myarmquery.cgi: result navigation bar
In "myarmquery.cgi:
result navigation bar" on the right you can see the
total number of matched transaction. Since many transaction cannot
be viewed at once, so-called pages are introduced to page between
all transactions. A page shows the number of transactions specified
into the Max/Page input field in the query form. You
can navigate through the pages just by clicking on the page number
or by selecting one of the arrow links.