Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0

...

The Jira issue associated with this design spec

https://issues.apache.org/jira/browse/CLOUDSTACK-664Image Removedhttps://issues.apache.org/jira/browse/CLOUDSTACK-665Image Removed

Branch

What branch is this work being done in Master

...

This is functional specifications for the feature https://issues.apache.org/jira/browse/CLOUDSTACK-443Image Removed
f
State the purpose of the document; something like: this is functional specificationS of feature "..." which has Jira ID CS-xyzw

...

Configuring health checks in Aws http://docs.amazonwebservices.com/ElasticLoadBalancing/latest/DeveloperGuide/ConfigureHealthCheck.htmlImage Removed
API to configure health check http://docs.amazonwebservices.com/ElasticLoadBalancing/latest/APIReference/API_ConfigureHealthCheck.htmlImage Removed

Document History

...

Architecture and Design description

Glossary

Service : An App running in a VM, which is assigned to a LB rule.
Response_Time : Time to wait when receiving a response from the health check (2sec - 60 sec), Default value is 5sec
Healthcheck_interval : Amount of time between health checks (0.1 min - 5min). Default value is 5sec
UnHealthy_thresshold : Number of consecutive health check failures before declaring an instance unhealthy.Default value is 10
Healthy_thresshold : Number of consecutive health check success before declaring an instance healthy. Default value is 2
Ping Path : Load Balancing sends health check queries to the path you specify in Ping Path.
for default value ("/") a single forward slash Load Balancing sends the query to HTTP server's default home page, whether that default page is named index.html, default.html, or a different name. Default value with a single forward slash ("/").

Using NS API / haproxy commands to create/delete/modify the health check monitor

Health Check Operations Supported in the feature :

createLBHealthCheckPolicy:

...

Available to User.
Request parameters:
lbruleid
pingPath
responsetime
intervaltime
healthythresshold
unhealthythresshold

Adding Health Check:

By using the createLBHealthCheck api command we can create the healtcheck monitor for the services in the Rule.When new VM’s got assigned to the rule, monitor should be added to these services also.

deleteLBHealthCheckPolicy:

Availabler to User
Request Parameters:
id : id of the healthcheck policy

To delete the healthcheck/monitor, call the deleteLBHealthCheck api which will delete health check from the LB rule.

listLBHealthCheckPolicies:

Availability to user
request Parameters:
lbruleid : id of the LB rule.

Using the listLBHealthCheck, health check created for the LB rule will be retrieved.

Modifying Health Check:

This is a batch operation. To modify the health check, first call deleteLBHealthCheck which will delete the already existing health check and call createLBHealthCheck with the new configuration parameters.
Note: if the new configuration parameters were not able to be applied, then it won’t restore the old health check.

Deleting Health Check:

To delete the healthcheck/monitor, call the deleteLBHealthCheck api which will delete health check from the LB rule.

Listing Health Checks:

Using the listLBHealthCheck, health check created on the LB rule will be retrieved.

Tables going to be added/modified:

...

Id

Bigint(20)

Primary Key

Auto_increment

uuid

varchar

Not null

Load_balancer_id

BigInt

Fk to Load_balancer_rule(id)

pingpath

varchar2(1024)

Default ("/")

Response_time

Int

Default (5 sec)

Healthcheck_interval

Double

Default (5 sec)

Healthy_thresshold

Int

Default (2)

Unhealth_thresshold

Int

Default(10)

Table Name : load_balancer_vm_map

a new colum "state" will be added which will store the state of the service.

Web Services APIs

The following APIs are supported in this feature.

...

lbmonitor mymon = new lbmonitor();
mymon.set_monitorname("cshttpmon");
mymon.set_type(lbmonitor.typeEnum.HTTP);
lbmonitor.add(ns_session, mymon);

netscaler commands:

  • show monitor <monitor name>
  • show monbindings <monitor name> to verify the bindings of the monitor
  • show service <service name> to see the service detials

HAProxy.

TBD

UI flow

  1. A new dialog will be shown to when clicked on the above button, so that user can provide the health check params
  2. if the health check is created then status of the health check will be shown next to the VM in details page of LB rule.

...