我正在尝试启用度量,以从spring集成RabbitMq<>MqSeries进入普罗米修斯的门户。
文档指出,通道必须扩展AbstractMessageChannel才能应用度量。由于我对名称空间很不舒服,所以我不确定这里是否是这种情况
此外,我不知道如何添加MeterRegistryBean(以及哪一个!(来触发度量。
最终,我也不知道如何使用它。基本上,由于我对这里隐含的大多数框架都是新手,所以这里的文档缺少一个可以帮助我更好地理解它的示例。
以下是我如何进行通道定义("xml"方式不是一种选择:它已经以这种方式实现了,我无法将其更改为ftm(:
<!-- *** MQseries *** -->
<!-- ========================== -->
<bean id="jmsConnectionFactory" class="com.ibm.mq.jms.MQConnectionFactory" >
<property...>
</bean>
<bean id="jmsConnectionFactory_cred"
class="org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter">
<property name="targetConnectionFactory" ref="jmsConnectionFactory" />
<property...>
</bean>
<bean id="connectionFactoryCaching" class="org.springframework.jms.connection.CachingConnectionFactory">
<property name="targetConnectionFactory" ref="jmsConnectionFactory_cred" />
<property...>
</bean>
<bean id="jmsQueue" class="com.ibm.mq.jms.MQQueue" depends-on="jmsConnectionFactory">
<property...>
</bean>
<bean id="fixedBackOff" class="org.springframework.util.backoff.FixedBackOff">
<property...>
</bean>
<bean id="myListener" class="org.springframework.jms.listener.DefaultMessageListenerContainer" >
<property...>
<property name="connectionFactory" ref="connectionFactoryCaching" />
<property name="destination" ref="jmsQueue" />
</bean>
<int-jms:message-driven-channel-adapter id="jmsIn" container="myListener" channel="channelMQ_RMQ" error-channel="processChannel1"/>
<!-- *** Rabbit *** -->
<!-- ====================== -->
<bean id="connectionAmqpFactoryDest" class="com.rabbitmq.client.ConnectionFactory">
<property...>
</bean>
<!-- Attribute : addresses = List of addresses; e.g. host1,host2:4567,host3 - overrides host/port if supplied. -->
<rabbit:connection-factory id="rabbitConnectionFactory"
connection-factory="connectionAmqpFactoryDest"
addresses="..." ... />
<bean id="simpleMessageConverter" class="org.springframework.amqp.support.converter.SimpleMessageConverter">
<property...>
</bean>
<rabbit:template id="rabbitTemplate"
connection-factory="rabbitConnectionFactory"
mandatory="true"
channel-transacted="true"
message-converter="simpleMessageConverter"/>
<int-amqp:outbound-channel-adapter channel="channelMQ_RMQ"
...
amqp-template="rabbitTemplate" />
你知道我该怎么做吗?
Spring Integration度量(以及Spring JMS和Spring AMQP(完全基于Micrometer实现:https://docs.spring.io/spring-integration/docs/current/reference/html/system-management.html#micrometer-集成。如果您使用一些最新的、受支持的Spring Integration版本,这一切都很好:https://spring.io/projects/spring-integration#learn.
如果您不使用Spring Boot,那么您需要在应用程序上下文中声明一个MeterRegistry
bean。也许正是普罗米修斯的作品:https://micrometer.io/docs/registry/prometheus.
如果您是该框架的新手,请考虑放弃XML配置,转而使用Java DSL:https://docs.spring.io/spring-integration/docs/current/reference/html/dsl.html#java-dsl。
还要熟悉Spring Boot,它真的可以为我们自动配置很多东西,甚至是Prometheus的MeterRegistry
:https://spring.io/projects/spring-boot