Health Monitor Check | Not | Putting back the TS to rotation

pattanaikjy
Participant II

Hi ,

We have used Load balancing of target server with maximum failure in Http target connection. With Http health monitor . However it is not reaching any of the target server if the maxfailures is present . If we remove max failures then load is getting distribute equally among multiple servers .

Is there a way to monitor when my TS is removed from the rotation and when it is backed .

 <HTTPTargetConnection>
        <Properties/>
        <SSLInfo/>
        <LoadBalancer>
            <Algorithm>RoundRobin</Algorithm>
            <Server name="dTarget1"/>
            <Server name="dTarget2"/>
            <MaxFailures>5</MaxFailures> - (After Removing this line works fine )
        </LoadBalancer>
        <Path>/d/v1</Path>
         <HealthMonitor>
            <IsEnabled>true</IsEnabled>
            <IntervalInSec>10</IntervalInSec>
            <HTTPMonitor>
                <Request>
                    <ConnectTimeoutInSec>60</ConnectTimeoutInSec>
                    <SocketReadTimeoutInSec>60</SocketReadTimeoutInSec>
                    <Verb>GET</Verb>
                    <Path>/d/v1/heartbeat</Path>
                </Request>
                <SuccessResponse>
                    <ResponseCode>200</ResponseCode>
                </SuccessResponse>
            </HTTPMonitor>
        </HealthMonitor>
    </HTTPTargetConnection>

Thanks,

Patty

1 5 259
5 REPLIES 5

There is not a way to externally monitor when a TargetServer is excluded, and then re-included, into rotation. There is no webhook or notification emitted that you can follow.

@Dino-at-Google hi Dino, we can at least in trace check that target Url is going to desirable server box. example some requests go to url 1, and some requests go to url 2.

Ramchanderch
Participant II

@pattysap, Are you claiming that remaining target servers are not being reached by MP when the Maxfailures is reached for the first TS?

@pattysap,

I am facing similar issue when using health monitoring.

<HTTPTargetConnection> <LoadBalancer> <Server name="ts_primary"/> <MaxFailures>1</MaxFailures> <Server name="ts_secondary"> <IsFallback>true</IsFallback> </Server> </LoadBalancer> <Path>/v1/user_management</Path> <HealthMonitor> <IsEnabled>true</IsEnabled> <IntervalInSec>5</IntervalInSec> <TCPMonitor> <ConnectTimeoutInSec>10</ConnectTimeoutInSec> <Port>80</Port> </TCPMonitor> </HealthMonitor> </HTTPTargetConnection>

It falls back to secondary server when primary target server is down. If after i bring the primary up, it still goes to secondary. Have you got a solution to it?

I seem to have the same issue. Behaviors that I have observed.

  • All the TS goes to failed mode when MaxFailures >0
  • The backend load balancers does not get any HTTP call (at the ping endpoint) even if the MaxFailures is set to 0.

This is what I have.. I might be wrong too... Suggestions anyone?

    <HTTPTargetConnection>
        <Properties/>
        <LoadBalancer>
            <Algorithm>RoundRobin</Algorithm>
            <Server name="mock-dev1"/>
            <Server name="mock-dev2"/>
            <MaxFailures>2</MaxFailures>
        </LoadBalancer>
        <HealthMonitor>
            <IsEnabled>true</IsEnabled>
            <IntervalInSec>10</IntervalInSec>
            <HTTPMonitor>
                <Request>
                    <ConnectTimeoutInSec>3</ConnectTimeoutInSec>
                    <SocketReadTimeoutInSec>5</SocketReadTimeoutInSec>
                    <Port>443</Port>
                    <Verb>GET</Verb>
                    <Path>/svcs-gtwy/api/ping</Path>
                </Request>
                <SuccessResponse>
                    <ResponseCode>200</ResponseCode>
                </SuccessResponse>
            </HTTPMonitor>
        </HealthMonitor>
        <Path>/svcs-gtwy</Path>
    </HTTPTargetConnection>