From aaab7d87b99b9652489e0d4b852ffcf1f6645f96 Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Wed, 11 Apr 2018 14:12:29 -0400 Subject: [PATCH] GH-1354 Added version header to Metric Message Resolves #1354 Resolves #1356 --- .../src/main/asciidoc/spring-cloud-stream-overview.adoc | 5 ++++- .../DefaultDestinationPublishingMeterRegistry.java | 6 ++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/spring-cloud-stream-core-docs/src/main/asciidoc/spring-cloud-stream-overview.adoc b/spring-cloud-stream-core-docs/src/main/asciidoc/spring-cloud-stream-overview.adoc index 900e3e3e5e..32acd02854 100644 --- a/spring-cloud-stream-core-docs/src/main/asciidoc/spring-cloud-stream-overview.adoc +++ b/spring-cloud-stream-core-docs/src/main/asciidoc/spring-cloud-stream-overview.adoc @@ -2379,7 +2379,7 @@ java -jar time-source.jar \ --spring.cloud.stream.metrics.meter-filter=spring.integration.* ---- -The following example shows data published to the binding destination as a result of the preceding command: +The following example shows the payload of the data published to the binding destination as a result of the preceding command: [source,javascript] ---- @@ -2425,6 +2425,9 @@ The following example shows data published to the binding destination as a resul } ---- +NOTE: Given that the format of the Metric message has slightly changed after migrating to Micrometer, the published message will also have +a `STREAM_VERSION` header set to `2.x` to help distinguish between Metric messages from the older versions of the Spring Cloud Stream. + == Samples For Spring Cloud Stream samples, see the https://github.com/spring-cloud/spring-cloud-stream-samples[spring-cloud-stream-samples] repository on GitHub. diff --git a/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/micrometer/DefaultDestinationPublishingMeterRegistry.java b/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/micrometer/DefaultDestinationPublishingMeterRegistry.java index 984ae09fc6..eaf4c56fb3 100644 --- a/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/micrometer/DefaultDestinationPublishingMeterRegistry.java +++ b/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/micrometer/DefaultDestinationPublishingMeterRegistry.java @@ -57,7 +57,8 @@ import org.apache.commons.logging.LogFactory; import org.springframework.context.SmartLifecycle; -import org.springframework.messaging.support.GenericMessage; +import org.springframework.messaging.Message; +import org.springframework.messaging.support.MessageBuilder; /** * @@ -229,7 +230,8 @@ private static final class MessageChannelPublisher implements Consumer { @Override public void accept(String metricData) { logger.trace(metricData); - this.metersPublisherBinding.applicationMetrics().send(new GenericMessage(metricData)); + Message message = MessageBuilder.withPayload(metricData).setHeader("STREAM_VERSION", "2.x").build(); + this.metersPublisherBinding.applicationMetrics().send(message); } } }