> On March 12, 2013, 1:59 p.m., Vijay Venkatachalam wrote: > > server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java, line 773 > > <https://reviews.apache.org/r/9165/diff/5/?file=269507#file269507line773> > > > > In AWS, health checks are collected for every LBrule. In upgrade case > > the adapter could report status of service vms as seen by the > > appliance(there would have been default monitors anyway) for existing > > config. If you don't want to do this now you might want to file an > > enhancement bug. If you plan to do this right away, the logic currently > > adopted by collecting stats per LB Rule wont scale. I will advice to > > collect per device/appliance. ExternalUsage (Stats) collection already > > works this way.
I have created a bug for the same. https://issues.apache.org/jira/browse/CLOUDSTACK-1680. - Rajesh ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/9165/#review17734 ----------------------------------------------------------- On March 13, 2013, 9:49 a.m., Rajesh Battala wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/9165/ > ----------------------------------------------------------- > > (Updated March 13, 2013, 9:49 a.m.) > > > Review request for cloudstack and Vijay Venkatachalam. > > > Description > ------- > > Code Review for AWS Style Health Check Feature : > Added API commands : > 1. createLBHealthCheck > 2. deleteLBHealthCheck > 3. listLBHealthCheck > > load_balancer_healthcheck_policies table will hold the data for healthcheck > polices. > > commands will take the lbrule id as mandatory param and execute the action. > 1. createLBHealthCheck : > ======================== > LB ruleid is the mandatory param to the api. Remaining params (pingpath, > responstime, request Healthcheck_interval, Healthy_thresshold, > Unhealth_thresshold) have default values. if not specified in the command. > It will create monitor (tcp/http) depending upon the LB protocol. > after creating the LB Monitor, it will bind the monitor to all the services > present in the LB rule. > NetScaler will take care of monitoring according to the monitor params. > Monitor name will be (Cloud-Hc-<LB IP>-<port>) > > Initially only one monitor is supported for an LB rule. > if createLBHealthCheck returns an error, it will cleanup the entry created > in db. > > 2. deleteLBHealthCheck: > ======================== > LB ruleid is the mandatory param to the api. > the command will first unbind all the services attached to it and then the > monitor will be deleted. > DB entry in load_balancer_healthcheck_policies will be deleted. > > 3. listLBHealthChecks: > ====================== > LB ruleid is the mandatory param to the api. > this command will list LB HealthChecks created on the LB rule. > > LBHealthCheckManager: > ===================== > A new field is introduce in the table load_balancer_vm_map (state of string > type) > > The task of the LBHealthCheckManager is at every period of time, it will > fetch the service status of LB rules and update them in the > load_balancer_vm_map. > The time interval fo the LBHealthManager can be configured from Global > Settings(healthcheck.update.interval). default value is 600 sec. > possible values UP, DOWN, UNKNOWN, BUSY, OUT OF SERVICE, GOING OUT OF > SERVICE, DOWN WHEN GOING OUT OF SERVICE > > > This addresses bug https://issues.apache.org/jira/browse/CLOUDSTACK-664. > > > Diffs > ----- > > api/src/com/cloud/agent/api/routing/HealthCheckLBConfigAnswer.java > PRE-CREATION > api/src/com/cloud/agent/api/routing/HealthCheckLBConfigCommand.java > PRE-CREATION > api/src/com/cloud/agent/api/to/LoadBalancerTO.java 2d166ea > api/src/com/cloud/event/EventTypes.java 0087edc > api/src/com/cloud/network/Network.java efed5cd > api/src/com/cloud/network/element/LoadBalancingServiceProvider.java 879ea0e > api/src/com/cloud/network/lb/LoadBalancingRule.java fb1d988 > api/src/com/cloud/network/lb/LoadBalancingRulesService.java 3743aae > api/src/com/cloud/network/rules/HealthCheckPolicy.java PRE-CREATION > api/src/org/apache/cloudstack/api/ApiConstants.java b40b26c > api/src/org/apache/cloudstack/api/ResponseGenerator.java a602514 > > api/src/org/apache/cloudstack/api/command/user/loadbalancer/CreateLBHealthCheckPolicyCmd.java > PRE-CREATION > > api/src/org/apache/cloudstack/api/command/user/loadbalancer/DeleteLBHealthCheckPolicyCmd.java > PRE-CREATION > > api/src/org/apache/cloudstack/api/command/user/loadbalancer/ListLBHealthCheckPoliciesCmd.java > PRE-CREATION > api/src/org/apache/cloudstack/api/response/LBHealthCheckPolicyResponse.java > PRE-CREATION > api/src/org/apache/cloudstack/api/response/LBHealthCheckResponse.java > PRE-CREATION > client/tomcatconf/commands.properties.in 5018236 > plugins/network-elements/dns-notifier/resources/components-example.xml > 36441bd > > plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/element/ElasticLoadBalancerElement.java > abb36c3 > > plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java > 81039d1 > > plugins/network-elements/f5/src/com/cloud/network/element/F5ExternalLoadBalancerElement.java > 94c098e > > plugins/network-elements/netscaler/src/com/cloud/network/element/NetscalerElement.java > 8f902df > > plugins/network-elements/netscaler/src/com/cloud/network/resource/NetscalerResource.java > abea464 > server/src/com/cloud/api/ApiResponseHelper.java fbfc955 > server/src/com/cloud/configuration/Config.java 64465a2 > server/src/com/cloud/network/ExternalLoadBalancerDeviceManager.java d979f07 > server/src/com/cloud/network/ExternalLoadBalancerDeviceManagerImpl.java > d7b6d78 > server/src/com/cloud/network/LBHealthCheckPolicyVO.java PRE-CREATION > server/src/com/cloud/network/NetworkManagerImpl.java 3220c91 > server/src/com/cloud/network/dao/LBHealthCheckPolicyDao.java PRE-CREATION > server/src/com/cloud/network/dao/LBHealthCheckPolicyDaoImpl.java > PRE-CREATION > server/src/com/cloud/network/dao/LoadBalancerVMMapVO.java 8856993 > server/src/com/cloud/network/element/VirtualRouterElement.java 500d0b6 > server/src/com/cloud/network/lb/LBHealthCheckManager.java PRE-CREATION > server/src/com/cloud/network/lb/LBHealthCheckManagerImpl.java PRE-CREATION > server/src/com/cloud/network/lb/LoadBalancingRulesManager.java 9d7d22f > server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java 531a428 > server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java > 3cbd51d > server/src/com/cloud/server/ManagementServerImpl.java d70c45f > setup/db/db/schema-410to420.sql ca15bda > > Diff: https://reviews.apache.org/r/9165/diff/ > > > Testing > ------- > > Testing Done: > ============= > > 1. create LB rule of TCP protocol and assing instances, create lb healthcheck > on lb rule. A TCP monitor is created and it will binded to all the services. > 2. create LB rule of HTTP protocol and assing instances, create lb > healthcheck on lb rule. HTTP monitor is created and it will binded to all the > services. > 3. create LB rule of HTTP protocol and assing instances, create lb > healthcheck on lb rule with pingpath and other params, HTTP monitor is > created and it will binded to all the services and its properties pingpath > value will be present. > 4.for an existing LB with an Monitor, add a new service to LB, monitor will > be binded to the newly added service. > 5.for an existing LB with an Monitor, delete a service from LB, monitor will > be unbinded and service will be removed. > 6.delete an monitor for LB rule, all the service binded to the monitor will > be unbinded and monitor will get removed. > 7.delete LB rule, lb vserver will be deleted and the monitor will be deleted. > 8. list the LB rules giving the lb rule id, healtcheckpolicy created on the > LB rule will be returned. if not it will return empty list > 9.Modify the healthcheck.update.interval to 1 min, at every one minute > LBHealthCheckManager will be updating the service state from the Netscaler. > > > Thanks, > > Rajesh Battala > >