Skip to content

Explain issue related to L7 load balancers with apm-server #4826

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,11 @@ If you use the OTLP/gRPC protocol, requests to the APM Server must use either HT

When using a layer 7 (L7) proxy like AWS ALB, requests must be proxied in a way that ensures requests to the APM Server follow the rules outlined above. For example, with ALB you can create rules to select an alternative backend protocol based on the headers of requests coming into ALB. In this example, you'd select the gRPC protocol when the `"Content-Type: application/grpc"` header exists on a request.

Many L7 load balancers, including **NGINX K8s Ingress**, handle HTTP and gRPC traffic separately. They rely on explicitly defined routes and service configurations to correctly proxy requests. Since APM Server serves both protocols on the same port, an L7 load balancer may not correctly distinguish between the two. The solution is to either:

1. Use the `otlp` exporter with NGINX ingress, applying the GRPC annotation for APM Server.
2. Use the `otlphttp` exporter with NGINX ingress, applying the HTTP annotation for APM Server.

For more information on how to configure an AWS ALB to support gRPC, see this AWS blog post:
https://aws.amazon.com/blogs/aws/new-application-load-balancer-support-for-end-to-end-http-2-and-grpc/[Application Load Balancer Support for End-to-End HTTP/2 and gRPC].

Expand Down
Loading