Revision: 9500
Author: jean.deruelle
Date: Fri Jan 15 08:46:17 2010
Log: update issue 1031
number of sip application session and sip session creation per second added
http://code.google.com/p/mobicents/source/detail?r=9500
Modified:
/trunk/servers/sip-servlets/jopr-plugin-as-5/src/main/java/org/rhq/plugins/mobicents/servlet/sip/jboss5/ConvergedSipStandaloneComponent.java
/trunk/servers/sip-servlets/jopr-plugin-as-5/src/main/resources/META-INF/rhq-plugin.xml
/trunk/servers/sip-servlets/sip-servlets-impl/src/main/java/org/mobicents/servlet/sip/core/SipApplicationDispatcherImpl.java
/trunk/servers/sip-servlets/sip-servlets-impl/src/main/java/org/mobicents/servlet/sip/core/session/SipManager.java
/trunk/servers/sip-servlets/sip-servlets-impl/src/main/java/org/mobicents/servlet/sip/core/session/SipManagerDelegate.java
/trunk/servers/sip-servlets/sip-servlets-impl/src/main/java/org/mobicents/servlet/sip/core/session/SipStandardManager.java
/trunk/servers/sip-servlets/sip-servlets-impl/src/main/resources/org/mobicents/servlet/sip/core/session/mbeans-descriptors.xml
/trunk/servers/sip-servlets/sip-servlets-jboss5/src/main/java/org/jboss/web/tomcat/service/session/JBossCacheSipManager.java
/trunk/servers/sip-servlets/sip-servlets-jboss5/src/main/java/org/mobicents/servlet/sip/startup/SipStandardContext.java
/trunk/servers/sip-servlets/sip-servlets-tomcat-jboss4/src/main/java/org/jboss/web/tomcat/service/session/JBossCacheSipManager.java
/trunk/servers/sip-servlets/sip-servlets-tomcat-jboss4/src/main/java/org/mobicents/servlet/sip/startup/SipStandardContext.java
=======================================
---
/trunk/servers/sip-servlets/jopr-plugin-as-5/src/main/java/org/rhq/plugins/mobicents/servlet/sip/jboss5/ConvergedSipStandaloneComponent.java
Tue May 12 07:56:09 2009
+++
/trunk/servers/sip-servlets/jopr-plugin-as-5/src/main/java/org/rhq/plugins/mobicents/servlet/sip/jboss5/ConvergedSipStandaloneComponent.java
Fri Jan 15 08:46:17 2010
@@ -237,8 +237,12 @@
eBean.refreshAttributes();
EmsAttribute att = eBean.getAttribute(property);
if (att != null) {
- Integer i = (Integer) att.getValue();
- ret = new Double(i);
+ if(att.getValue() instanceof Double) {
+ ret = (Double) att.getValue();
+ } else {
+ Integer i = (Integer) att.getValue();
+ ret = new Double(i);
+ }
}
}
=======================================
---
/trunk/servers/sip-servlets/jopr-plugin-as-5/src/main/resources/META-INF/rhq-plugin.xml
Wed Jan 13 08:43:55 2010
+++
/trunk/servers/sip-servlets/jopr-plugin-as-5/src/main/resources/META-INF/rhq-plugin.xml
Fri Jan 15 08:46:17 2010
@@ -2271,6 +2271,10 @@
<metric property="SipSession.sipSessionCounter"
displayName="Sip Sessions created"
units="none" description="Number of sip sessions
created for the sipapp"
measurementType="trendsup" />
+
+ <metric
property="SipSession.numberOfSipSessionCreationPerSecond" displayName="Sip
Sessions created per second"
+ units="none" description="Number of sip sessions
created per second for the sipapp"
+ measurementType="trendsup" />
<metric property="SipSession.expiredSipSessions"
displayName="Expired Sip Sessions"
units="none" description="Number of expired sip
sessions for the sipapp"
@@ -2295,6 +2299,10 @@
<metric property="SipSession.sipApplicationSessionCounter"
displayName="Sip Application Sessions created"
units="none" description="Number of sip application
sessions created for the sipapp"
measurementType="trendsup" />
+
+ <metric
property="SipSession.numberOfSipApplicationSessionCreationPerSecond"
displayName="Sip Application Sessions created per second"
+ units="none" description="Number of sip application
sessions created per second for the sipapp"
+ measurementType="trendsup" />
<metric property="SipSession.expiredSipApplicationSessions"
displayName="Expired Sip Application Sessions"
units="none" description="Number of expired Sip
Application sessions for the sipapp"
@@ -2410,6 +2418,10 @@
units="none" description="Number of expired Http
sessions for the sipapp"
measurementType="trendsup" />
+ <metric
property="SipSession.numberOfSipSessionCreationPerSecond" displayName="Sip
Sessions created per second"
+ units="none" description="Number of sip sessions
created per second for the sipapp"
+ measurementType="trendsup" />
+
<metric property="SipSession.rejectedSessions"
displayName="Rejected Http Sessions"
units="none" description="Number of Http sessions
rejected for the sipapp"
measurementType="trendsup" />
@@ -2458,6 +2470,10 @@
units="none" description="Number of expired Sip
Application sessions for the sipapp"
measurementType="trendsup" />
+ <metric
property="SipSession.numberOfSipApplicationSessionCreationPerSecond"
displayName="Sip Application Sessions created per second"
+ units="none" description="Number of sip application
sessions created per second for the sipapp"
+ measurementType="trendsup" />
+
<metric property="SipSession.rejectedSipApplicationSessions"
displayName="Rejected Sip Application Sessions"
units="none" description="Number of Sip Application
sessions rejected for the sipapp"
measurementType="trendsup" />
=======================================
---
/trunk/servers/sip-servlets/sip-servlets-impl/src/main/java/org/mobicents/servlet/sip/core/SipApplicationDispatcherImpl.java
Wed Jan 13 08:43:55 2010
+++
/trunk/servers/sip-servlets/sip-servlets-impl/src/main/java/org/mobicents/servlet/sip/core/SipApplicationDispatcherImpl.java
Fri Jan 15 08:46:17 2010
@@ -141,6 +141,11 @@
}
analyzeQueueCongestionState();
analyzeMemory();
+ if(gatherStatistics) {
+ for (SipContext sipContext :
applicationDeployed.values()) {
+
sipContext.getSipManager().updateStats();
+ }
+ }
//TODO wait for JDK 6 new OperatingSystemMXBean
// analyzeCPU();
}
@@ -196,7 +201,9 @@
private CongestionControlPolicy congestionControlPolicy;
private int numberOfMessagesInQueue;
private double percentageOfMemoryUsed;
+ private double backToNormalPercentageOfMemoryUsed;
private int queueSize;
+ private int backToNormalQueueSize;
//used for the congestion control mechanism
private ScheduledThreadPoolExecutor congestionControlThreadPool = null;
=======================================
---
/trunk/servers/sip-servlets/sip-servlets-impl/src/main/java/org/mobicents/servlet/sip/core/session/SipManager.java
Fri Nov 21 02:14:12 2008
+++
/trunk/servers/sip-servlets/sip-servlets-impl/src/main/java/org/mobicents/servlet/sip/core/session/SipManager.java
Fri Jan 15 08:46:17 2010
@@ -282,4 +282,23 @@
* @param expiredSessions Number of sessions that have expired
*/
public void setExpiredSipApplicationSessions(int
expiredSipApplicationSessions);
-}
+
+ /**
+ * Gets the number of sip application sessions per seconds that have
been created.
+ *
+ * @return number of sip application sessions per seconds that have been
created.
+ */
+ public double getNumberOfSipApplicationSessionCreationPerSecond();
+
+ /**
+ * Gets the number of sip sessions per seconds that have been created.
+ *
+ * @return number of sip sessions per seconds that have been created.
+ */
+ public double getNumberOfSipSessionCreationPerSecond();
+
+ /**
+ * Update statistics
+ */
+ public void updateStats();
+}
=======================================
---
/trunk/servers/sip-servlets/sip-servlets-impl/src/main/java/org/mobicents/servlet/sip/core/session/SipManagerDelegate.java
Fri Nov 20 04:24:28 2009
+++
/trunk/servers/sip-servlets/sip-servlets-impl/src/main/java/org/mobicents/servlet/sip/core/session/SipManagerDelegate.java
Fri Jan 15 08:46:17 2010
@@ -116,7 +116,14 @@
// Number of sip Application sessions created by this manager
protected int sipApplicationSessionCounter=0;
-
+
+ protected int lastUpdatedSasCreationCounter = 0;
+ protected long lastSipApplicationSessionUpdatedTime = 0;
+ double lastAverageSasCreationPerSecond = 0.0;
+
+ protected int lastUpdatedSsCreationCounter = 0;
+ protected long lastSipSessionUpdatedTime = 0;
+ double lastAverageSsCreationPerSecond = 0.0;
/**
* @return the SipFactoryImpl
*/
@@ -664,4 +671,47 @@
int expiredSipApplicationSessions) {
this.expiredSipApplicationSessions =
expiredSipApplicationSessions;
}
-}
+
+ public double getNumberOfSipApplicationSessionCreationPerSecond() {
+ return lastAverageSasCreationPerSecond;
+ }
+
+ public double getNumberOfSipSessionCreationPerSecond() {
+ return lastAverageSsCreationPerSecond;
+ }
+
+ public void updateStats() {
+ if(logger.isDebugEnabled()) {
+ logger.debug("updating sip manager " + container.getName() + "
statistics");
+ }
+ long now = System.currentTimeMillis();
+ // Updating the number of Sip Application Session Creation Per
Seconds
+ int elapsedNumberOfSasCreationCounter = sipApplicationSessionCounter -
lastUpdatedSasCreationCounter;
+ if(elapsedNumberOfSasCreationCounter > 0) {
+ double elapsedSasCreationUpdatedTimeInSeconds = (now -
lastSipApplicationSessionUpdatedTime) / 1000;
+ double elapsedAverageSasCreationPerSecond =
elapsedNumberOfSasCreationCounter / elapsedSasCreationUpdatedTimeInSeconds;
+ lastAverageSasCreationPerSecond = (lastAverageSasCreationPerSecond +
elapsedAverageSasCreationPerSecond) / 2;
+ }
+ lastUpdatedSasCreationCounter = sipApplicationSessionCounter;
+ lastSipApplicationSessionUpdatedTime = now;
+ if(logger.isDebugEnabled()) {
+ logger.debug("elapsedNumberOfSasCreationCounter "+
elapsedNumberOfSasCreationCounter);
+ logger.debug("lastUpdatedSasCreationCounter "+
lastUpdatedSasCreationCounter);
+ logger.debug("lastSipApplicationSessionUpdatedTime "+
lastSipApplicationSessionUpdatedTime);
+ }
+ // Updating the number of Sip Application Session Creation Per
Seconds
+ int elapsedNumberOfSsCreationCounter = sipSessionCounter -
lastUpdatedSsCreationCounter;
+ if(elapsedNumberOfSsCreationCounter > 0) {
+ double elapsedSsCreationUpdatedTimeInSeconds = (now -
lastSipSessionUpdatedTime) / 1000;
+ double elapsedAverageSsCreationPerSecond =
elapsedNumberOfSsCreationCounter / elapsedSsCreationUpdatedTimeInSeconds;
+ lastAverageSsCreationPerSecond = (lastAverageSsCreationPerSecond +
elapsedAverageSsCreationPerSecond) / 2;
+ }
+ lastUpdatedSsCreationCounter = sipSessionCounter;
+ lastSipSessionUpdatedTime = now;
+ if(logger.isDebugEnabled()) {
+ logger.debug("elapsedNumberOfSsCreationCounter "+
elapsedNumberOfSsCreationCounter);
+ logger.debug("lastUpdatedSsCreationCounter "+
lastUpdatedSsCreationCounter);
+ logger.debug("lastSipSessionUpdatedTime "+
lastSipSessionUpdatedTime);
+ }
+ }
+}
=======================================
---
/trunk/servers/sip-servlets/sip-servlets-impl/src/main/java/org/mobicents/servlet/sip/core/session/SipStandardManager.java
Thu Nov 19 11:36:43 2009
+++
/trunk/servers/sip-servlets/sip-servlets-impl/src/main/java/org/mobicents/servlet/sip/core/session/SipStandardManager.java
Fri Jan 15 08:46:17 2010
@@ -533,5 +533,17 @@
}
return sb.toString();
}
+
+ public double getNumberOfSipApplicationSessionCreationPerSecond() {
+ return
sipManagerDelegate.getNumberOfSipApplicationSessionCreationPerSecond();
+ }
+
+ public double getNumberOfSipSessionCreationPerSecond() {
+ return
sipManagerDelegate.getNumberOfSipSessionCreationPerSecond();
+ }
+
+ public void updateStats() {
+ sipManagerDelegate.updateStats();
+ }
}
=======================================
---
/trunk/servers/sip-servlets/sip-servlets-impl/src/main/resources/org/mobicents/servlet/sip/core/session/mbeans-descriptors.xml
Wed Oct 29 06:08:08 2008
+++
/trunk/servers/sip-servlets/sip-servlets-impl/src/main/resources/org/mobicents/servlet/sip/core/session/mbeans-descriptors.xml
Fri Jan 15 08:46:17 2010
@@ -162,7 +162,15 @@
<attribute name="expiredSipApplicationSessions"
description="Number of sip application sessions that expired (
doesn't include explicit invalidations )"
- type="int" />
+ type="int" />
+
+ <attribute name="numberOfSipSessionCreationPerSecond"
+ description="Number of sip sessions created per second"
+ type="double" />
+
+ <attribute name="numberOfSipApplicationSessionCreationPerSecond"
+ description="Number of sip application sessions created per
second"
+ type="double" />
<attribute name="processingTime"
description="Time spent doing housekeeping and expiration"
=======================================
---
/trunk/servers/sip-servlets/sip-servlets-jboss5/src/main/java/org/jboss/web/tomcat/service/session/JBossCacheSipManager.java
Thu Jan 7 05:16:33 2010
+++
/trunk/servers/sip-servlets/sip-servlets-jboss5/src/main/java/org/jboss/web/tomcat/service/session/JBossCacheSipManager.java
Fri Jan 15 08:46:17 2010
@@ -4044,6 +4044,19 @@
this.sipManagerDelegate.setExpiredSipApplicationSessions(expiredSipApplicationSessions);
}
+
+ public double getNumberOfSipApplicationSessionCreationPerSecond() {
+ return
sipManagerDelegate.getNumberOfSipApplicationSessionCreationPerSecond();
+ }
+
+ public double getNumberOfSipSessionCreationPerSecond() {
+ return
sipManagerDelegate.getNumberOfSipSessionCreationPerSecond();
+ }
+
+ public void updateStats() {
+ sipManagerDelegate.updateStats();
+ }
+
/**
* {...@inheritdoc}
*/
=======================================
---
/trunk/servers/sip-servlets/sip-servlets-jboss5/src/main/java/org/mobicents/servlet/sip/startup/SipStandardContext.java
Fri Jan 8 01:06:06 2010
+++
/trunk/servers/sip-servlets/sip-servlets-jboss5/src/main/java/org/mobicents/servlet/sip/startup/SipStandardContext.java
Fri Jan 15 08:46:17 2010
@@ -1104,10 +1104,11 @@
}
} catch (ServletException e) {
logger.error("Cannot allocate the servlet "+
wrapper.getServletClass() +" for notifying the listener " +
- "that it has been
initialized", e);
+ " of the event
" + event.getEventType(), e);
ok = false;
} catch (Throwable e) {
- logger.error("An error occured when initializing the servlet " +
wrapper.getServletClass(), e);
+ logger.error("An error occured when notifying the servlet " +
wrapper.getServletClass() +
+ " of the event
" + event.getEventType(), e);
ok = false;
}
try {
=======================================
---
/trunk/servers/sip-servlets/sip-servlets-tomcat-jboss4/src/main/java/org/jboss/web/tomcat/service/session/JBossCacheSipManager.java
Fri Nov 27 01:07:22 2009
+++
/trunk/servers/sip-servlets/sip-servlets-tomcat-jboss4/src/main/java/org/jboss/web/tomcat/service/session/JBossCacheSipManager.java
Fri Jan 15 08:46:17 2010
@@ -3223,4 +3223,17 @@
int expiredSipApplicationSessions) {
this.sipManagerDelegate.setExpiredSipApplicationSessions(expiredSipApplicationSessions);
}
-}
+
+
+ public double getNumberOfSipApplicationSessionCreationPerSecond() {
+ return
sipManagerDelegate.getNumberOfSipApplicationSessionCreationPerSecond();
+ }
+
+ public double getNumberOfSipSessionCreationPerSecond() {
+ return
sipManagerDelegate.getNumberOfSipSessionCreationPerSecond();
+ }
+
+ public void updateStats() {
+ sipManagerDelegate.updateStats();
+ }
+}
=======================================
---
/trunk/servers/sip-servlets/sip-servlets-tomcat-jboss4/src/main/java/org/mobicents/servlet/sip/startup/SipStandardContext.java
Thu Jan 7 05:16:33 2010
+++
/trunk/servers/sip-servlets/sip-servlets-tomcat-jboss4/src/main/java/org/mobicents/servlet/sip/startup/SipStandardContext.java
Fri Jan 15 08:46:17 2010
@@ -1035,10 +1035,11 @@
}
} catch (ServletException e) {
logger.error("Cannot allocate the servlet "+
wrapper.getServletClass() +" for notifying the listener " +
- "that it has been
initialized", e);
+ " of the event
" + event.getEventType(), e);
ok = false;
} catch (Throwable e) {
- logger.error("An error occured when initializing the servlet " +
wrapper.getServletClass(), e);
+ logger.error("An error occured when notifying the servlet " +
wrapper.getServletClass() +
+ " of the event
" + event.getEventType(), e);
ok = false;
}
try {