Merge pull request #12324 from Jon Schneider

* gh-12324:
  Polish "Improve docs on custom metrics"
  Improve docs on custom metrics
pull/12342/head
Andy Wilkinson 7 years ago
commit 2c882a47d0

@ -1749,9 +1749,18 @@ factories with a metric named `rabbitmq`.
[[production-ready-metrics-custom]]
=== Registering custom metrics
To register custom metrics, create a `MeterBinder` bean. By default, all `MeterBinder`
beans will be automatically applied to the micrometer `MeterRegistry.Config`.
To register custom metrics, inject `MeterRegistry` into your component, as shown in the
following example:
[source,java,indent=0]
----
include::{code-examples}/actuate/metrics/MetricsMeterRegistryInjectionExample.java[tag=component]
----
If you find that you repeatedly instrument a suite of metrics across components or
applications, you may encapsulate this suite in a `MeterBinder` implementation. By
default, metrics from all `MeterBinder` beans will be automatically bound to
the Spring-managed `MeterRegistry`.
[[production-ready-metrics-per-meter-properties]]

@ -0,0 +1,46 @@
/*
* Copyright 2012-2018 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.boot.docs.actuate.metrics;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import io.micrometer.core.instrument.MeterRegistry;
import io.micrometer.core.instrument.Tags;
/**
* Example to show injection and use of a {@link MeterRegistry}.
*
* @author Andy Wilkinson
*/
public class MetricsMeterRegistryInjectionExample {
// tag::component[]
class Dictionary {
private final List<String> words = new CopyOnWriteArrayList<>();
Dictionary(MeterRegistry registry) {
registry.gaugeCollectionSize("dictionary.size", Tags.empty(), this.words);
}
// …
}
// end::component[]
}
Loading…
Cancel
Save