knative / knative/serving

Distinguish zero concurrency from slow/failed scraping when bucketing

Open
#8,610 24 comments 0 reactions 1 assignee Claimed by @Alexander-Kita View on GitHub
area/autoscale help wanted kind/feature triage/accepted
Dominant language
Go
Stars
6.1k
Forks
1.2k
Avg merge
2d 7h
Merged PRs (30d)
2

Description

## Describe the feature

Currently we [do not differentiate between](https://github.com/knative/serving/blob/320e01a596acefca56f025c2ef0e9d394e453267/pkg/autoscaler/aggregation/bucketing.go#L184) a scrape that _actually_ reports zero concurrency from a replica and just not having data for a particular bucket. This is fine if the network is fast and autoscaler is not overloaded because we will have data ~every second, but on a slow or overloaded network (or e.g. with a resource constrained host => slow QP response to scrapes) it could cause issues: when we average over the bucket we could think we have lower load than we do, and scale down (or fail to scale up) replicas incorrectly.

(This is _somewhat_ related to https://github.com/knative/serving/issues/8377 in that if we introduce a work pool there's a greater danger of things backed up in the queue not getting stats every second).

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.