Skip to content

Autoscaling for telemetry gateways #424

@a-thaler

Description

@a-thaler

Description
A manual scaling of the 3 gateways is supported. However, that requires introspection of the gateway health by the user which requires advanced knowledge and will not be done auto-magically on-demand. In best case the gateways would scale up and down automatically dependent on the load, saving potentially resources as well.

In the most simple form the gateway could be scaled by memory using an HPA. Here, just the proper tuning needs to be found and an HPA will be managed by the operator. However, typically the collector should be scaled on base of incoming requests as criteria. Also it should not be scaled on any problems with the backend like backpressure, see https://opentelemetry.io/docs/collector/scaling/. So a better approach is to manage the scaling based on metrics. This could be possible using k8s mechanisms by using prometheus and the prometheus-adapter or keda to feed the HPA controller with custom metrics. However, that will complicate the setup a lot.

Another approach of solving the scalability problems, is to give up the concept of a central gateway and switch to a daemonset approach, where an instance is available per node and with that supports a natural scaling with the load. Such approach will have multiple other aspects like removing istio from the picture for load-balancing across gateway replicas. Combined with a VPA, this setup can bring many advantages over a centralized gateway approach with a complex autoscaling mechanism.

Goal
Have autoscaling of the gateway in place so that the user don't need to gain knowledge about when to scale manually. The scaling should be kept simple but feeding the purpose.

Reasons
It should not be the users concern on when to scale up or down

Tasks:

A follow-up will be #3146

Metadata

Metadata

Labels

area/managerManager or module changeslifecycle/frozenIndicates that an issue or PR should not be auto-closed due to staleness.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions