package com.codahale.metrics.servlet;

import java.util.HashMap;
import java.util.Map;

Implementation of the AbstractInstrumentedFilter which provides a default set of response codes to capture information about.

Use it in your servlet.xml like this:


<filter>
    <filter-name>instrumentedFilter</filter-name>
    <filter-class>com.codahale.metrics.servlet.InstrumentedFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>instrumentedFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
/** * Implementation of the {@link AbstractInstrumentedFilter} which provides a default set of response codes * to capture information about. <p>Use it in your servlet.xml like this:<p> * <pre>{@code * <filter> * <filter-name>instrumentedFilter</filter-name> * <filter-class>com.codahale.metrics.servlet.InstrumentedFilter</filter-class> * </filter> * <filter-mapping> * <filter-name>instrumentedFilter</filter-name> * <url-pattern>/*</url-pattern> * </filter-mapping> * }</pre> */
public class InstrumentedFilter extends AbstractInstrumentedFilter { public static final String REGISTRY_ATTRIBUTE = InstrumentedFilter.class.getName() + ".registry"; private static final String NAME_PREFIX = "responseCodes."; private static final int OK = 200; private static final int CREATED = 201; private static final int NO_CONTENT = 204; private static final int BAD_REQUEST = 400; private static final int NOT_FOUND = 404; private static final int SERVER_ERROR = 500;
Creates a new instance of the filter.
/** * Creates a new instance of the filter. */
public InstrumentedFilter() { super(REGISTRY_ATTRIBUTE, createMeterNamesByStatusCode(), NAME_PREFIX + "other"); } private static Map<Integer, String> createMeterNamesByStatusCode() { final Map<Integer, String> meterNamesByStatusCode = new HashMap<>(6); meterNamesByStatusCode.put(OK, NAME_PREFIX + "ok"); meterNamesByStatusCode.put(CREATED, NAME_PREFIX + "created"); meterNamesByStatusCode.put(NO_CONTENT, NAME_PREFIX + "noContent"); meterNamesByStatusCode.put(BAD_REQUEST, NAME_PREFIX + "badRequest"); meterNamesByStatusCode.put(NOT_FOUND, NAME_PREFIX + "notFound"); meterNamesByStatusCode.put(SERVER_ERROR, NAME_PREFIX + "serverError"); return meterNamesByStatusCode; } }