Uploaded image for project: 'Spring Integration'
  1. Spring Integration
  2. INT-3755

Separate Metrics Enablement from IntegrationMBeanExporter

    XMLWordPrintable

    Details

    • Type: Refactoring
    • Status: Closed
    • Priority: Minor
    • Resolution: Complete
    • Affects Version/s: 4.1.5
    • Fix Version/s: 4.2 RC1
    • Component/s: JMX Support
    • Labels:

      Description

      Currently the enablement of metrics collection in Spring Integration is tightly coupled to JMX. All logic is done inside IntegrationMBeanExporter. While using JMX may be a logical choice in many situations, users may prefer other ways to digest Spring Integration Metrics, e.g. using Spring Boot Actuators.

      While many users may not object to Metrics being always exposed via JMX when using Spring Boot actuators, there might be situations where they may want to disable JMX exposure of metrics, yet still want to collect statistics via other means.

      This is currently not possible. As a consequence, we should refactor IntegrationMBeanExporter and refactor out the metrics enablement for Spring Integration.

      While doing this, we should also rethink extensibility and possible reuse desires by users. Right now Spring Boot's Spring Integration Actuator:

      https://github.com/spring-projects/spring-boot/blob/master/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/integration/SpringIntegrationMetricReader.java

      requires an IntegrationMBeanExporter to be passed in. Ideally something Interface-based would be preferable. Thus, extending IntegrationMBeanExporter is rather problematic as that means I cannot reuse that class with Spring Boot.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              grussell Gary Russell
              Reporter:
              hillert Gunnar Hillert
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: