Details

      Description

      The following web deployment metrics are missing from AS7 when compared to AS5 exposed metrics:

      Clustered - True if this web application context is clustered
      Virtual Host - the virtual host with which this context is associated
      Response Time - the minimum, maximum, and average response times for requests serviced by this webapp
      Currently Active Sessions - the number of sessions that are currently active for this WAR
      Maximum Active Sessions - the maximum number of sessions that have been active for this WAR
      Created Sessions - the number of sessions created for this WAR
      Created Sessions per Minute - the number of sessions created for this WAR
      Expired Sessions - the number of expired sessions for this WAR
      Expired Sessions per Minute - the number of expired sessions for this WAR
      Rejected Sessions - the number of sessions rejected for this WAR
      Rejected Sessions per Minute - the number of sessions rejected for this WAR
      Average Session Alive Time - the average alive time of sessions for this WAR
      Max Session Alive Time - the maximum alive time of sessions for this WAR

        Gliffy Diagrams

          Issue Links

            Activity

            Hide
            jdoyle John Doyle added a comment -

            From Gary Lamperillo on SA-list

            For active sessions for a web app, try this:

            /deployment==example.war/subsystem=web:read-resource(include-runtime=true)
            {
            "outcome" => "success",
            "result" =>

            { "active-sessions" => 0, "context-root" => "/example", "duplicated-session-ids" => 0, "expired-sessions" => 1, "max-active-sessions" => 1, "rejected-sessions" => 0, "servlet" => undefined, "session-avg-alive-time" => 1833, "session-max-alive-time" => 1833, "sessions-created" => 1, "virtual-host" => "default-host" }

            }

            Make sure you include "(include-runtime=true)"

            include-runtime – (boolean, default is false) – whether to include runtime attributes (i.e. those whose value does not come from the persistent configuration) in the response. Ignored if recursive is true, as reading runtime attributes may be expensive.

            Show
            jdoyle John Doyle added a comment - From Gary Lamperillo on SA-list For active sessions for a web app, try this: /deployment==example.war/subsystem=web:read-resource(include-runtime=true) { "outcome" => "success", "result" => { "active-sessions" => 0, "context-root" => "/example", "duplicated-session-ids" => 0, "expired-sessions" => 1, "max-active-sessions" => 1, "rejected-sessions" => 0, "servlet" => undefined, "session-avg-alive-time" => 1833, "session-max-alive-time" => 1833, "sessions-created" => 1, "virtual-host" => "default-host" } } Make sure you include "(include-runtime=true)" include-runtime – (boolean, default is false) – whether to include runtime attributes (i.e. those whose value does not come from the persistent configuration) in the response. Ignored if recursive is true, as reading runtime attributes may be expensive.
            Hide
            brian.stansberry Brian Stansberry added a comment - - edited

            Actually, at some point prior to EAP 6.0.0 we removed the behavior whereby "recursive=true" would be ignored if "include-runtime=true". So, you can add recursive=true to the above operation and get statistics from any servlets that are part of the deployment.

            [standalone@localhost:9999 /] /deployment=fibo.ear/subdeployment=fibo.war/subsystem=web:read-resource(include-runtime=true,recursive=true)
            {
                "outcome" => "success",
                "result" => {
                    "active-sessions" => 0,
                    "context-root" => "/fibo",
                    "duplicated-session-ids" => 0,
                    "expired-sessions" => 0,
                    "max-active-sessions" => 0,
                    "rejected-sessions" => 0,
                    "session-avg-alive-time" => 0,
                    "session-max-alive-time" => 0,
                    "sessions-created" => 0,
                    "virtual-host" => "default-host",
                    "servlet" => {"Fibo" => {
                        "load-time" => 0L,
                        "maxTime" => 9223372036854775807L,
                        "min-time" => 0L,
                        "processingTime" => 0L,
                        "requestCount" => 0,
                        "servlet-class" => "services.web.FiboServlet",
                        "servlet-name" => "Fibo"
                    }}
                }
            }
            

            Here's the description of the stuff that can be read via that command:

            [standalone@localhost:9999 /] /deployment=helloworld.war/subsystem=web:read-resource-description(recursive=true)
            {
                "outcome" => "success",
                "result" => {
                    "description" => "Runtime resources exposed by web components in the deployment.",
                    "attributes" => {
                        "expired-sessions" => {
                            "type" => INT,
                            "description" => "Number of sessions that have expired",
                            "expressions-allowed" => false,
                            "nillable" => false,
                            "access-type" => "metric",
                            "storage" => "runtime"
                        },
                        "rejected-sessions" => {
                            "type" => INT,
                            "description" => "Number of rejected sessions",
                            "expressions-allowed" => false,
                            "nillable" => false,
                            "access-type" => "metric",
                            "storage" => "runtime"
                        },
                        "max-active-sessions" => {
                            "type" => INT,
                            "description" => "Max number of concurrent active sessions",
                            "expressions-allowed" => false,
                            "nillable" => false,
                            "access-type" => "metric",
                            "storage" => "runtime"
                        },
                        "session-max-alive-time" => {
                            "type" => INT,
                            "description" => "The longest time (in seconds) that an expired session had been alive",
                            "expressions-allowed" => false,
                            "nillable" => false,
                            "access-type" => "metric",
                            "storage" => "runtime"
                        },
                        "sessions-created" => {
                            "type" => INT,
                            "description" => "Total sessions created",
                            "expressions-allowed" => false,
                            "nillable" => false,
                            "access-type" => "metric",
                            "storage" => "runtime"
                        },
                        "session-avg-alive-time" => {
                            "type" => INT,
                            "description" => "Average time (in seconds) that expired sessions had been alive",
                            "expressions-allowed" => false,
                            "nillable" => false,
                            "access-type" => "metric",
                            "storage" => "runtime"
                        },
                        "context-root" => {
                            "type" => STRING,
                            "description" => "The context root of the web application",
                            "expressions-allowed" => false,
                            "nillable" => false,
                            "min-length" => 1L,
                            "max-length" => 2147483647L,
                            "access-type" => "read-only",
                            "storage" => "runtime"
                        },
                        "virtual-host" => {
                            "type" => STRING,
                            "description" => "The name of the virtual host on which the web application is served",
                            "expressions-allowed" => false,
                            "nillable" => false,
                            "min-length" => 1L,
                            "max-length" => 2147483647L,
                            "access-type" => "read-only",
                            "storage" => "runtime"
                        },
                        "active-sessions" => {
                            "type" => INT,
                            "description" => "Number of active sessions",
                            "expressions-allowed" => false,
                            "nillable" => false,
                            "access-type" => "metric",
                            "storage" => "runtime"
                        },
                        "duplicated-session-ids" => {
                            "type" => INT,
                            "description" => "Number of duplicated session IDs generated by the random source (anything bigger than 0 means problems)",
                            "expressions-allowed" => false,
                            "nillable" => false,
                            "access-type" => "metric",
                            "storage" => "runtime"
                        }
                    },
                    "operations" => undefined,
                    "children" => {"servlet" => {
                        "description" => "Runtime information about the servlets in the deployment.",
                        "model-description" => {"*" => {
                            "description" => "Runtime information about the servlets in the deployment.",
                            "attributes" => {
                                "min-time" => {
                                    "type" => LONG,
                                    "description" => "Minimum processing time of a request",
                                    "expressions-allowed" => false,
                                    "nillable" => true,
                                    "access-type" => "metric",
                                    "storage" => "runtime"
                                },
                                "load-time" => {
                                    "type" => LONG,
                                    "description" => "Load time",
                                    "expressions-allowed" => false,
                                    "nillable" => true,
                                    "access-type" => "metric",
                                    "storage" => "runtime"
                                },
                                "processingTime" => {
                                    "type" => LONG,
                                    "description" => "Total execution time of the servlet's service method",
                                    "expressions-allowed" => false,
                                    "nillable" => true,
                                    "access-type" => "metric",
                                    "storage" => "runtime"
                                },
                                "maxTime" => {
                                    "type" => LONG,
                                    "description" => "Maximum processing time of a request",
                                    "expressions-allowed" => false,
                                    "nillable" => true,
                                    "access-type" => "metric",
                                    "storage" => "runtime"
                                },
                                "requestCount" => {
                                    "type" => INT,
                                    "description" => "Number of requests processed by this servlet",
                                    "expressions-allowed" => false,
                                    "nillable" => true,
                                    "access-type" => "metric",
                                    "storage" => "runtime"
                                }
                            },
                            "operations" => undefined,
                            "children" => {}
                        }}
                    }}
                }
            }
            

            Show
            brian.stansberry Brian Stansberry added a comment - - edited Actually, at some point prior to EAP 6.0.0 we removed the behavior whereby "recursive=true" would be ignored if "include-runtime=true". So, you can add recursive=true to the above operation and get statistics from any servlets that are part of the deployment. [standalone@localhost:9999 /] /deployment=fibo.ear/subdeployment=fibo.war/subsystem=web:read-resource(include-runtime=true,recursive=true) { "outcome" => "success", "result" => { "active-sessions" => 0, "context-root" => "/fibo", "duplicated-session-ids" => 0, "expired-sessions" => 0, "max-active-sessions" => 0, "rejected-sessions" => 0, "session-avg-alive-time" => 0, "session-max-alive-time" => 0, "sessions-created" => 0, "virtual-host" => "default-host", "servlet" => {"Fibo" => { "load-time" => 0L, "maxTime" => 9223372036854775807L, "min-time" => 0L, "processingTime" => 0L, "requestCount" => 0, "servlet-class" => "services.web.FiboServlet", "servlet-name" => "Fibo" }} } } Here's the description of the stuff that can be read via that command: [standalone@localhost:9999 /] /deployment=helloworld.war/subsystem=web:read-resource-description(recursive=true) { "outcome" => "success", "result" => { "description" => "Runtime resources exposed by web components in the deployment.", "attributes" => { "expired-sessions" => { "type" => INT, "description" => "Number of sessions that have expired", "expressions-allowed" => false, "nillable" => false, "access-type" => "metric", "storage" => "runtime" }, "rejected-sessions" => { "type" => INT, "description" => "Number of rejected sessions", "expressions-allowed" => false, "nillable" => false, "access-type" => "metric", "storage" => "runtime" }, "max-active-sessions" => { "type" => INT, "description" => "Max number of concurrent active sessions", "expressions-allowed" => false, "nillable" => false, "access-type" => "metric", "storage" => "runtime" }, "session-max-alive-time" => { "type" => INT, "description" => "The longest time (in seconds) that an expired session had been alive", "expressions-allowed" => false, "nillable" => false, "access-type" => "metric", "storage" => "runtime" }, "sessions-created" => { "type" => INT, "description" => "Total sessions created", "expressions-allowed" => false, "nillable" => false, "access-type" => "metric", "storage" => "runtime" }, "session-avg-alive-time" => { "type" => INT, "description" => "Average time (in seconds) that expired sessions had been alive", "expressions-allowed" => false, "nillable" => false, "access-type" => "metric", "storage" => "runtime" }, "context-root" => { "type" => STRING, "description" => "The context root of the web application", "expressions-allowed" => false, "nillable" => false, "min-length" => 1L, "max-length" => 2147483647L, "access-type" => "read-only", "storage" => "runtime" }, "virtual-host" => { "type" => STRING, "description" => "The name of the virtual host on which the web application is served", "expressions-allowed" => false, "nillable" => false, "min-length" => 1L, "max-length" => 2147483647L, "access-type" => "read-only", "storage" => "runtime" }, "active-sessions" => { "type" => INT, "description" => "Number of active sessions", "expressions-allowed" => false, "nillable" => false, "access-type" => "metric", "storage" => "runtime" }, "duplicated-session-ids" => { "type" => INT, "description" => "Number of duplicated session IDs generated by the random source (anything bigger than 0 means problems)", "expressions-allowed" => false, "nillable" => false, "access-type" => "metric", "storage" => "runtime" } }, "operations" => undefined, "children" => {"servlet" => { "description" => "Runtime information about the servlets in the deployment.", "model-description" => {"*" => { "description" => "Runtime information about the servlets in the deployment.", "attributes" => { "min-time" => { "type" => LONG, "description" => "Minimum processing time of a request", "expressions-allowed" => false, "nillable" => true, "access-type" => "metric", "storage" => "runtime" }, "load-time" => { "type" => LONG, "description" => "Load time", "expressions-allowed" => false, "nillable" => true, "access-type" => "metric", "storage" => "runtime" }, "processingTime" => { "type" => LONG, "description" => "Total execution time of the servlet's service method", "expressions-allowed" => false, "nillable" => true, "access-type" => "metric", "storage" => "runtime" }, "maxTime" => { "type" => LONG, "description" => "Maximum processing time of a request", "expressions-allowed" => false, "nillable" => true, "access-type" => "metric", "storage" => "runtime" }, "requestCount" => { "type" => INT, "description" => "Number of requests processed by this servlet", "expressions-allowed" => false, "nillable" => true, "access-type" => "metric", "storage" => "runtime" } }, "operations" => undefined, "children" => {} }} }} } }
            Hide
            brian.stansberry Brian Stansberry added a comment -

            I've noticed though that the default servlets that JBoss Web automatically provides (e.g. the servlet that serves static content) don't show up in this output.

            Show
            brian.stansberry Brian Stansberry added a comment - I've noticed though that the default servlets that JBoss Web automatically provides (e.g. the servlet that serves static content) don't show up in this output.
            Hide
            ctomc Tomaz Cerar added a comment -

            We switched web container from jbossweb to undertow in WildFly 8.
            Some metrics are supported in undertow but for now we have lesser set of metrics that we had before.

            Show
            ctomc Tomaz Cerar added a comment - We switched web container from jbossweb to undertow in WildFly 8. Some metrics are supported in undertow but for now we have lesser set of metrics that we had before.
            Hide
            rhusar Radoslav Husar added a comment -

            It would be great the metrics provided all the information for mod_cluster integration as well, so that we can get rid of some the wrapping I had to put in here https://github.com/wildfly/wildfly/tree/master/mod_cluster/undertow/src/main/java/org/wildfly/mod_cluster/undertow/metric

            Show
            rhusar Radoslav Husar added a comment - It would be great the metrics provided all the information for mod_cluster integration as well, so that we can get rid of some the wrapping I had to put in here https://github.com/wildfly/wildfly/tree/master/mod_cluster/undertow/src/main/java/org/wildfly/mod_cluster/undertow/metric

              People

              • Assignee:
                swd847 Stuart Douglas
                Reporter:
                nstefan Stefan Negrea
              • Votes:
                0 Vote for this issue
                Watchers:
                11 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Development