anchor.diff:  Counter count;
   ----
   
  +
   ===== METHOD
   
  -<TO DO>
  +When a metric producer method is annotated, the implementation must register the metric produced by the method using the <<annotated-naming-convention>>.
  +
  +.Example of a producer method
  +[source, java]
  +----
  +@Produces
  +@Metric(name = "hitPercentage")
  +@ApplicationScoped
  +protected Gauge<Double> createHitPercentage() {
  +    return new Gauge<Double>() {
  +
  +      @Override
  +      public Double getValue() {
  +          return hits / total;
  +      }
  +    };
  +}
  +----
   
   ===== PARAMETER
  -<TO DO>
  -
  +When a metric parameter is annotated, the implementation must provide the registered metric with the given name (using the <<annotated-naming-convention>>) if the metric already exist. If no metric exists with the given name then the implementation must produce and register the requested metric.
  +
  +.Example of an annotated parameter
  +[source, java]
  +----
  +@Inject
  +public void init(@Metric(name="instances") Counter instances) {
  +    instances.inc();
  +}
  +----
   
   [[metric-registries]]
   === Metric Registries
  
positive.code: The following lists the behavior for each annotation target.
  
  ===== FIELD
  
  When a field of type Meter, Timer, Counter or Histogram is annotated, the implementation must provide the registered metric to the application.
  The implementation must register the metric for the field using the <<annotated-naming-convention>> if it does not already exist, otherwise it
  will retrieve the metric from the registry and produce it to the application.
  
  .Example of an annotated field
  [source, java]
  ----
  @Inject
  
negative.code: ----
  
  ==== @Metric
  
  An annotation requesting that a metric should be injected or registered. This annotation can be used on the fields of type `Meter`, `Timer`, `Counter`, and `Histogram`.
  
  The implementation must support the following annotation targets:
  
  