# APM Java agent - Implement client-side load balancing

**URL:** <https://discuss.elastic.co/t/apm-java-agent-implement-client-side-load-balancing/196961>\
**Category:** APM\
**Tags:** java, rum\
**Created:** [August 27, 2019, 1:56pm UTC](https://discuss.elastic.co/t/apm-java-agent-implement-client-side-load-balancing/196961 "2019-08-27T13:56:28Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![rijash](https://avatars.discourse-cdn.com/v4/letter/r/c2a13f/32.png) [@rijash](https://discuss.elastic.co/u/rijash)\
**Post date:** [August 27, 2019, 1:56pm UTC](https://discuss.elastic.co/t/apm-java-agent-implement-client-side-load-balancing/196961/1 "2019-08-27T13:56:28Z")

</div>

**Kibana version** : 7.3.0

**Elasticsearch version** : 7.3.0

**APM Server version** : 7.3.0

**APM Agent language and version** : 1.9.0

Hi,

I am trying to implement client side load-balance for multiple apm servers. I am using the below configuration -

**server\_urls=http://loadbalancer/\<apm\_server-1\>:8200,[http://loadbalancer/](http://loadbalancer/)\<apm\_server-2\>:8200,[http://loadbalancer/](http://loadbalancer/)\<apm\_server-2\>:8200**

But, it is giving me the below error.

2019-08-27 13:55:24.806 [apm-reporter] ERROR co.elastic.apm.agent.report.IntakeV2ReportingEventHandler - Error sending data to APM server: Server returned HTTP response code: 502 for URL: [http://loadbalancer/](http://loadbalancer/)\<apm\_server\>:8200/intake/v2/events, response code is 502

Could you please help here.

Thanks.

Regards,  
Rijash

---

<div class="post-metadata">

**Author:** ![felixbarny](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/felixbarny/32/27341_2.png) [@felixbarny](https://discuss.elastic.co/u/felixbarny)\
**Post date:** [August 27, 2019, 2:32pm UTC](https://discuss.elastic.co/t/apm-java-agent-implement-client-side-load-balancing/196961/2 "2019-08-27T14:32:08Z")

</div>

Could you send me the output of `curl http://loadbalancer/<apm_server>:8200/` and `curl -H 'Content-Type: application/x-ndjson' -XPOST http://loadbalancer/<apm_server>:8200/intake/v2/events`?

---

<div class="post-metadata">

**Author:** ![rijash](https://avatars.discourse-cdn.com/v4/letter/r/c2a13f/32.png) [@rijash](https://discuss.elastic.co/u/rijash)\
**Post date:** [August 28, 2019, 7:09am UTC](https://discuss.elastic.co/t/apm-java-agent-implement-client-side-load-balancing/196961/3 "2019-08-28T07:09:29Z")

</div>

Thanks for your response felix.

PFB the output

:~ # curl -H 'Content-Type: application/x-ndjson' -XPOST [http://loadbalancer/](http://loadbalancer/)\<apm\_server\>:8200/intake/v2/events?  
curl: (6) Could not resolve host: loadbalancer  
:~ # curl [http://loadbalancer/](http://loadbalancer/)\<apm\_server\>:8200/  
curl: (6) Could not resolve host: loadbalancer

---

<div class="post-metadata">

**Author:** ![felixbarny](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/felixbarny/32/27341_2.png) [@felixbarny](https://discuss.elastic.co/u/felixbarny)\
**Post date:** [August 28, 2019, 7:39am UTC](https://discuss.elastic.co/t/apm-java-agent-implement-client-side-load-balancing/196961/4 "2019-08-28T07:39:09Z")

</div>

Seems like there are connection issues so that the agent can’t connect to your load balancer. Once those are resolved, the agent should be able to connect.

Question: it seems you already have a load balancer. Why do you also want to apply client side load balancing?

---

<div class="post-metadata">

**Author:** ![rijash](https://avatars.discourse-cdn.com/v4/letter/r/c2a13f/32.png) [@rijash](https://discuss.elastic.co/u/rijash)\
**Post date:** [August 29, 2019, 7:37am UTC](https://discuss.elastic.co/t/apm-java-agent-implement-client-side-load-balancing/196961/5 "2019-08-29T07:37:28Z")

</div>

My intention is to route the events uniformly onto a list of apm servers configured for the environment.

I think below configuration is working for the same in apm java agent.

server\_urls=http://\<apm\_server\_1\>:8200,http://\<apm\_server\_2\>:8200,http://\<apm\_server\_3\>:8200

My next question is, can it be work for RUM agent configuration as well.

Like is the below configuration is correct for RUM agent configuration,

```
      var pageName = window.location.pathname;
      window.elasticApm.init({
      serviceName: 'bizx',
      environment: 'preview',
      pageLoadTransactionName: pageName,
      logLevel: 'info',
      serverUrl: 'http://<apm_server_1>:8200,http://<apm_server_2>:8200,http://<apm_server_3>:8200'
              });
```

---

<div class="post-metadata">

**Author:** ![felixbarny](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/felixbarny/32/27341_2.png) [@felixbarny](https://discuss.elastic.co/u/felixbarny)\
**Post date:** [August 29, 2019, 8:05am UTC](https://discuss.elastic.co/t/apm-java-agent-implement-client-side-load-balancing/196961/6 "2019-08-29T08:05:26Z")

</div>

The RUM agent currently does not support that. Could you create a feature request issue in the rum agent’s GitHub repo?

---

<div class="post-metadata">

**Author:** ![rijash](https://avatars.discourse-cdn.com/v4/letter/r/c2a13f/32.png) [@rijash](https://discuss.elastic.co/u/rijash)\
**Post date:** [August 29, 2019, 8:20am UTC](https://discuss.elastic.co/t/apm-java-agent-implement-client-side-load-balancing/196961/7 "2019-08-29T08:20:55Z")

</div>

Sure.

But in that case, if i want to handle the load for RUM agent data. How can we achieve it ?

Like how can we distribute the RUM data from multiple host to multiple APM servers?

Is there any option available ?

---

<div class="post-metadata">

**Author:** ![felixbarny](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/felixbarny/32/27341_2.png) [@felixbarny](https://discuss.elastic.co/u/felixbarny)\
**Post date:** [August 29, 2019, 8:44am UTC](https://discuss.elastic.co/t/apm-java-agent-implement-client-side-load-balancing/196961/8 "2019-08-29T08:44:23Z")

</div>

Currently only by placing an HTTP load balancer in front of your APM Servers.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [September 19, 2019, 4:44am UTC](https://discuss.elastic.co/t/apm-java-agent-implement-client-side-load-balancing/196961/9 "2019-09-19T04:44:29Z")

</div>

This topic was automatically closed 20 days after the last reply. New replies are no longer allowed.
