mirror of
https://github.com/gnustep/libs-gsweb.git
synced 2025-05-06 05:10:40 +00:00
o a start to make statistics work
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gsweb/trunk@14860 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
658cf05e64
commit
4967bea220
5 changed files with 128 additions and 11 deletions
|
@ -1988,6 +1988,7 @@ selfLockn,
|
||||||
LOGObjectFnStart();
|
LOGObjectFnStart();
|
||||||
session=[self _createSessionForRequest:aRequest];
|
session=[self _createSessionForRequest:aRequest];
|
||||||
NSDebugMLLog(@"sessions",@"session:%@",session);
|
NSDebugMLLog(@"sessions",@"session:%@",session);
|
||||||
|
[_statisticsStore _applicationCreatedSession:session];
|
||||||
LOGObjectFnStop();
|
LOGObjectFnStop();
|
||||||
return session;
|
return session;
|
||||||
};
|
};
|
||||||
|
@ -2512,6 +2513,9 @@ selfLockn,
|
||||||
//OK
|
//OK
|
||||||
GSWResponse* response=nil;
|
GSWResponse* response=nil;
|
||||||
GSWRequestHandler* requestHandler=nil;
|
GSWRequestHandler* requestHandler=nil;
|
||||||
|
NSDate* reqStartDate=nil;
|
||||||
|
NSTimeInterval timeInterval = 0.0;
|
||||||
|
|
||||||
LOGObjectFnStart();
|
LOGObjectFnStart();
|
||||||
#ifndef NDEBUG
|
#ifndef NDEBUG
|
||||||
[self lock];
|
[self lock];
|
||||||
|
@ -2519,6 +2523,8 @@ selfLockn,
|
||||||
[self unlock];
|
[self unlock];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
reqStartDate = [NSDate date];
|
||||||
|
|
||||||
response = [self checkAppIfRefused:aRequest];
|
response = [self checkAppIfRefused:aRequest];
|
||||||
if (!response)
|
if (!response)
|
||||||
{
|
{
|
||||||
|
@ -2539,6 +2545,11 @@ selfLockn,
|
||||||
response=[requestHandler handleRequest:aRequest];
|
response=[requestHandler handleRequest:aRequest];
|
||||||
NSDebugMLLog(@"requests",@"sessionStore=%@",_sessionStore);
|
NSDebugMLLog(@"requests",@"sessionStore=%@",_sessionStore);
|
||||||
[self _resetCache];
|
[self _resetCache];
|
||||||
|
timeInterval=[reqStartDate timeIntervalSinceNow];
|
||||||
|
// negate to make positive
|
||||||
|
timeInterval = timeInterval*-1.0;
|
||||||
|
[_statisticsStore _applicationDidHandleComponentActionRequestInTimeInterval:timeInterval];
|
||||||
|
|
||||||
NSDebugMLLog(@"requests",@"sessionStore=%@",_sessionStore);
|
NSDebugMLLog(@"requests",@"sessionStore=%@",_sessionStore);
|
||||||
};
|
};
|
||||||
if (!response)
|
if (!response)
|
||||||
|
|
|
@ -60,7 +60,7 @@ static char rcsId[] = "$Id$";
|
||||||
-(GSWResponse*)lockedHandleRequest:(GSWRequest*)aRequest
|
-(GSWResponse*)lockedHandleRequest:(GSWRequest*)aRequest
|
||||||
{
|
{
|
||||||
//OK
|
//OK
|
||||||
GSWStatisticsStore* statisticsStore=nil;
|
//GSWStatisticsStore* statisticsStore=nil;
|
||||||
GSWApplication* application=[GSWApplication application];
|
GSWApplication* application=[GSWApplication application];
|
||||||
GSWContext* aContext=nil;
|
GSWContext* aContext=nil;
|
||||||
GSWResponse* response=nil;
|
GSWResponse* response=nil;
|
||||||
|
@ -92,9 +92,9 @@ static char rcsId[] = "$Id$";
|
||||||
if (!exceptionRaised)
|
if (!exceptionRaised)
|
||||||
{
|
{
|
||||||
NSDebugMLLog(@"requests",@"requestHandlerValues=%@",requestHandlerValues);
|
NSDebugMLLog(@"requests",@"requestHandlerValues=%@",requestHandlerValues);
|
||||||
statisticsStore=[[GSWApplication application]statisticsStore];
|
//statisticsStore=[[GSWApplication application]statisticsStore];
|
||||||
NSDebugMLLog(@"requests",@"statisticsStore=%@",statisticsStore);
|
// NSDebugMLLog(@"requests",@"statisticsStore=%@",statisticsStore);
|
||||||
[statisticsStore _applicationWillHandleComponentActionRequest];
|
//[statisticsStore _applicationWillHandleComponentActionRequest];
|
||||||
aContext=[GSWContext contextWithRequest:aRequest];
|
aContext=[GSWContext contextWithRequest:aRequest];
|
||||||
NSDebugMLLog(@"aContext",@"aContext=%@",aContext);
|
NSDebugMLLog(@"aContext",@"aContext=%@",aContext);
|
||||||
senderID=[requestHandlerValues objectForKey:GSWKey_ElementID[GSWebNamingConv]];
|
senderID=[requestHandlerValues objectForKey:GSWKey_ElementID[GSWebNamingConv]];
|
||||||
|
@ -154,8 +154,8 @@ static char rcsId[] = "$Id$";
|
||||||
};
|
};
|
||||||
|
|
||||||
[application _setContext:nil];
|
[application _setContext:nil];
|
||||||
statisticsStore=[[GSWApplication application] statisticsStore];
|
//statisticsStore=[[GSWApplication application] statisticsStore];
|
||||||
[statisticsStore _applicationDidHandleComponentActionRequest];
|
//[statisticsStore _applicationDidHandleComponentActionRequest];
|
||||||
NSDebugMLLog(@"requests",@"response=%@",response);
|
NSDebugMLLog(@"requests",@"response=%@",response);
|
||||||
LOGObjectFnStop();
|
LOGObjectFnStop();
|
||||||
return response;
|
return response;
|
||||||
|
|
|
@ -287,7 +287,7 @@ static char rcsId[] = "$Id$";
|
||||||
GSWApplication* application=nil;
|
GSWApplication* application=nil;
|
||||||
GSWStatisticsStore* statisticsStore=nil;
|
GSWStatisticsStore* statisticsStore=nil;
|
||||||
LOGObjectFnStart();
|
LOGObjectFnStart();
|
||||||
statisticsStore=[[GSWApplication application]statisticsStore];
|
statisticsStore=[GSWApp statisticsStore];
|
||||||
[statisticsStore _applicationCreatedSession:self];
|
[statisticsStore _applicationCreatedSession:self];
|
||||||
|
|
||||||
ASSIGNCOPY(_sessionID,aSessionID);
|
ASSIGNCOPY(_sessionID,aSessionID);
|
||||||
|
@ -343,6 +343,7 @@ static char rcsId[] = "$Id$";
|
||||||
//call GSWApp _discountTerminatedSession
|
//call GSWApp _discountTerminatedSession
|
||||||
//call GSWApp statisticsStore
|
//call GSWApp statisticsStore
|
||||||
//call statstore _sessionTerminating:self
|
//call statstore _sessionTerminating:self
|
||||||
|
[[GSWApp statisticsStore] _sessionTerminating:self];
|
||||||
LOGObjectFnStop();
|
LOGObjectFnStop();
|
||||||
};
|
};
|
||||||
// componentDefinition _notifyObserversForDyingComponent:Main component
|
// componentDefinition _notifyObserversForDyingComponent:Main component
|
||||||
|
|
|
@ -97,6 +97,7 @@
|
||||||
-(void)_sessionTerminating:(id)session;
|
-(void)_sessionTerminating:(id)session;
|
||||||
-(void)_applicationCreatedSession:(GSWSession*)session;
|
-(void)_applicationCreatedSession:(GSWSession*)session;
|
||||||
-(void)_applicationDidHandleComponentActionRequest;
|
-(void)_applicationDidHandleComponentActionRequest;
|
||||||
|
-(void)_applicationDidHandleComponentActionRequestInTimeInterval:(double)timeInterval;
|
||||||
-(void)_applicationDidHandleDirectActionRequestWithActionNamed:(id)name;
|
-(void)_applicationDidHandleDirectActionRequestWithActionNamed:(id)name;
|
||||||
-(double)_applicationDidHandleRequest;
|
-(double)_applicationDidHandleRequest;
|
||||||
-(void)_applicationWillHandleDirectActionRequest;
|
-(void)_applicationWillHandleDirectActionRequest;
|
||||||
|
|
|
@ -102,10 +102,81 @@ static char rcsId[] = "$Id$";
|
||||||
};
|
};
|
||||||
|
|
||||||
//--------------------------------------------------------------------
|
//--------------------------------------------------------------------
|
||||||
|
/*
|
||||||
|
should return this:
|
||||||
|
|
||||||
|
2002-10-26 13:50:19.825 foobarWO[3207] stats=<CFDictionary 0xf6fa0 [0x8016024c]>{count = 5, capacity = 6, pairs = (
|
||||||
|
0 : Pages = <CFDictionary 0xf98f0 [0x8016024c]>{count = 1, capacity = 3, pairs = (
|
||||||
|
1 : Main = <CFDictionary 0xfb040 [0x8016024c]>{count = 4, capacity = 6, pairs = (
|
||||||
|
1 : Min Resp. Time = 0.06496943533420562432
|
||||||
|
2 : Max Resp. Time = 0.4728142097592352768
|
||||||
|
3 : Avg Resp. Time = 0.2195588141679763968
|
||||||
|
7 : Served = 5
|
||||||
|
)}
|
||||||
|
)}
|
||||||
|
3 : StartedAt = 2002-10-26 13:49:05 +0200
|
||||||
|
5 : Transactions = <CFDictionary 0xf82a0 [0x8016024c]>{count = 11, capacity = 11, pairs = (
|
||||||
|
0 : Component Action Transactions = 6
|
||||||
|
2 : Transaction Rate = 0
|
||||||
|
4 : Direct Action Avg. Transaction Time = 0
|
||||||
|
5 : Transactions = 6
|
||||||
|
7 : Avg. Idle Time = 12.154283278932174848
|
||||||
|
9 : Moving Avg. Idle Time = 12.154283278932174848
|
||||||
|
10 : Direct Action Transactions = 0
|
||||||
|
11 : Component Action Avg. Transaction Time = 0.2195588141679763456
|
||||||
|
12 : Moving Avg. Transaction Time = 0.2195588141679763456
|
||||||
|
13 : Avg. Transaction Time = 0.2195588141679763456
|
||||||
|
15 : Sample Size For Moving Avg. = 100
|
||||||
|
)}
|
||||||
|
6 : Sessions = <CFDictionary 0xfd290 [0x8016024c]>{count = 11, capacity = 11, pairs = (
|
||||||
|
0 : Peak Active Sessions Date = 2002-10-26 13:50:17 +0200
|
||||||
|
1 : Current Active Sessions = 2
|
||||||
|
4 : Peak Active Sessions = 2
|
||||||
|
6 : Avg. Memory Per Session = <CFDictionary 0xf8b00 [0x8016024c]>{count = 2, capacity = 3, pairs = (
|
||||||
|
2 : Virtual = 1388544
|
||||||
|
3 : Resident Set Size = 264192
|
||||||
|
)}
|
||||||
|
9 : Moving Avg. Transactions Per Session = 0
|
||||||
|
10 : Sample Size For Moving Avg. = 10
|
||||||
|
11 : Moving Avg. Session Life = 0
|
||||||
|
12 : Session Rate = 0
|
||||||
|
13 : Avg. Transactions Per Session = 0
|
||||||
|
14 : Avg. Session Life = 0
|
||||||
|
15 : Total Sessions Created = 2
|
||||||
|
)}
|
||||||
|
7 : Memory = <CFDictionary 0xfafe0 [0x8016024c]>{count = 2, capacity = 3, pairs = (
|
||||||
|
2 : Virtual = 541458432
|
||||||
|
3 : Resident Set Size = 1622016
|
||||||
|
)}
|
||||||
|
)}
|
||||||
|
*/
|
||||||
|
|
||||||
-(id)statistics
|
-(id)statistics
|
||||||
{
|
{
|
||||||
LOGObjectFnNotImplemented(); //TODOFN
|
NSMutableDictionary *statDict = [NSMutableDictionary dictionary];
|
||||||
return nil;
|
NSMutableDictionary *sessionsDict = [NSMutableDictionary dictionary];
|
||||||
|
|
||||||
|
[statDict setObject:_startDate
|
||||||
|
forKey:@"StartedAt"];
|
||||||
|
|
||||||
|
// Sessions
|
||||||
|
|
||||||
|
[sessionsDict setObject:[NSString stringWithFormat:@"%d",_sessionsCount]
|
||||||
|
forKey:@"Current Active Sessions"];
|
||||||
|
|
||||||
|
|
||||||
|
[statDict setObject:sessionsDict
|
||||||
|
forKey:@"Sessions"];
|
||||||
|
|
||||||
|
// Pages
|
||||||
|
if (_pagesStatistics) {
|
||||||
|
[statDict setObject:_pagesStatistics
|
||||||
|
forKey:@"Pages"];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// LOGObjectFnNotImplemented(); //TODOFN
|
||||||
|
return statDict;
|
||||||
};
|
};
|
||||||
|
|
||||||
//--------------------------------------------------------------------
|
//--------------------------------------------------------------------
|
||||||
|
@ -244,7 +315,7 @@ static char rcsId[] = "$Id$";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
AvgRespTimeValue=aTimeInterval;
|
AvgRespTimeValue=aTimeInterval;
|
||||||
Served++;
|
ServedValue++;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -366,10 +437,43 @@ static char rcsId[] = "$Id$";
|
||||||
{
|
{
|
||||||
timeInterval=[self _applicationDidHandleRequest];
|
timeInterval=[self _applicationDidHandleRequest];
|
||||||
NSDebugMLog(@"currentPage=%@",_currentPage);
|
NSDebugMLog(@"currentPage=%@",_currentPage);
|
||||||
if (_currentPage)//TODO no current page if no session (error page,...)
|
if (_currentPage) { //TODO no current page if no session (error page,...)
|
||||||
|
NSLog(@"GSWStatisticsStore timeInterval=%f",timeInterval);
|
||||||
[self _updatePagesStatisticsForPage:_currentPage
|
[self _updatePagesStatisticsForPage:_currentPage
|
||||||
timeInterval:timeInterval];
|
timeInterval:timeInterval];
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
NS_HANDLER
|
||||||
|
{
|
||||||
|
NSDebugMLog(@"EXCEPTION:%@ (%@) [%s %d]",
|
||||||
|
localException,[localException reason],
|
||||||
|
__FILE__,__LINE__);
|
||||||
|
//TODO
|
||||||
|
[self unlock];
|
||||||
|
[localException raise];
|
||||||
|
}
|
||||||
|
NS_ENDHANDLER;
|
||||||
|
[self unlock];
|
||||||
|
LOGObjectFnStop();
|
||||||
|
};
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
-(void)_applicationDidHandleComponentActionRequestInTimeInterval:(double)timeInterval
|
||||||
|
{
|
||||||
|
//OK
|
||||||
|
// double timeInterval=0;
|
||||||
|
LOGObjectFnStart();
|
||||||
|
[self lock];
|
||||||
|
NS_DURING
|
||||||
|
{
|
||||||
|
// timeInterval=[self _applicationDidHandleRequest];
|
||||||
|
NSDebugMLog(@"currentPage=%@",_currentPage);
|
||||||
|
if (_currentPage) { //TODO no current page if no session (error page,...)
|
||||||
|
NSLog(@"GSWStatisticsStore timeInterval=%f",timeInterval);
|
||||||
|
[self _updatePagesStatisticsForPage:_currentPage
|
||||||
|
timeInterval:timeInterval];
|
||||||
|
}
|
||||||
|
}
|
||||||
NS_HANDLER
|
NS_HANDLER
|
||||||
{
|
{
|
||||||
NSDebugMLog(@"EXCEPTION:%@ (%@) [%s %d]",
|
NSDebugMLog(@"EXCEPTION:%@ (%@) [%s %d]",
|
||||||
|
|
Loading…
Reference in a new issue