Monitoring the Self-Managed Micro-Integration's State

You can monitor the internal state of the Micro-Integration using endpoints provided by Spring Boot Actuator. In the application.yml file, you can specify which endpoints are available, as follows:

management:
  simple: 
    metrics:
      export: 
        enabled: true
  endpoints: 
    web:
      exposure: 
        include: "health,metrics,loggers,logfile,channels,env,workflows,leaderelection,bindings,info"

In this example, setting management.simple.metrics.export.enabled to true enables the collection of metrics. The include property lists the IDs of the endpoints that are exposed.

Exposed HTTP/HTTPS Endpoints

Actuator endpoints let you monitor and interact with your Micro-Integration.

  • You can query the exposed Actuator endpoints using the web interface (for example, using https://localhost:8090/actuator/<some_endpoint>). They are also available to the Solace Micro-Integration Manager.

  • You might decide not to expose all of these endpoints. Any endpoints that are not exposed are not visible, whether you query them or use Micro-Integration Manager.

The simple metrics registry is only to be used for testing. It is not a production-ready means of collecting metrics. In production, use a dedicated monitoring system (for example, Datadog, Prometheus, etc.) to collect metrics.

The Actuator endpoint returns information about the   connector’s internal states:

GET: /actuator/

The data returned using the example configuration is:

"_links": {
  "self": {
    "href": "/actuator", 
    "templated": false
    },
    "workflows": {
      "href": "/actuator/workflows", 
      "templated": false
    },
    "workflows-workflowId": {
      "href": "/actuator/workflows/{workflowId}", 
      "templated": true
    },
    "leaderelection": {
      "href": "/actuator/leaderelection", 
      "templated": false
    },
    "health-path": {
      "href": "/actuator/health/{*path}", 
      "templated": true
    },
    "health": {
      "href": "/actuator/health", 
      "templated": false
    },
    "metrics": {
       "href": "/actuator/metrics", 
       "templated": false
    },
    "metrics-requiredMetricName": {
       "href": "/actuator/metrics/{requiredMetricName}", 
       "templated": true
    }
  }
}