anchor.diff:  
   [[production-ready-metrics-jersey-server]]
   ==== Jersey Server Metrics
  -When Micrometer's `micrometer-jersey2` module is on the classpath, auto-configuration enables the instrumentation of requests handled by the Jersey JAX-RS implementation.
  -When `management.metrics.web.server.request.autotime.enabled` is `true`, this instrumentation occurs for all requests.
  -Alternatively, when set to `false`, you can enable instrumentation by adding `@Timed` to a request-handling method:
  -
  -[source,java,pending-extract=true,indent=0]
  -----
  -	@Component
  -	@Path("/api/people")
  -	@Timed <1>
  -	public class Endpoint {
  -		@GET
  -		@Timed(extraTags = { "region", "us-east-1" }) <2>
  -		@Timed(value = "all.people", longTask = true) <3>
  -		public List<Person> listPeople() { ... }
  -	}
  -----
  -<1> On a resource class to enable timings on every request handler in the resource.
  -<2> On a method to enable for an individual endpoint.
  -    This is not necessary if you have it on the class, but can be used to further customize the timer for this particular endpoint.
  -<3> On a method with `longTask = true` to enable a long task timer for the method.
  -    Long task timers require a separate metric name, and can be stacked with a short task timer.
  -
  +Auto-configuration enables the instrumentation of all requests handled by the Jersey JAX-RS implementation whenever Micrometer's `micrometer-jersey2` module is on the classpath.
   By default, metrics are generated with the name, `http.server.requests`.
   The name can be customized by setting the configprop:management.metrics.web.server.request.metric-name[] property.
  +
  +`@Timed` annotations are supported on request-handling classes and methods (see <<production-ready-metrics-timed-annotation>> for details).
  +If you don't want to record metrics for all Jersey requests, you can set configprop:management.metrics.web.server.request.autotime.enabled[] to `false` and exclusively use `@Timed` annotations instead.
   
   By default, Jersey server metrics are tagged with the following information:
   
  
positive.code: 
  
  [[production-ready-metrics-meter]]
  === Supported Metrics
  Spring Boot registers the following core metrics when applicable:
  
  * JVM metrics, report utilization of:
  ** Various memory and buffer pools
  ** Statistics related to garbage collection
  ** Threads utilization
  ** Number of classes loaded/unloaded
  * CPU metrics
  * File descriptor metrics
  * Kafka consumer, producer, and streams metrics
  * Log4j2 metrics: record the number of events logged to Log4j2 at each level
  * Logback metrics: record the number of events logged to Logback at each level
  * MongoDB metrics for all commands issued from the client and for client connection pool information
  * Uptime metrics: report a gauge for uptime and a fixed gauge representing the application's absolute start time
  * Tomcat metrics (`server.tomcat.mbeanregistry.enabled` must be set to `true` for all Tomcat metrics to be registered)
  * {spring-integration-docs}system-management.html#micrometer-integration[Spring Integration] metrics
  
  
  
  [[production-ready-metrics-spring-mvc]]
  ==== Spring MVC Metrics
  Auto-configuration enables the instrumentation of requests handled by Spring MVC.
  When `management.metrics.web.server.request.autotime.enabled` is `true`, this instrumentation occurs for all requests.
  Alternatively, when set to `false`, you can enable instrumentation by adding `@Timed` to a request-handling method:
  
  [source,java,pending-extract=true,indent=0]
  ----
  	@RestController
  	@Timed <1>
  	public class MyController {
  
  		@GetMapping("/api/people")
  		@Timed(extraTags = { "region", "us-east-1" }) <2>
  		@Timed(value = "all.people", longTask = true) <3>
  		public List<Person> listPeople() { ... }
  
  	}
  ----
  <1> A controller class to enable timings on every request handler in the controller not directly annotated with `@Timed`.
  <2> A method to enable for an individual endpoint.
      This is not necessary if you have it on the class, but can be used to customize the timer for this particular endpoint.
  <3> A method with `longTask = true` to enable a long task timer for the method.
      Long task timers require a separate metric name, and can be stacked with a short task timer.
  
  By default, metrics are generated with the name, `http.server.requests`.
  The name can be customized by setting the configprop:management.metrics.web.server.request.metric-name[] property.
  
  By default, Spring MVC-related metrics are tagged with the following information:
  
  |===
  | Tag | Description
  
negative.code: 	        enabled: false
  ----
  
  
  
  [[production-ready-metrics-mongodb-connectionpool]]
  ===== Connection Pool Metrics
  Auto-configuration will register a `MongoMetricsConnectionPoolListener` with the auto-configured `MongoClient`.
  
  