Monitoring the Connector’s State

You can monitor the internal state of the connector 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 connector.

  • 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 PubSub+ Connector 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 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 (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
    }
  }
}