diff --git a/build.gradle b/build.gradle index 4f2f21bcc..1dce80989 100644 --- a/build.gradle +++ b/build.gradle @@ -56,7 +56,7 @@ ext { log4jVersion = '2.19.0' logbackVersion = '1.4.4' lz4Version = '1.8.0' - micrometerDocsVersion = '1.0.0-RC1' + micrometerDocsVersion = '1.0.0-SNAPSHOT' micrometerVersion = '1.10.0-RC1' micrometerTracingVersion = '1.0.0-RC1' mockitoVersion = '4.8.0' @@ -419,36 +419,8 @@ project('spring-rabbit') { testRuntimeOnly ("junit:junit:$junit4Version") { exclude group: 'org.hamcrest', module: 'hamcrest-core' - adoc "io.micrometer:micrometer-docs-generator-spans:$micrometerDocsVersion" - adoc "io.micrometer:micrometer-docs-generator-metrics:$micrometerDocsVersion" - - } - - def inputDir = file('src/main/java/org/springframework/amqp/rabbit/support/micrometer').absolutePath - def outputDir = rootProject.file('src/reference/asciidoc').absolutePath - - task generateObservabilityMetricsDocs(type: JavaExec) { - onlyIf { !isCI } - mainClass = 'io.micrometer.docs.metrics.DocsFromSources' - inputs.dir(inputDir) - outputs.dir(outputDir) - classpath configurations.adoc - args inputDir, '.*', outputDir - } - - task generateObservabilitySpansDocs(type: JavaExec) { - onlyIf { !isCI } - mainClass = 'io.micrometer.docs.spans.DocsFromSources' - inputs.dir(inputDir) - outputs.dir(outputDir) - classpath configurations.adoc - args inputDir, '.*', outputDir } - // javadoc { - // finalizedBy generateObservabilityMetricsDocs, generateObservabilitySpansDocs - // } - } compileTestKotlin { @@ -522,10 +494,12 @@ project('spring-rabbit-test') { configurations { asciidoctorExtensions + micrometerDocs } dependencies { asciidoctorExtensions "io.spring.asciidoctor.backends:spring-asciidoctor-backends:${springAsciidoctorBackendsVersion}" + micrometerDocs "io.micrometer:micrometer-docs-generator:$micrometerDocsVersion" } task prepareAsciidocBuild(type: Sync) { @@ -535,8 +509,28 @@ task prepareAsciidocBuild(type: Sync) { into "$buildDir/asciidoc" } +def observationInputDir = file('spring-rabbit/src/main/java/org/springframework/amqp/rabbit/support/micrometer').absolutePath +def generatedDocsDir = file("$buildDir/docs/generated").absolutePath + +task generateObservabilityDocs(type: JavaExec) { + mainClass = 'io.micrometer.docs.DocsGeneratorCommand' + inputs.dir(observationInputDir) + outputs.dir(generatedDocsDir) + classpath configurations.micrometerDocs + args observationInputDir, /.+/, generatedDocsDir +} + +task filterMetricsDocsContent(type: Copy) { + dependsOn generateObservabilityDocs + from generatedDocsDir + include '_*.adoc' + into generatedDocsDir + rename { filename -> filename.replace '_', '' } + filter { line -> line.replaceAll('org.springframework.amqp.rabbit.support.micrometer.', '').replaceAll('^Fully qualified n', 'N') } +} + asciidoctorPdf { - dependsOn prepareAsciidocBuild + dependsOn prepareAsciidocBuild, filterMetricsDocsContent baseDirFollowsSourceFile() asciidoctorj { diff --git a/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/config/AbstractRabbitListenerContainerFactory.java b/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/config/AbstractRabbitListenerContainerFactory.java index 086d8ff1d..2f38812a3 100644 --- a/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/config/AbstractRabbitListenerContainerFactory.java +++ b/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/config/AbstractRabbitListenerContainerFactory.java @@ -32,6 +32,7 @@ import org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer; import org.springframework.amqp.rabbit.listener.MessageAckListener; import org.springframework.amqp.rabbit.listener.RabbitListenerEndpoint; +import org.springframework.amqp.rabbit.support.micrometer.RabbitListenerObservationConvention; import org.springframework.amqp.support.ConsumerTagStrategy; import org.springframework.amqp.support.converter.MessageConverter; import org.springframework.amqp.utils.JavaUtils; @@ -118,6 +119,12 @@ public abstract class AbstractRabbitListenerContainerFactory Observation for Rabbit listeners. - -**Span name** `spring.rabbit.listener` (defined by convention class `RabbitListenerObservation$DefaultRabbitListenerObservationConvention`). - -Name of the enclosing class `RabbitListenerObservation`. - -IMPORTANT: All tags and event names must be prefixed with `spring.rabbit.listener` prefix! - -.Tag Keys -|=== -|Name | Description -|`spring.rabbit.listener.id`|Listener id. -|=== - -[[observability-spans-template-observation]] -==== Template Observation Span - -> Observation for `RabbitTemplate` s. - -**Span name** `spring.rabbit.template` (defined by convention class `RabbitTemplateObservation$DefaultRabbitTemplateObservationConvention`). - -Name of the enclosing class `RabbitTemplateObservation`. - -IMPORTANT: All tags and event names must be prefixed with `spring.rabbit.template` prefix! - -.Tag Keys -|=== -|Name | Description -|`spring.rabbit.template.name`|Bean name of the template. -|=== diff --git a/src/reference/asciidoc/appendix.adoc b/src/reference/asciidoc/appendix.adoc index 294ffb4c5..e18b92e41 100644 --- a/src/reference/asciidoc/appendix.adoc +++ b/src/reference/asciidoc/appendix.adoc @@ -2,17 +2,17 @@ [[observation-gen]] == Micrometer Observation Documentation -include::_metrics.adoc[] +include::../docs/generated/metrics.adoc[] -include::_spans.adoc[] +include::../docs/generated/spans.adoc[] -include::_conventions.adoc[] +include::../docs/generated/conventions.adoc[] [appendix] [[change-history]] == Change History -This section describes what changes have been made as versions have changed. +This section describes changes that have been made as versions have changed. === Current Release diff --git a/src/reference/asciidoc/whats-new.adoc b/src/reference/asciidoc/whats-new.adoc index ebcbe08a3..912926c37 100644 --- a/src/reference/asciidoc/whats-new.adoc +++ b/src/reference/asciidoc/whats-new.adoc @@ -14,7 +14,7 @@ The remoting feature (using RMI) is no longer supported. ==== Observation Enabling observation for timers and tracing using Micrometer is now supported. -See <> for more information. +See <> for more information. ==== AsyncRabbitTemplate