Details

    • Type: Bug Bug
    • Status: Open Open (View Workflow)
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: 8.0.0.Alpha1
    • Fix Version/s: 9.0.0.CR1
    • Component/s: Web (Undertow)
    • Security Level: Public (Everyone can see)
    • Labels:
    • Similar Issues:
      Show 10 results 

      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

        Activity

        Hide
        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
        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
        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
        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
        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
        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
        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
        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.

          People

          • Assignee:
            Tomaz Cerar
            Reporter:
            Stefan Negrea
          • Votes:
            0 Vote for this issue
            Watchers:
            8 Start watching this issue

            Dates

            • Created:
              Updated: