Reuse of Open HTTP Connections

This article explains how the uberAgent endpoint agent handles open HTTP connections.

Where HTTP is Used

uberAgent makes use of HTTP(S) to send the collected data from the endpoint to some types of backends, for example, Splunk HEC, Elasticsearch, or Apache Kafka (via Confluent REST Proxy).

HTTP Connection Reuse

All HTTP(S) communication initiated by uberAgent is performed through libcurl (a variant of curl), which is probably the highest-quality networking library available today.

Libcurl automatically caches and reuses HTTP(S) connections. As the documentation states:

Reusing a connection instead of creating a new one offers significant benefits in speed and required resources.

Server Failover and Load-Balancing

uberAgent can be configured with multiple servers per receiver. When there is more than one server per receiver, uberAgent randomly switches between servers every 100 seconds. If a server does not respond, uberAgent fails over to the next server in the list. This algorithm ensures that the load is distributed evenly between backend servers.

Leave a Reply

Your email address will not be published. Required fields are marked *