Class MetricsFilter

  • All Implemented Interfaces:
    javax.servlet.Filter

    public class MetricsFilter
    extends Object
    implements javax.servlet.Filter
    The MetricsFilter class exists to provide a high-level filter that enables tunable collection of metrics for Servlet performance.

    The Histogram name itself is required, and configured with a metric-name init parameter.

    The help parameter, configured with the help init parameter, is not required but strongly recommended.

    By default, this filter will provide metrics that distinguish only 1 level deep for the request path (including servlet context path), but can be configured with the path-components init parameter. Any number provided that is less than 1 will provide the full path granularity (warning, this may affect performance).

    The Histogram buckets can be configured with a buckets init parameter whose value is a comma-separated list of valid double values.

    
     <filter>
       <filter-name>prometheusFilter</filter-name>
       <filter-class>io.prometheus.client.filter.MetricsFilter</filter-class>
       <init-param>
          <param-name>metric-name</param-name>
          <param-value>webapp_metrics_filter</param-value>
       </init-param>
        <init-param>
          <param-name>help</param-name>
          <param-value>The time taken fulfilling servlet requests</param-value>
       </init-param>
       <init-param>
          <param-name>buckets</param-name>
          <param-value>0.005,0.01,0.025,0.05,0.075,0.1,0.25,0.5,0.75,1,2.5,5,7.5,10</param-value>
       </init-param>
       <init-param>
          <param-name>path-components</param-name>
          <param-value>0</param-value>
       </init-param>
     </filter>
     
    Author:
    Andrew Stuart <andrew.stuart2@gmail.com>
    • Method Detail

      • init

        public void init​(javax.servlet.FilterConfig filterConfig)
                  throws javax.servlet.ServletException
        Specified by:
        init in interface javax.servlet.Filter
        Throws:
        javax.servlet.ServletException
      • doFilter

        public void doFilter​(javax.servlet.ServletRequest servletRequest,
                             javax.servlet.ServletResponse servletResponse,
                             javax.servlet.FilterChain filterChain)
                      throws IOException,
                             javax.servlet.ServletException
        Specified by:
        doFilter in interface javax.servlet.Filter
        Throws:
        IOException
        javax.servlet.ServletException
      • destroy

        public void destroy()
        Specified by:
        destroy in interface javax.servlet.Filter