Skip to content

[exporter/loadbalancing] AWS Cloud Map to resolve collectors backends #27241

Closed
@andretong

Description

@andretong

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 and serviceName 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

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions