So the Listener is required, now? Or is this only an option if you have more 
then one application in one war?

I created the SessionCountListener only as a helper for the aspect to count 
sessions. Now it is used to store the session / the registry. 

About the statics and get(String)? Can they he removed?

kind regards

Tobias

> Am 28.03.2016 um 12:40 schrieb Martin Grigorov <[email protected]>:
> 
> I've pushed the second part.
> Now SessionCountListener and SessionCountListenerAspect use the
> MetricRegistry and WicketMetricsSettings stored in the ServletContext.
> 
> For applications which live in the same .war file the registry and the
> settings are shared by default. Each application can override any of those
> in MyApp#init() method
> Applications in separate .war files will have different registry and
> settings.
> 
> I don't see a need to use <env-entry> for any use case now.
> The other ways to lookup the registry and the settings could stay, although
> all current aspects could work by using the ThreadLocal or the
> ServletContext.
> 
> Martin Grigorov
> Wicket Training and Consulting
> https://twitter.com/mtgrigorov
> 
> On Mon, Mar 28, 2016 at 10:10 AM, Tobias Soloschenko <
> [email protected]> wrote:
> 
>> Mhhh the SessionCountListener is optional - keep that in mind - if a
>> Session is restored this might cause issues but I am looking forward to see
>> the final changes.
>> 
>> kind regards
>> 
>> Tobias
>> 
>>> Am 28.03.2016 um 09:28 schrieb Martin Grigorov <[email protected]>:
>>> 
>>> I've pushed a commit that I believe will help.
>>> I have to go out now, so I'll finish it in the afternoon.
>>> 
>>> Martin Grigorov
>>> Wicket Training and Consulting
>>> https://twitter.com/mtgrigorov
>>> 
>>> On Mon, Mar 28, 2016 at 9:25 AM, Tobias Soloschenko <
>>> [email protected]> wrote:
>>> 
>>>> Hi Martin,
>>>> 
>>>> thank you!
>>>> 
>>>> kind regards
>>>> 
>>>> Tobias
>>>> 
>>>>> Am 28.03.2016 um 09:15 schrieb Martin Grigorov <[email protected]>:
>>>>> 
>>>>> Hi Tobias,
>>>>> 
>>>>> I haven't tested it with two .war files yet but I can see how to break
>>>> this
>>>>> approach too: add two Wicket applications in the same .war, i.e. two
>>>>> <filter>s for two different applications.
>>>>> The env-entry is shared for all servlets/filters in the .war.
>>>>> 
>>>>> I'll try to rework it to use the ServletContext now.
>>>>> 
>>>>> Martin Grigorov
>>>>> Wicket Training and Consulting
>>>>> https://twitter.com/mtgrigorov
>>>>> 
>>>>> On Mon, Mar 28, 2016 at 7:51 AM, Tobias Soloschenko <
>>>>> [email protected]> wrote:
>>>>> 
>>>>>> Update:
>>>>>> 
>>>>>> I finally got it working for me:
>>>> 
>> https://github.com/klopfdreh/wicket/commit/dda71c9e5ce5135993df0ea85450d232f14e53c5
>>>>>> 
>>>>>> @Martin: Would be able to also test it with two or more applications
>>>>>> running on the same server?
>>>>>> 
>>>>>> In your MetricsServlet.ContextListener you could easily write
>>>>>> WicketMetrics.getMetricsRegistry() - The detection which application
>>>> should
>>>>>> be shipped is handled if you set up environment entries in each
>> project.
>>>>>> (see commit)
>>>> 
>> https://dropwizard.github.io/metrics/3.1.0/manual/servlets/#manual-servlets
>>>>>> 
>>>>>> kind regards
>>>>>> 
>>>>>> Tobias
>>>>>> 
>>>>>> Am 27.03.16 um 13:12 schrieb Martin Grigorov:
>>>>>> 
>>>>>> Hi,
>>>>>>> 
>>>>>>> The problem with -Dwicket.metrics.applicationName and the static
>>>> variables
>>>>>>> approach is that both cannot be used if you have two Wicket
>>>> applications
>>>>>>> in
>>>>>>> the web server.
>>>>>>> 
>>>>>>> There is no need to implement a custom Servlet. metrics-servlet
>> already
>>>>>>> provides it. We just have to make the MetricsRegistry available in
>> the
>>>>>>> ServletContext (attribute
>>>>>>> "com.codahale.metrics.servlets.MetricsServlet.registry")
>>>>>>> 
>>>>>>> Martin Grigorov
>>>>>>> Wicket Training and Consulting
>>>>>>> https://twitter.com/mtgrigorov
>>>>>>> 
>>>>>>> On Sat, Mar 26, 2016 at 2:34 AM, Tobias Soloschenko <
>>>>>>> [email protected]> wrote:
>>>>>>> 
>>>>>>> Hi,
>>>>>>>> 
>>>>>>>> I would prefer to stay by the Application.get(String) /
>>>> Application.get()
>>>>>>>> / static because it is more Independent and not bound to the webapp
>>>>>>>> lifecycle. Currently we only rely on the servlet stuff in one
>> metric -
>>>>>>>> which is at least not required. Even in Wicket itself you should not
>>>>>>>> access
>>>>>>>> the HttpSession itself.
>>>>>>>> 
>>>>>>>> But this is only my opinion - let us hear other suggestions.
>>>>>>>> 
>>>>>>>> Maybe it is a good idea to implement a defaul servlet which can be
>>>>>>>> configured and exposes the metrics / registry via http get - which
>>>> uses
>>>>>>>> the
>>>>>>>> dropwizard metric servlet.
>>>>>>>> 
>>>>>>>> kind regards
>>>>>>>> 
>>>>>>>> Tobias
>>>>>>>> 
>>>>>>>>> Am 25.03.2016 um 22:51 schrieb Martin Grigorov <
>> [email protected]
>>>>> :
>>>>>>>>> 
>>>>>>>>> Just moments after sending the mail I recalled that DropWizard
>>>> provides
>>>>>>>>> something similar:
>>>>>>>>> https://dropwizard.github.io/metrics/3.1.0/manual/servlets/
>>>>>>>>> So there is no need of a custom IResource.
>>>>>>>>> We just have to make it easier to lookup the MetricsRegistry from
>>>>>>>>> MetricsServlet - via the ServletContext.
>>>>>>>>> 
>>>>>>>>> I wonder whether the ServletContext solution could be used instead
>> of
>>>>>>>>> the
>>>>>>>>> Application#get(String) and static variable fallbacks. I.e. somehow
>>>> to
>>>>>>>> get
>>>>>>>> 
>>>>>>>>> a reference to ServletContext in Session#onInvalidate().
>>>>>>>>> 
>>>>>>>>> Martin Grigorov
>>>>>>>>> Wicket Training and Consulting
>>>>>>>>> https://twitter.com/mtgrigorov
>>>>>>>>> 
>>>>>>>>> On Fri, Mar 25, 2016 at 10:48 PM, Martin Grigorov <
>>>> [email protected]
>>>>>>>>> wrote:
>>>>>>>>> 
>>>>>>>>> Hi Tobias,
>>>>>>>>>> 
>>>>>>>>>> Inspired by
>>>>>>>>>> https://github.com/jooby-project/jooby/tree/master/jooby-metrics
>> I
>>>>>>>>> think
>>>>>>>> 
>>>>>>>>> it would be nice if wicket-metrics provides a IResource that
>> renders
>>>>>>>>> JSON
>>>>>>>> 
>>>>>>>>> with the current metrics per type/aspect.
>>>>>>>>>> I.e. if /wicket/metrics/ is requested then it dumps something
>> like:
>>>>>>>>>> 
>>>>>>>>>> {
>>>>>>>>>> "SomeTimerAspect" : {min:.., max:..., mean:..., ...},
>>>>>>>>>> ...
>>>>>>>>>> "SomeCounterAspect" : {value:..},
>>>>>>>>>> ...
>>>>>>>>>> }
>>>>>>>>>> 
>>>>>>>>>> When /wicket/metrics/SomeCounterAspect is requested then :
>>>>>>>>>> {"value": ...}
>>>>>>>>>> is rendered.
>>>>>>>>>> 
>>>>>>>>>> Do you think it is a good idea ?
>>>>>>>>>> 
>>>>>>>>>> It will be useful for quicker checks of the current state.
>>>>>>>>>> 
>>>>>>>>>> The application will have to mount it explicitly in MyApp#init().
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> Martin Grigorov
>>>>>>>>>> Wicket Training and Consulting
>>>>>>>>>> https://twitter.com/mtgrigorov
>>>> 
>> 

Reply via email to