Management and Monitoring Connector

Monitoring Connector’s States

The PubSub+ connector provides an ability to monitor its internal states through exposed endpoints provided by Spring Boot Actuator.

An Actuator shares information through the endpoints reachable over HTTP/HTTPS. The endpoints that are available are configured in the connector configuration file:

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

The above example configuration enables metrics collection through the configuration parameter of management.metrics.export.simple.enabled set to true and then shares them through the HTTP/HTTPS endpoint together with other sections configured for the current PubSub+  connector.

The set of endpoints is exposed through the HTTP/HTTPS endpoint.

  • Exposed Actuator endpoints are available in the connector if you query the endpoints using the connector UI (https://localhost:8090/actuator/<some_endpoint>) and are also available to the PubSub+ Connector Manager.
  • You can choose to not expose all or some of these endpoints. If so, the Actuator endpoints that are not exposed are not visible if you query the endpoints (for example, using https://localhost:8090/actuator/<some_endpoint>) nor the Connector 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 (e.g., Datadog, Prometheus, etc.) to collect metrics.

The Actuator endpoint now contains information about the PubSub+  connector’s internal states shared over the following HTTP/HTTPS endpoint:

GET: /actuator/        

The following shows an example of the data shared with the configuration above:

"_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
    }
  }
}