persistent class %CSP.Util.Performance
extends %Persistent
This class is designed to map an existing global named ^["%SYS"]ISCcspPerformance
which contains data about the CSP/ZEN Performance as long as the PAGETIMING parameter
is set to 1 in the page.
It contais data about each time a CSP/ZEN page is executed: Day, Time Slot, Hits,
Global References, Lines Executed, and Maximum, Minimum and Total Execution Time.
This class will allow SQL access to the data. Some sample queries are provided.
One step further will be DeepSee enable it, to be able to use DeepSee against this data.
property Day
as %String(TRUNCATE=1);
Date in YYYY-MM-DD format
property Event
as %String(TRUNCATE=1);
Indicates the type of the event (currently there is only one event named 'Page')
property Globals
as %Numeric(SCALE=0);
Number of global references (read/write)
property GlobalsPerHit
as %Integer [ Calculated ];
property Hits
as %Numeric(SCALE=0);
Number of times the page was executed
property Lines
as %Numeric(SCALE=0);
Number of lines of COS code executed
property LinesPerHit
as %Integer [ Calculated ];
property MaxTime
as %Numeric(SCALE=6);
Maximum Page execution time
property MinTime
as %Numeric(SCALE=6);
Minimum Page execution time
property Page
as %String(MAXLEN=256,TRUNCATE=1);
The full CSP page name, includes the application name
property Slot
as %Integer;
The particular Slot within the Day the hit occured
The total number of Time Slots in a day is defined in the page with the TIMINGSLOTS parameter
property TotalTime
as %Numeric(SCALE=6);
Total acumulated Page execution time
query PageAndDay(Page As %String, Day As %String = ""_$zdate($h, 3))
SQL Query
:
SELECT Hits,Globals,GlobalsPerHit,Lines,LinesPerHit,MaxTime,MinTime,TotalTime,Page,Day,Slot
FROM %CSP_Util.Performance
WHERE (Page = :Page AND Day = :Day)
ORDER BY Slot
query Top10Pages(from As %String, until As %String)
SQL Query
:
SELECT TOP 10 Page, Hits
FROM %CSP_Util.Performance
WHERE Day BETWEEN :from AND :until
GROUP BY Page
ORDER BY Hits DESC
top pages in number of Hits in a period of time
index (IdKeyIdx on Event,Page,Day,Slot) [IdKey,Unique];