Beyla with haproxy

I’m running on VM, a haproxy container version 2.5 and beyla container of version 3.24.0.

The beyla container is privileged, has host network and pid.

When configuring http_server_request_duration scrape with all the fields included, for some reason I get “incoming” as the value to the label “client_address”, instead of the real source ip.

I run beyla with traces and it looked like it knows the client address and just doesn’t put it inside.

I tried disabling the name resolution inside beyla and moving from Prometheus metrics to otel collector, but nothing works.

BUT, when running the latest alloy with beyla.ebpf module, it worked (alloy 1.17.0 and inside it runs beyla 3.6.0 by the documentation).

Anyone has idea how I can enable the client_address?

Does your current Beyla config already have attributes.select with client.address or * included?
Since your traces already contain the correct client IP, this doesn’t look like an instrumentation or privilege issue.

First, make sure you’ve explicitly enabled the client.address attribute for http.server.request.duration:

attributes:
  select:
    http.server.request.duration:
      include:
        - "*"

According to the Beyla documentation, client.address is a hidden metric attribute by default and must be explicitly included to be exported.

If it still reports client_address="incoming" while the traces continue to show the correct client IP, and you have confirmed that the same workload works with Alloy, then this may indicate a regression or behavioral change in the standalone Beyla version.