Class MetricsInterceptor

  • All Implemented Interfaces:
    org.springframework.web.servlet.AsyncHandlerInterceptor, org.springframework.web.servlet.HandlerInterceptor

    public class MetricsInterceptor
    extends org.springframework.web.servlet.handler.HandlerInterceptorAdapter
    An interceptor that logs Controller metrics to an underlying Registry.

    A `timer` will be created for each request with the following tags:

    - controller name - controller method - status (2xx, 4xx, 5xx, etc.) - statusCode (200, 404, 500, etc.) - success (true/false depending on whether the request resulted in an exception) - cause (if success == false, the name of the raised exception)

    • Constructor Summary

      Constructors 
      Constructor Description
      MetricsInterceptor​(com.netflix.spectator.api.Registry registry, java.lang.String metricName, java.util.Collection<java.lang.String> pathVariablesToTag, java.util.Collection<java.lang.String> controllersToExclude)
      Deprecated.
      Instead use the other constructor.
      MetricsInterceptor​(com.netflix.spectator.api.Registry registry, java.lang.String metricName, java.util.Collection<java.lang.String> pathVariablesToTag, java.util.Collection<java.lang.String> queryParamsToTag, java.util.Collection<java.lang.String> controllersToExclude)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void afterCompletion​(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, java.lang.Object handler, java.lang.Exception ex)  
      protected java.lang.Long getNanoTime()  
      boolean preHandle​(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, java.lang.Object handler)  
      • Methods inherited from class org.springframework.web.servlet.handler.HandlerInterceptorAdapter

        afterConcurrentHandlingStarted, postHandle
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • MetricsInterceptor

        @Deprecated
        public MetricsInterceptor​(com.netflix.spectator.api.Registry registry,
                                  java.lang.String metricName,
                                  java.util.Collection<java.lang.String> pathVariablesToTag,
                                  java.util.Collection<java.lang.String> controllersToExclude)
        Deprecated.
        Instead use the other constructor.
      • MetricsInterceptor

        public MetricsInterceptor​(com.netflix.spectator.api.Registry registry,
                                  java.lang.String metricName,
                                  java.util.Collection<java.lang.String> pathVariablesToTag,
                                  java.util.Collection<java.lang.String> queryParamsToTag,
                                  java.util.Collection<java.lang.String> controllersToExclude)
        Parameters:
        registry - Underlying metrics registry
        metricName - Metric name
        pathVariablesToTag - Variables from the request uri that should be added as metric tags
        queryParamsToTag - Request parameters that should be added as metric tags
        controllersToExclude - Controller names that should be excluded from metrics
    • Method Detail

      • preHandle

        public boolean preHandle​(javax.servlet.http.HttpServletRequest request,
                                 javax.servlet.http.HttpServletResponse response,
                                 java.lang.Object handler)
                          throws java.lang.Exception
        Specified by:
        preHandle in interface org.springframework.web.servlet.HandlerInterceptor
        Overrides:
        preHandle in class org.springframework.web.servlet.handler.HandlerInterceptorAdapter
        Throws:
        java.lang.Exception
      • afterCompletion

        public void afterCompletion​(javax.servlet.http.HttpServletRequest request,
                                    javax.servlet.http.HttpServletResponse response,
                                    java.lang.Object handler,
                                    java.lang.Exception ex)
                             throws java.lang.Exception
        Specified by:
        afterCompletion in interface org.springframework.web.servlet.HandlerInterceptor
        Overrides:
        afterCompletion in class org.springframework.web.servlet.handler.HandlerInterceptorAdapter
        Throws:
        java.lang.Exception
      • getNanoTime

        protected java.lang.Long getNanoTime()