This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push: new b8620d83c3a Changes to micrometer-component.adoc (#2311) (#11715) b8620d83c3a is described below commit b8620d83c3a913e5062213782fb457b774716b3c Author: JiriOndrusek <ondrusek.j...@gmail.com> AuthorDate: Fri Oct 13 14:59:11 2023 +0200 Changes to micrometer-component.adoc (#2311) (#11715) Co-authored-by: Andreas Jonsson <102945921+rhae...@users.noreply.github.com> --- .../src/main/docs/micrometer-component.adoc | 89 +++++++--------------- 1 file changed, 26 insertions(+), 63 deletions(-) diff --git a/components/camel-micrometer/src/main/docs/micrometer-component.adoc b/components/camel-micrometer/src/main/docs/micrometer-component.adoc index ccc211b4303..70284236a27 100644 --- a/components/camel-micrometer/src/main/docs/micrometer-component.adoc +++ b/components/camel-micrometer/src/main/docs/micrometer-component.adoc @@ -73,62 +73,10 @@ You should define a dedicated registry by providing a `MeterRegistry` bean. Micrometer registries primarily determine the backend monitoring system to be used. A `CompositeMeterRegistry` can be used to address more than one monitoring target. -For example using Spring Java Configuration: -[source,java] ----- -@Configuration -public static class MyConfig extends SingleRouteCamelConfiguration { - - @Bean - @Override - public RouteBuilder route() { - return new RouteBuilder() { - @Override - public void configure() throws Exception { - // define Camel routes here - } - }; - } - - @Bean(name = MicrometerConstants.METRICS_REGISTRY_NAME) - public MeterRegistry getMeterRegistry() { - CompositeMeterRegistry registry = ...; - registry.add(...); - // ... - return registry; - } -} ----- - -Or using CDI: - -[source,java] ----- -class MyBean extends RouteBuilder { - - @Override - public void configure() { - from("...") - // Register the 'my-meter' meter in the MetricRegistry below - .to("micrometer:meter:my-meter"); - } - - @Produces - // If multiple MetricRegistry beans - // @Named(MicrometerConstants.METRICS_REGISTRY_NAME) - MetricRegistry registry() { - CompositeMeterRegistry registry = ...; - registry.add(...); - // ... - return registry; - } -} ----- == Default Camel Metrics - Some Camel specific metrics are available out of the box. [width="100%",options="header"] @@ -496,8 +444,7 @@ MicrometerMessageHistoryService service = context.hasService(MicrometerMessageHi String json = service.dumpStatisticsAsJson(); ---- -If JMX is enabled in the CamelContext, the MBean is registered in the `type=services` tree -with `name=MicrometerMessageHistory`. +If JMX is enabled in the CamelContext, the MBean is registered in the `type=services` tree with `name=MicrometerMessageHistory`. == Micrometer event notification @@ -537,9 +484,7 @@ See more details at Advanced configuration of CamelContext using Spring. == Exposing Micrometer statistics in JMX -Micrometer uses `MeterRegistry` implementations in order to publish statistics. While in production scenarios -it is advisable to select a dedicated backend like Prometheus or Graphite, it may be sufficient for -test or local deployments to publish statistics to JMX. +Micrometer uses `MeterRegistry` implementations in order to publish statistics. While in production scenarios it is advisable to select a dedicated backend like Prometheus or Graphite, it may be sufficient for test or local deployments to publish statistics to JMX. In order to achieve this, add the following dependency: @@ -554,9 +499,12 @@ In order to achieve this, add the following dependency: and add a `JmxMeterRegistry` instance: +[tabs] +==== +Java:: ++ [source,java] ---- - @Bean(name = MicrometerConstants.METRICS_REGISTRY_NAME) public MeterRegistry getMeterRegistry() { CompositeMeterRegistry meterRegistry = new CompositeMeterRegistry(); @@ -567,17 +515,32 @@ and add a `JmxMeterRegistry` instance: HierarchicalNameMapper.DEFAULT)); return meterRegistry; } -} ---- -The `HierarchicalNameMapper` strategy determines how meter name and tags are assembled into -an MBean name. +CDI:: ++ +[source,java] +---- + @Produces + @Named(MicrometerConstants.METRICS_REGISTRY_NAME)) + public MeterRegistry getMeterRegistry() { + CompositeMeterRegistry meterRegistry = new CompositeMeterRegistry(); + meterRegistry.add(...); + meterRegistry.add(new JmxMeterRegistry( + CamelJmxConfig.DEFAULT, + Clock.SYSTEM, + HierarchicalNameMapper.DEFAULT)); + return meterRegistry; + } +---- + +==== +The `HierarchicalNameMapper` strategy determines how meter name and tags are assembled into an MBean name. == Using Camel Micrometer with Spring Boot -When you use `camel-micrometer-starter` with Spring Boot, then Spring Boot auto configuration -will automatically enable metrics capture if a `io.micrometer.core.instrument.MeterRegistry` is available. +When you use `camel-micrometer-starter` with Spring Boot, then Spring Boot auto- configuration will automatically enable metrics capture if a `io.micrometer.core.instrument.MeterRegistry` is available. For example to capture data with Prometheus, you can add the following dependency: