Performance Meters"

From Documentation
Line 18: Line 18:
 
* Network Latency Time: (T4 - T3) + (T2 - T1)
 
* Network Latency Time: (T4 - T3) + (T2 - T1)
  
 +
= How it works =
 
Notice that, when we make a connection to load a page for the first time, only Server Execution Time is available. T4 and T5 will be saved on the client-side and sent back along with the next request.
 
Notice that, when we make a connection to load a page for the first time, only Server Execution Time is available. T4 and T5 will be saved on the client-side and sent back along with the next request.
 +
 +
If you print the request ID and the method name, when zk calls a performance monitor. You will see a different log between loading a zul and sending an AU request.
 +
 +
== Request a ZUL ==
 +
If load a zul 3 times:
 +
<syntaxhighlight lang='md'>
 +
# first load zul
 +
requestId1st - requestStartAtServer
 +
requestId1st - requestCompleteAtServer
 +
 +
# 2nd load zul
 +
requestId1st - requestReceiveAtClient
 +
requestId1st - requestCompleteAtClient
 +
requestId2nd - requestStartAtServer
 +
requestId2nd - requestCompleteAtServer
 +
 +
# 3rd load zul
 +
requestId2nd - requestReceiveAtClient
 +
requestId2nd - requestCompleteAtClient
 +
requestId3rd - requestStartAtServer
 +
requestId3rd - requestCompleteAtServer
 +
</syntaxhighlight>
  
 
= Register as a Listener =
 
= Register as a Listener =

Revision as of 07:13, 8 July 2022

PerformanceMeter is a collection of callbacks that the implementation could know when a request is sent, arrives or is is processed.

Performancemeter.png

As shown above, T1-T5 identifies the following callbacks.

Thus,

  • Server Execution Time: T3 - T2
  • Client Execution Time: T5 - T4
  • Network Latency Time: (T4 - T3) + (T2 - T1)

How it works

Notice that, when we make a connection to load a page for the first time, only Server Execution Time is available. T4 and T5 will be saved on the client-side and sent back along with the next request.

If you print the request ID and the method name, when zk calls a performance monitor. You will see a different log between loading a zul and sending an AU request.

Request a ZUL

If load a zul 3 times:

# first load zul
requestId1st - requestStartAtServer
requestId1st - requestCompleteAtServer

# 2nd load zul
requestId1st - requestReceiveAtClient
requestId1st - requestCompleteAtClient
requestId2nd - requestStartAtServer
requestId2nd - requestCompleteAtServer

# 3rd load zul
requestId2nd - requestReceiveAtClient
requestId2nd - requestCompleteAtClient
requestId3rd - requestStartAtServer
requestId3rd - requestCompleteAtServer

Register as a Listener

Once implemented, you need to register it as a listener in WEB-INF/zk.xml to make it work: (assume the class is called foo.MyMeter):

    <listener>
        <listener-class>foo.MyMeter</listener-class>
    </listener>


Last Update : 2022/07/08



Last Update : 2022/07/08

Copyright © Potix Corporation. This article is licensed under GNU Free Documentation License.