Polish JMS observation instrumentation

See gh-30335
Closes gh-31172
This commit is contained in:
Johnny Lim
2023-09-05 21:20:12 +09:00
committed by Brian Clozel
parent adb73389a8
commit 884975e094
3 changed files with 9 additions and 5 deletions

View File

@@ -176,7 +176,7 @@ but note that `@JmsListener` annotations can refer to specific container factory
In all cases, Observations are only recorded if the observation registry is configured on the container factory.
Similar observations are recorded with `JmsTemplate` when messages are processed by a `MessageListener`.
Such listeners are set on a `MessageConsumer` within a session callback (see `JmsTemplate.execute(SessionCallback<T>)`).
Such listeners are set on a `MessageConsumer` within a session callback (see `JmsTemplate.execute(SessionCallback<T>)`).
This observation uses the `io.micrometer.core.instrument.binder.jms.DefaultJmsProcessObservationConvention` by default, backed by the `io.micrometer.core.instrument.binder.jms.JmsProcessObservationContext`.

View File

@@ -198,6 +198,10 @@ public abstract class AbstractJmsListenerContainerFactory<C extends AbstractMess
}
/**
* Set the {@link ObservationRegistry} to be used for recording
* {@link io.micrometer.core.instrument.binder.jms.JmsObservationDocumentation#JMS_MESSAGE_PROCESS JMS message processing observations}.
* Defaults to no-op observations if the registry is not set.
* @since 6.1
* @see AbstractMessageListenerContainer#setObservationRegistry(ObservationRegistry)
*/
public void setObservationRegistry(ObservationRegistry observationRegistry) {

View File

@@ -577,7 +577,7 @@ public abstract class AbstractMessageListenerContainer extends AbstractJmsListen
/**
* Return the {@link ObservationRegistry} used for recording
* {@link JmsObservationDocumentation#JMS_MESSAGE_PUBLISH JMS message processing observations}.
* {@link JmsObservationDocumentation#JMS_MESSAGE_PROCESS JMS message processing observations}.
* @since 6.1
*/
@Nullable
@@ -587,7 +587,7 @@ public abstract class AbstractMessageListenerContainer extends AbstractJmsListen
/**
* Set the {@link ObservationRegistry} to be used for recording
* {@link JmsObservationDocumentation#JMS_MESSAGE_PUBLISH JMS message processing observations}.
* {@link JmsObservationDocumentation#JMS_MESSAGE_PROCESS JMS message processing observations}.
* Defaults to no-op observations if the registry is not set.
* @since 6.1
*/
@@ -716,7 +716,7 @@ public abstract class AbstractMessageListenerContainer extends AbstractJmsListen
}
private Observation createObservation(Message message) {
if (micrometerCorePresent) {
if (micrometerCorePresent && this.observationRegistry != null) {
return ObservationFactory.create(this.observationRegistry, message);
}
else {
@@ -995,7 +995,7 @@ public abstract class AbstractMessageListenerContainer extends AbstractJmsListen
private static final JmsProcessObservationConvention DEFAULT_CONVENTION = new DefaultJmsProcessObservationConvention();
static Observation create(@Nullable ObservationRegistry registry, Message message) {
static Observation create(ObservationRegistry registry, Message message) {
return JmsObservationDocumentation.JMS_MESSAGE_PROCESS
.observation(null, DEFAULT_CONVENTION, () -> new JmsProcessObservationContext(message), registry);
}