While useful, this is a more fragile autoscaling solution that HPA out of the box. It requires your otel metric to Prometheus pipeline to be up AND your Prometheus server to be up.
Compare that to the vanilla HPA which is entirely cluster local, and “simple”.
Generally the simple approach is the most stable approach.
HPA still requires metrics-server to be up which it’s using to obtain current pod resource usage
True, but that approach is also limited in what it can autoscale on, namely Utilization metrics. They are not always good data to make scaling decisions on (covered in the article).
keda also works for this and supports many backends
Yes, it probably would be able to do the same logic as in the blogpost with the Prometheus scaler: https://keda.sh/docs/2.16/scalers/prometheus/
I might give it a go in a follow-up :-)
I looked into how to wire the Horizontal Pod Autoscaler for Kubernetes to Dash0, the OpenTelemetry-native observability tool I am working on, and it turned out to be surprising simple.