Closed
Description
Component(s)
exporter/loadbalancing
Is your feature request related to a problem? Please describe.
Looking at the currently supported alternatives like k8s
, it would be nice to add the AWS Service discovery system (CloudMap) to resolve the Collector's Backend.
This would allow users to use this exporter when there is the case of using ECS over EKS in an AWS infrastructure.
Describe the solution you'd like
- Use the Go AWS SDK in order to use the Service Discovery service to fetch the IP addresses of the Collectors, and we could also get the port.
- Attributes needed to make the requests, like
namespace
andserviceName
will be defined as attributes in a new Resolver Config - Implement a new Resolver (aws_cloudmap_resolver.go for instance) based on the current interface
- The implementation of the resolve method will apply the logic required to fetch and build the list by using the AWS SDK for Service Discovery.
- This will resolve the list of backends periodically (i.e. every X amount of seconds and also configurable)
The configuration will look like this:
exporters:
loadbalancing:
protocol:
otlp:
timeout: 3s
resolver:
awsCloudMap:
namespace: <aws-namespace>
serviceName: <aws-otel-col-service-name>
port: <port-to-override-the-default-> // https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/exporter/loadbalancingexporter/loadbalancer.go#L145
interval: <interval-in-seconds>
Describe alternatives you've considered
No response
Additional context
No response