Hi Nicolas,

+) that sounds cool ...

+) I have some code generating proper monitor names based on method invocations (see http://people.apache.org/~sgoeschl/presentations/jamon-20070717.pdf - "Example - Performance Monitor") - you might need this stuff ... :-)


Cheers,

Siegfried Goeschl



nicolas de loof wrote:


    please consider the following scenario

    +) adding commons-monitoring integration by using
    AOP/interceptor/events/whatever - so the application is not aware
    of being monitored - cool
    +) in the same non-intrusive manner I would like to gather the
    data using a browser - just adding two entries in the web.xml and
    nothing else


I have the same goal !

-> web.xml to setup web monitoring + reporting servlet
-> spring-aop or aspectJ to have code instrumented
    To further clarify my point

    +) due to security considerations it could be an issue to add
    commons-monitoring to a secure application although it might
    materialize as transitive dependency (thx to maven) - no need to
    tell operations
    +) exposing servlets is a problem already - you enable them in the
    integration environment and they will find their way to production
    somehow (Murphy is one of my best friends)
    +) asking project management/operations to approve a few cool
    javascript libraries (flot, jquery) ranges from difficult to
    impossible .... how can I ensure that those libraries are safe
    regarding security, cross-site scripting, ...
    +) even more funny - I would like to have access using lynx or w3m
    (aka desperate developer looking at a HTML page over three SSH
    connections on the terminal) ... :-O


to secure the servlet, you can enable j2ee security !

the servlet can produce a nice JS-enhanced web UI, but the generated HTML is just HTML table - you can even get infos as txt if you need scripts, css and images are all included in the JAR. There is no required maven dependency Nothing more to install on your application than the commons-monitoring jar

    In short - I'm focused on a simple and secure deployment - just a
    jar containing the stuff, a servlet plus resources found in the
    classpath and nothing else for the core distribution. I'm
    perfectly fine having a  more functional frontend but  not all
    user can carry the burden associated with it.

    Cheers

    Siegfried Goeschl


    PS: A tiny bit of community building - I added a colleague of mine
    as recipient - try to convince her to help with commons-monitoring
    .... ;-)

    nicolas de loof wrote:

        The current code has a servlet to expose the monitored datas,
        based on request parameters :


        /monitoring/monitors --> all monitors in the repository, with
        all counters/gauges and all stats, using an output format
        detected based on request "Accept" HTTP header

        /monitoring/monitors?format=html --> same but force output to
        html. Support html, xml, txt, js, and flot (see later)

        /monitoring/monitorsFromCategory/web --> same, but only
        monitors from the category "web"
        /monitoring/monitorsFromSubsystem/web --> same, but only
        monitors from the category "web"

        adding some other parameter allow to tweak the output :

        ?role=performances --> only the "performances" counter will be
        included

        ?role=performances&role=failures --> only the "performances"
        and "failures" counters will be included

        ?performances.unit=ms  --> "performances" counter stats will
        be formatted with ms as unit (default is ns)

        ?performances.columns=mean,max,standardDeviation  --> Only
        render the requested statistics


        Using all those parameters, you can build custom URLs to get
        the expected report.


        There is also another servlet, the WebUIServlet, that defaults
        output to HTML and extend the generated HTML with nicer CSS
        and inclusion of jquery javascript library to enable table
        sorting.

        The "flot" format is also used with jQuery to enable graphing
        (based on the flot JS library).

        A RepositoryDecorator is used to enable history on the
        repository, on a period + history-size basis. This enable a
        new URL on MonitoringServlet :
        /monitoring/history/monitor/category/subsystem/name

        This will return a table of the monitor (with all it's
        counters & stats) for every historized period.
        Using ?format=flot will return a JavaScript objet to be used
        by the flot library to render a graph.

        Same roles/units/columns filterring can be used to customize
        the output

        !! Please note the flot ouput is early experimental and not
        yet stable !!


        Il plan to split the project into modules :

        - core for monitoring infrastructure
        - webui-lite for the jquery based web UI
        - webui-X for a more advanced web ui, maybe based on GWT or
        anything else to have a cool monitoring UI.



        Take a look in the SVN source at the src/main/webapp WAR
        configuration, this is used for testing /demonstrating purpose.


        Thanks for feedback,

        Nicolas,



        2008/4/18, Siegfried Goeschl <[EMAIL PROTECTED]
        <mailto:[EMAIL PROTECTED]> <mailto:[EMAIL PROTECTED]
        <mailto:[EMAIL PROTECTED]>>>:

           Hi folks,

           what are the current plans to add a web frontend to Commons
           Monitoring?

           Based on my JAMON experience

           +) the web frontend required additional libraries
           +) the jamon library and JSP/web resources were always out
        of sync
           and broke the web application

           Would it be possible/feasible to implement the
        visualization using
           a plain-vanilla servlet and have more elegant
        implementation using
           JSP/Taglibs as an optional part? Using a servlet I can
        enable the
           web frontend by just updating the web.xml ...

           Cheers,

           Siegfried Goeschl







---------------------------------------------------------------------
           To unsubscribe, e-mail: [EMAIL PROTECTED]
        <mailto:[EMAIL PROTECTED]>
           <mailto:[EMAIL PROTECTED]
        <mailto:[EMAIL PROTECTED]>>
           For additional commands, e-mail:
        [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
           <mailto:[EMAIL PROTECTED]
        <mailto:[EMAIL PROTECTED]>>






---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to