| RemoteIpValve |  | 0% |  | 0% | 87 | 87 | 219 | 219 | 33 | 33 | 1 | 1 |
| AccessLogValve |  | 0% |  | 0% | 87 | 87 | 211 | 211 | 33 | 33 | 1 | 1 |
| ExtendedAccessLogValve |  | 0% |  | 0% | 78 | 78 | 189 | 189 | 11 | 11 | 1 | 1 |
| AbstractAccessLogValve |  | 0% |  | 0% | 104 | 104 | 186 | 186 | 31 | 31 | 1 | 1 |
| JDBCAccessLogValve |  | 0% |  | 0% | 52 | 52 | 180 | 180 | 31 | 31 | 1 | 1 |
| ErrorReportValve |  | 0% |  | 0% | 41 | 41 | 156 | 156 | 8 | 8 | 1 | 1 |
| StuckThreadDetectionValve |  | 0% |  | 0% | 34 | 34 | 93 | 93 | 15 | 15 | 1 | 1 |
| PersistentValve |  | 0% |  | 0% | 45 | 45 | 102 | 102 | 10 | 10 | 1 | 1 |
| CrawlerSessionManagerValve |  | 0% |  | 0% | 42 | 42 | 88 | 88 | 16 | 16 | 1 | 1 |
| AbstractAccessLogValve.DateFormatCache.Cache |  | 0% |  | 0% | 21 | 21 | 70 | 70 | 4 | 4 | 1 | 1 |
| RemoteCIDRValve |  | 0% |  | 0% | 32 | 32 | 81 | 81 | 10 | 10 | 1 | 1 |
| AbstractAccessLogValve.DateAndTimeElement |  | 0% |  | 0% | 28 | 28 | 77 | 77 | 4 | 4 | 1 | 1 |
| RequestFilterValve |  | 0% |  | 0% | 40 | 40 | 84 | 84 | 20 | 20 | 1 | 1 |
| LoadBalancerDrainingValve |  | 0% |  | 0% | 26 | 26 | 55 | 55 | 7 | 7 | 1 | 1 |
| ExtendedAccessLogValve.PatternTokenizer |  | 0% |  | 0% | 23 | 23 | 67 | 67 | 8 | 8 | 1 | 1 |
| SSLValve |  | 0% |  | 0% | 23 | 23 | 69 | 69 | 14 | 14 | 1 | 1 |
| ValveBase |  | 0% |  | 0% | 25 | 25 | 60 | 60 | 16 | 16 | 1 | 1 |
| StuckThreadDetectionValve.MonitoredThread |  | 0% |  | 0% | 18 | 18 | 43 | 43 | 10 | 10 | 1 | 1 |
| SemaphoreValve |  | 0% |  | 0% | 19 | 19 | 44 | 44 | 14 | 14 | 1 | 1 |
| AbstractAccessLogValve.DateFormatCache |  | 0% |  | 0% | 8 | 8 | 27 | 27 | 4 | 4 | 1 | 1 |
| AbstractAccessLogValve.RemoteAddrElement |  | 0% |  | 0% | 12 | 12 | 31 | 31 | 4 | 4 | 1 | 1 |
| AbstractAccessLogValve.PortElement |  | 0% |  | 0% | 11 | 11 | 25 | 25 | 4 | 4 | 1 | 1 |
| AbstractAccessLogValve.ConnectionStatusElement |  | 0% |  | 0% | 9 | 9 | 21 | 21 | 2 | 2 | 1 | 1 |
| AbstractAccessLogValve.ElapsedTimeElement |  | 0% |  | 0% | 3 | 3 | 13 | 13 | 2 | 2 | 1 | 1 |
| AbstractAccessLogValve.HostElement |  | 0% |  | 0% | 11 | 11 | 17 | 17 | 3 | 3 | 1 | 1 |
| AbstractAccessLogValve.RequestElement |  | 0% |  | 0% | 5 | 5 | 16 | 16 | 2 | 2 | 1 | 1 |
| ExtendedAccessLogValve.ResponseAllHeaderElement |  | 0% |  | 0% | 6 | 6 | 17 | 17 | 2 | 2 | 1 | 1 |
| AbstractAccessLogValve.FormatType |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 | 1 | 1 |
| AbstractAccessLogValve.ByteSentElement |  | 0% |  | 0% | 7 | 7 | 15 | 15 | 2 | 2 | 1 | 1 |
| ExtendedAccessLogValve.TimeElement |  | 0% |  | 0% | 5 | 5 | 12 | 12 | 3 | 3 | 1 | 1 |
| ExtendedAccessLogValve.DateElement |  | 0% |  | 0% | 5 | 5 | 12 | 12 | 3 | 3 | 1 | 1 |
| AbstractAccessLogValve.HttpStatusCodeElement |  | 0% |  | 0% | 5 | 5 | 11 | 11 | 2 | 2 | 1 | 1 |
| AbstractAccessLogValve.LocalServerNameElement |  | 0% |  | 0% | 9 | 9 | 14 | 14 | 2 | 2 | 1 | 1 |
| AbstractAccessLogValve.SessionAttributeElement |  | 0% |  | 0% | 6 | 6 | 16 | 16 | 2 | 2 | 1 | 1 |
| AbstractAccessLogValve.CookieElement |  | 0% |  | 0% | 5 | 5 | 12 | 12 | 2 | 2 | 1 | 1 |
| RemoteAddrValve |  | 0% |  | 0% | 6 | 6 | 11 | 11 | 4 | 4 | 1 | 1 |
| AbstractAccessLogValve.ResponseHeaderElement |  | 0% |  | 0% | 5 | 5 | 13 | 13 | 2 | 2 | 1 | 1 |
| AbstractAccessLogValve.HeaderElement |  | 0% |  | 0% | 4 | 4 | 12 | 12 | 2 | 2 | 1 | 1 |
| AbstractAccessLogValve.RequestAttributeElement |  | 0% |  | 0% | 5 | 5 | 13 | 13 | 2 | 2 | 1 | 1 |
| RemoteHostValve |  | 0% |  | 0% | 5 | 5 | 9 | 9 | 4 | 4 | 1 | 1 |
| ExtendedAccessLogValve.CookieElement |  | 0% |  | 0% | 5 | 5 | 8 | 8 | 2 | 2 | 1 | 1 |
| StuckThreadDetectionValve.MonitoredThreadState |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 | 1 | 1 |
| AbstractAccessLogValve.ProtocolElement |  | 0% |  | 0% | 4 | 4 | 9 | 9 | 2 | 2 | 1 | 1 |
| ExtendedAccessLogValve.RequestParameterElement |  | 0% |  | 0% | 5 | 5 | 10 | 10 | 3 | 3 | 1 | 1 |
| ExtendedAccessLogValve.new AbstractAccessLogValve.AccessLogElement() {...} |  | 0% |  | 0% | 3 | 3 | 8 | 8 | 2 | 2 | 1 | 1 |
| AbstractAccessLogValve.LocalAddrElement |  | 0% |  | 0% | 3 | 3 | 12 | 12 | 2 | 2 | 1 | 1 |
| AbstractAccessLogValve.FirstByteTimeElement |  | 0% |  | 0% | 3 | 3 | 7 | 7 | 2 | 2 | 1 | 1 |
| AbstractAccessLogValve.SessionIdElement |  | 0% |  | 0% | 4 | 4 | 8 | 8 | 2 | 2 | 1 | 1 |
| ExtendedAccessLogValve.SessionAttributeElement |  | 0% |  | 0% | 4 | 4 | 9 | 9 | 2 | 2 | 1 | 1 |
| AbstractAccessLogValve.RemoteAddressType |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 | 1 | 1 |
| AbstractAccessLogValve.PortType |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 | 1 | 1 |
| AbstractAccessLogValve.UserElement |  | 0% |  | 0% | 4 | 4 | 9 | 9 | 2 | 2 | 1 | 1 |
| CrawlerSessionManagerValve.CrawlerHttpSessionBindingListener |  | 0% |  | 0% | 5 | 5 | 8 | 8 | 3 | 3 | 1 | 1 |
| StuckThreadDetectionValve.CompletedStuckThread |  | 0% | | n/a | 4 | 4 | 8 | 8 | 4 | 4 | 1 | 1 |
| AbstractAccessLogValve.QueryElement |  | 0% |  | 0% | 4 | 4 | 8 | 8 | 2 | 2 | 1 | 1 |
| ExtendedAccessLogValve.ElementTimestampStruct |  | 0% | | n/a | 1 | 1 | 5 | 5 | 1 | 1 | 1 | 1 |
| ExtendedAccessLogValve.new AbstractAccessLogValve.AccessLogElement() {...} |  | 0% |  | 0% | 3 | 3 | 6 | 6 | 2 | 2 | 1 | 1 |
| ExtendedAccessLogValve.new AbstractAccessLogValve.AccessLogElement() {...} |  | 0% | | n/a | 2 | 2 | 3 | 3 | 2 | 2 | 1 | 1 |
| AbstractAccessLogValve.ThreadNameElement |  | 0% |  | 0% | 3 | 3 | 6 | 6 | 2 | 2 | 1 | 1 |
| ExtendedAccessLogValve.new AbstractAccessLogValve.AccessLogElement() {...} |  | 0% | | n/a | 2 | 2 | 3 | 3 | 2 | 2 | 1 | 1 |
| ExtendedAccessLogValve.new AbstractAccessLogValve.AccessLogElement() {...} |  | 0% | | n/a | 2 | 2 | 3 | 3 | 2 | 2 | 1 | 1 |
| ExtendedAccessLogValve.new AbstractAccessLogValve.AccessLogElement() {...} |  | 0% | | n/a | 2 | 2 | 4 | 4 | 2 | 2 | 1 | 1 |
| ExtendedAccessLogValve.new AbstractAccessLogValve.AccessLogElement() {...} |  | 0% | | n/a | 2 | 2 | 8 | 8 | 2 | 2 | 1 | 1 |
| ExtendedAccessLogValve.ServletContextElement |  | 0% | | n/a | 2 | 2 | 6 | 6 | 2 | 2 | 1 | 1 |
| AbstractAccessLogValve.RequestURIElement |  | 0% |  | 0% | 3 | 3 | 5 | 5 | 2 | 2 | 1 | 1 |
| ExtendedAccessLogValve.ResponseHeaderElement |  | 0% | | n/a | 2 | 2 | 5 | 5 | 2 | 2 | 1 | 1 |
| ExtendedAccessLogValve.RequestHeaderElement |  | 0% | | n/a | 2 | 2 | 5 | 5 | 2 | 2 | 1 | 1 |
| ExtendedAccessLogValve.RequestAttributeElement |  | 0% | | n/a | 2 | 2 | 5 | 5 | 2 | 2 | 1 | 1 |
| ExtendedAccessLogValve.new AbstractAccessLogValve.AccessLogElement() {...} |  | 0% | | n/a | 2 | 2 | 3 | 3 | 2 | 2 | 1 | 1 |
| ExtendedAccessLogValve.new AbstractAccessLogValve.AccessLogElement() {...} |  | 0% | | n/a | 2 | 2 | 3 | 3 | 2 | 2 | 1 | 1 |
| ExtendedAccessLogValve.new AbstractAccessLogValve.AccessLogElement() {...} |  | 0% | | n/a | 2 | 2 | 3 | 3 | 2 | 2 | 1 | 1 |
| ExtendedAccessLogValve.new AbstractAccessLogValve.AccessLogElement() {...} |  | 0% | | n/a | 2 | 2 | 3 | 3 | 2 | 2 | 1 | 1 |
| ExtendedAccessLogValve.new AbstractAccessLogValve.AccessLogElement() {...} |  | 0% | | n/a | 2 | 2 | 3 | 3 | 2 | 2 | 1 | 1 |
| ExtendedAccessLogValve.new AbstractAccessLogValve.AccessLogElement() {...} |  | 0% | | n/a | 2 | 2 | 3 | 3 | 2 | 2 | 1 | 1 |
| ExtendedAccessLogValve.new AbstractAccessLogValve.AccessLogElement() {...} |  | 0% | | n/a | 2 | 2 | 3 | 3 | 2 | 2 | 1 | 1 |
| AbstractAccessLogValve.StringElement |  | 0% | | n/a | 2 | 2 | 5 | 5 | 2 | 2 | 1 | 1 |
| AbstractAccessLogValve.MethodElement |  | 0% |  | 0% | 3 | 3 | 4 | 4 | 2 | 2 | 1 | 1 |
| AbstractAccessLogValve.new ThreadLocal() {...} |  | 0% | | n/a | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 1 |
| ExtendedAccessLogValve.DateElement.new ThreadLocal() {...} |  | 0% | | n/a | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 1 |
| AbstractAccessLogValve.LogicalUserNameElement |  | 0% | | n/a | 2 | 2 | 3 | 3 | 2 | 2 | 1 | 1 |
| ExtendedAccessLogValve.TimeElement.new ThreadLocal() {...} |  | 0% | | n/a | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 1 |
| AbstractAccessLogValve.new ThreadLocal() {...} | | 0% | | n/a | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 1 |
| Constants.AccessLog | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
| Constants | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |