Spring Integration DSL Сбор метрик между потоками - PullRequest
0 голосов
/ 26 апреля 2018

Я использую Spring Integration DSL с ActiveMQ для одновременных потребителей и пытаюсь настроить метрики для Spring IntegrationFlow, которые взаимодействуют друг с другом с использованием прямых каналов и маршрутизаторов.

Типичный поток интеграции выглядит следующим образом:

                                                -> InboundFlow1 -> Transformer|
ActiveMQ Broker ->JMS InboundAdapter -> Router |                             -> OutboundFlow -> JMS OutboundAdapter
                                                -> InboundFlow2 -> Transformer|

Каждый поток содержит входящий адаптер JMS, маршрутизатор, фильтр, преобразователь и исходящий шлюз JMS.

Есть ли способ собрать такие показатели из InboundAdapter в OutboundAdapter:

  • Количество сообщений в секунду;
  • Общее количество сообщений;
  • Минимальное время переноса через поток;
  • Макс. Время переноса через поток;
  • Среднее время прохождения через Поток;
  • Количество ошибочных сообщений;
  • Продолжительность обработки сообщения;

Я пробовал решения, предложенные с MessageChannelMetrics:

https://docs.spring.io/spring-integration/reference/html/system-management-chapter.html#mgmt-channel-features https://github.com/spring-projects/spring-integration-samples/tree/master/intermediate/monitoring Метрики статистики каналов интеграции Spring

Но они не покрываются необходимой функциональностью.

1 Ответ

0 голосов
/ 26 апреля 2018

Все, кроме первого и последнего присутствуют; первое может быть получено; последний будет означать захват его для каждого сообщения, что будет дорого.

Однако Spring Integration 5.0.4 теперь поддерживает Микрометр в дополнение к этим стандартным показателям.

EDIT

Кроме того, вы всегда можете добавить собственную фабрику метрик, если стандартные метрики не выполняют то, что вам нужно документы здесь .

Просто напишите свой собственный подкласс AbstractMessageHandlerMetrics, чтобы захватить все, что вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...