title: Micrometer - Prometheus Gauge displays NaN
body: <p>I am trying to generate Prometheus metrics with using Micrometer.io with Spring Boot 2.0.0.RELEASE.</p>
  
  <p><strong>When I am trying to expose the size of a List as Gauge, it keeps displaying NaN. In the documentation it says that;</strong> </p>
  
  <blockquote>
    <p>It is your responsibility to hold a strong reference to the state object that you are measuring with a Gauge.</p>
  </blockquote>
  
  <p>I have tried some different ways but I could not solve the problem. Here is my code with some trials.</p>
  
  <pre><code>import io.micrometer.core.instrument.*;
  import io.swagger.backend.model.Product;
  import io.swagger.backend.service.ProductService;
  import org.springframework.beans.factory.annotation.Autowired;
  import org.springframework.web.bind.annotation.*;
  
  import java.util.List;
  import java.util.concurrent.atomic.AtomicInteger;
  
  @RestController
  @RequestMapping("metrics")
  public class ExampleController {
  
      private AtomicInteger atomicInteger = new AtomicInteger();
  
      private ProductService productService;
      private final Gauge productGauge;
  
      @Autowired
      public HelloController(ProductService productService,
                             MeterRegistry registry) {
  
          this.productService = productService;
  
          createGauge("product_gauge", productService.getProducts(), registry);
      }
  
      private void createGauge(String metricName, List&lt;Product&gt; products,
                                      MeterRegistry registry) {
  
          List&lt;Product&gt; products = productService.getProducts();
  
          // #1
          // this displays product_gauge as NaN
          AtomicInteger n = registry.gauge("product_gauge", new AtomicInteger(0));
          n.set(1);
          n.set(2);
  
          // #2
          // this also displays product_gauge as NaN
          Gauge
              .builder("product_gauge", products, List::size)
              .register(registry);
  
          // #3
          // this displays also NaN
          testListReference = Arrays.asList(1, 2);
          Gauge
              .builder("random_gauge", testListReference, List::size)
              .register(registry);
  
          // #4
          // this also displays NaN
          AtomicInteger currentHttpRequests = registry.gauge("current.http.requests", new AtomicInteger(0));
      }
  
      @GetMapping(path = "/product/decrement")
      public Counter decrementAndGetProductCounter() {
          // decrement the gague by one
      }
  }
  </code></pre>
  
  <p>Is there anyone who can help with this issue? Any help would be appreciated.</p>