Skip to main content

HTTP Load Balancer

HTTP Load Balancer Collector

To collect information about the ability to connect to a specified HTTP load balancer address, you can use the httpLoadBalancer collector. This collector listens on a host port on 0.0.0.0 and then attempts to connect through an HTTP load balancer. A successful connection requires sending and receiving a random token through the load balancer to the test server.

Parameters

In addition to the shared collector properties, the httpLoadBalancer collector accepts the following parameters:

port (Required)

The port number to use.

address (Required)

The address to check the connection to.

timeout (Optional)

Specifies the total timeout.

Example Collector Definition

apiVersion: troubleshoot.sh/v1beta2
kind: SupportBundle
metadata:
name: httpLoadBalancer
spec:
hostCollectors:
- httpLoadBalancer:
collectorName: httploadbalancer
port: 80
address: http://app.corporate.internal
timeout: 10s

Included Resources

The results of the httpLoadBalancer collector are stored in the host-collectors/httpLoadBalancer directory of the support bundle.

[collector-name].json

If the collectorName field is unset, it will be named httpLoadBalancer.json.

Example of the resulting file:

address-in-use

HTTP Load Balancer Analyzer

The httpLoadBalancer analyzer supports multiple outcomes:

  • invalid-address: The load balancer address is not valid.
  • connection-refused: Connection to the load balancer address was refused.
  • connection-timeout: Timed out connecting to the load balancer address.
  • address-in-use: Specified port is unavailable.
  • connected: Successfully connected to the load balancer address.
  • bind-permission-denied: Failed to bind to the address:port.
  • error: Unexpected error connecting to the load balancer address.

Example Analyzer Definition

apiVersion: troubleshoot.sh/v1beta2
kind: SupportBundle
metadata:
name: httpLoadBalancer
spec:
hostCollectors:
- httpLoadBalancer:
collectorName: httploadbalancer
port: 80
address: http://app.corporate.internal
timeout: 10s
hostAnalyzers:
- httpLoadBalancer:
collectorName: httploadbalancer
outcomes:
- fail:
when: "connection-refused"
message: Connection to port 80 via load balancer was refused.
- fail:
when: "address-in-use"
message: Another process was already listening on port 80.
- fail:
when: "connection-timeout"
message: Timed out connecting to port 80 via load balancer. Check your firewall.
- fail:
when: "bind-permission-denied"
message: Bind permission denied. Try running as root.
- fail:
when: "error"
message: Failed to connect to port 80 via load balancer.
- pass:
when: "connected"
message: Successfully connected to port 80 via load balancer.