You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Tobias Soloschenko (JIRA)" <ji...@apache.org> on 2016/03/23 08:40:25 UTC
[jira] [Comment Edited] (WICKET-6128) Add metrics for currently
active sessions
[ https://issues.apache.org/jira/browse/WICKET-6128?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15208017#comment-15208017 ]
Tobias Soloschenko edited comment on WICKET-6128 at 3/23/16 7:40 AM:
---------------------------------------------------------------------
Hi,
yesterday I tried out the following setup:
Session counter:
{code}
private static final AtomicLong count = new AtomicLong(0);
{code}
Session is created and measured with:
{code}
@Around("execution(* org.apache.wicket.session.ISessionStore.bind(..))")
public Object aroundBind(ProceedingJoinPoint joinPoint) throws Throwable
{
return histogram("core/session/count", joinPoint, count.getAndIncrement());
}
{code}
Session expired and measured with:
{code}
@Around("execution(* org.apache.wicket.Session.onInvalidate())")
public Object aroundInvalidate(ProceedingJoinPoint joinPoint) throws Throwable
{
return histogram("core/session/count", joinPoint, count.getAndDecrement());
}
{code}
The issue here was that the increment is working, but the decrement always results in an exception, because the Application cant be resolved with Application.get().
{code}
org.apache.wicket.WicketRuntimeException: There is no application attached to current thread ContainerBackgroundProcessor[StandardEngine[Catalina]]
at org.apache.wicket.Application.get(Application.java:236)
at org.apache.wicket.metrics.WicketMetrics.getSettings(WicketMetrics.java:189)
at org.apache.wicket.metrics.WicketMetrics.histogram(WicketMetrics.java:96)
at org.apache.wicket.metrics.aspects.session.ISessionStoreAspect.aroundInvalidate(ISessionStoreAspect.java:49)
at org.apache.wicket.Session.onInvalidate(Session.java:918)
at org.apache.wicket.session.HttpSessionStore$SessionBindingListener.valueUnbound(HttpSessionStore.java:458)
at org.apache.catalina.session.StandardSession.removeAttributeInternal(StandardSession.java:1838)
at org.apache.catalina.session.StandardSession.expire(StandardSession.java:891)
at org.apache.catalina.session.StandardSession.isValid(StandardSession.java:694)
at org.apache.catalina.session.ManagerBase.processExpires(ManagerBase.java:666)
at org.apache.catalina.session.ManagerBase.backgroundProcess(ManagerBase.java:651)
at org.apache.catalina.core.StandardContext.backgroundProcess(StandardContext.java:5625)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1377)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1381)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1381)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1349)
at java.lang.Thread.run(Thread.java:745)
{code}
I think there is a limit by using meta data and application, but if I use static variables you said that OSGi would make trouble - I don't know where to store the registry / settings then. Any ideas?
was (Author: klopfdreh):
Hi,
yesterday I tried out the following setup:
Session counter:
{code}
private static final AtomicLong count = new AtomicLong(0);
{code}
Session is created and measured with:
{code}
@Around("execution(* org.apache.wicket.session.ISessionStore.bind(..))")
public Object aroundBind(ProceedingJoinPoint joinPoint) throws Throwable
{
return histogram("core/session/count", joinPoint, count.getAndIncrement());
}
{code}
Session expired and measured with:
{code}
@Around("execution(* org.apache.wicket.Session.onInvalidate())")
public Object aroundInvalidate(ProceedingJoinPoint joinPoint) throws Throwable
{
return histogram("core/session/count", joinPoint, count.getAndDecrement());
}
{code}
The issue where was that the increment is working, but the decrement always results in an exception, because the Application cant be resolved with Application.get().
{code}
org.apache.wicket.WicketRuntimeException: There is no application attached to current thread ContainerBackgroundProcessor[StandardEngine[Catalina]]
at org.apache.wicket.Application.get(Application.java:236)
at org.apache.wicket.metrics.WicketMetrics.getSettings(WicketMetrics.java:189)
at org.apache.wicket.metrics.WicketMetrics.histogram(WicketMetrics.java:96)
at org.apache.wicket.metrics.aspects.session.ISessionStoreAspect.aroundInvalidate(ISessionStoreAspect.java:49)
at org.apache.wicket.Session.onInvalidate(Session.java:918)
at org.apache.wicket.session.HttpSessionStore$SessionBindingListener.valueUnbound(HttpSessionStore.java:458)
at org.apache.catalina.session.StandardSession.removeAttributeInternal(StandardSession.java:1838)
at org.apache.catalina.session.StandardSession.expire(StandardSession.java:891)
at org.apache.catalina.session.StandardSession.isValid(StandardSession.java:694)
at org.apache.catalina.session.ManagerBase.processExpires(ManagerBase.java:666)
at org.apache.catalina.session.ManagerBase.backgroundProcess(ManagerBase.java:651)
at org.apache.catalina.core.StandardContext.backgroundProcess(StandardContext.java:5625)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1377)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1381)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1381)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1349)
at java.lang.Thread.run(Thread.java:745)
{code}
I think there is a limit by using meta data and application, but if I use static variables you said that OSGi would make trouble - I don't know where to store the registry / settings then. Any ideas?
> Add metrics for currently active sessions
> -----------------------------------------
>
> Key: WICKET-6128
> URL: https://issues.apache.org/jira/browse/WICKET-6128
> Project: Wicket
> Issue Type: Improvement
> Components: wicket-metrics
> Affects Versions: 7.3.0
> Reporter: Martin Grigorov
> Assignee: Tobias Soloschenko
> Priority: Minor
>
> Add metric for the number of currently active Wicket sessions.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)