> #### Average Procedure Duration High rule

> The WebSpeed and AppServer lists of available rules include Average Procedure Duration High. This rule measures the average duration of a 4GL procedure run by a server, or agent, process. This average is calculated based on the polling interval set for the resource, not the average for the lifetime of the broker.

> ##### Calculating the average duration for a procedure

> The average is determined by the sum of time noted for a procedure name to run divided by the total number of times the procedure ran. The data used to determine this average is collected during a polling interval. This calculated result is then compared to the threshold defined for the procedure name.

> Since this calculation determines an average based on data collected for each procedure, an individual spike will not necessarily skew the average. The rule's algorithm is designed to eliminate these spike conditions, minimizing unnecessary alerts.

> Note: The Procedure Duration High rule only measures the execution time of the Progress 4GL procedure from the server's, or agent's, viewpoint. The time measure does not include network and client processing overhead.

> ##### Accessing the Average Procedure Duration High rule page

> The Procedure Duration High rule page is accessible from the Available Rules page. On this page, you specify the specific procedures you want to measure, setting the average duration threshold in milliseconds. You can also set alert and action criteria.

> ##### Supplying data for Progress 4GL procedures and WebSpeed Transaction Servers

> For Progress 4GL procedures related to the Transaction Server, you must reference the CGI environment variable as defined in the `Value of PATH_INFO` on the URL. Enter this string in the Procedure field to identify the name of a Progress 4GL procedure, entering one procedure on one line. These procedures will generally be file types such as `.p`, `.w`, or `.html`. The following example shows the type of information required to measure a WebSpeed procedure using the following URL:

> `http://hostname/scripts/cgiip.exe/src/web/exmaples/status.p`

> The procedure name that is executed is the `PROPATH` relative name `src/web/examples/status.p`. This is the value of the CGI environment variable `PATH_INFO`.

> ##### Supplying data for 4GL procedures and AppServers

> Appserver 4GL procedures run on the `4GL RUN` statement based on an AppServer connection handle. The procedures on the `RUN` statement can reference `PROPATH` relative directories, unqualified procedure names, internal procedures, and user-defined functions. To measure the duration of specific AppServer procedures, enter the procedure name in the Average Duration High Rule page exactly as it is referenced on the `RUN` statement.

> Table 6–3 identifies and describes three examples.

> Table 6–3: Examples of AppServer-related 4GL procedure entries
> This 4GL procedure entry... | Runs a procedure that...
> --- | ---
> `RUN myOrders.p ON SERVER hAppSrv` | Is `PROPATH` relative. This entry refers to a procedure that is located in a directory or procedure library specified on `PROPATH`.
> `RUN myApp/myAccounts.p ON Server hAppSrv` | Is `PROPATH` relative. This entry refers to a procedure that is located in the subdirectory called `myApp` that is relative to `PROPATH`.
> `RUN processOrder IN hProc` | Shows the execution of an internal procedure.

> To measure any of the example procedures noted in Table 6–3 using the Average Procedure Duration High rule, you must enter the procedure name exactly as it appears on the `RUN` statement.

Copyright © 2004 Progress Software Corporation www.progress.com Voice: (781) 280-4000 Fax: (781) 280-4095