LATEST VERSION: 1.4 - CHANGELOG
Spring Cloud Services v1.4

Spring Cloud® Connectors

Page last updated:

To connect client applications to the Circuit Breaker Dashboard, Spring Cloud Services uses Spring Cloud Connectors, including the Spring Cloud Cloud Foundry Connector, which discovers services bound to applications running in Cloud Foundry.

Service Detection

The connector inspects Cloud Foundry’s VCAP_SERVICES environment variable, which stores connection and identification information for service instances that are bound to Cloud Foundry applications, to detect available services. Below is an example excerpt of a VCAP_SERVICES entry for the Spring Cloud Services Circuit Breaker Dashboard (edited for brevity).

{
 "VCAP_SERVICES": {
  "p-circuit-breaker-dashboard": [
   {
    "credentials": {
     "dashboard": "https://hystrix-67b8d606-c287-4fb1-9b3f-bd5cb27a29b5.wise.com",
     "stream": "https://turbine-67b8d606-c287-4fb1-9b3f-bd5cb27a29b5.wise.com"
    },
    "label": "p-circuit-breaker-dashboard",
    "name": "circuit-breaker-dashboard",
    "plan": "standard",
    "tags": [
     "circuit-breaker",
     "hystrix-amqp",
     "spring-cloud"
    ]
   }
  ]

For each service in the VCAP_SERVICES variable, the connector considers the following fields:

  • tags: Attributes or names of backing technologies behind the service.
  • label: The service offering’s name (not to be confused with a service instance’s name).
  • credentials.uri: A URI pertaining to the service instance.
  • credentials.uris: URIs pertaining to the service instance.

Circuit Breaker Dashboard Detection Criteria

To establish availability of the Circuit Breaker Dashboard, the Spring Cloud Cloud Foundry Connector compares VCAP_SERVICES service entries against the following criteria:

  • tags including hystrix-amqp

Metrics Collection with Spring Cloud Stream

A Circuit Breaker Dashboard service instance uses Spring Cloud Stream to collect Netflix Hystrix metrics from a client application. The connector creates a hystrix configuration of the Spring Cloud Stream RabbitMQ binder and configures a hystrixStreamOutput channel, over which a client application sends Hystrix metrics.

The defaultCandidate property on the hystrix RabbitMQ binder configuration is set to false, so that this binder configuration will not affect any default binder configuration in the client application and you can freely configure Spring Cloud Stream binders (including the RabbitMQ binder) in the client application. For more information, see “Connecting to Multiple Systems” in the Spring Cloud Stream Reference Guide.

See Also

For more information about Spring Cloud Connectors, see the following:

Create a pull request or raise an issue on the source for this page in GitHub