Files
Ettore Di Giacinto a64fc865ba fix(distributed): aggregate prefix cache pressure
Broadcast forced-disturb events and successful scale-up resets so every frontend shares the same rolling autoscale signal. Deduplicate NATS echoes, expose an origin-only Prometheus counter, and document cluster behavior.

Closes #10083

Assisted-by: Codex:gpt-5
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2026-09-11 21:48:07 +00:00

31 lines
720 B
Go

package prefixcache
import (
"context"
"sync"
"go.opentelemetry.io/otel"
"go.opentelemetry.io/otel/attribute"
"go.opentelemetry.io/otel/metric"
)
var (
pressureMetricsOnce sync.Once
pressureCounter metric.Int64Counter
)
func recordPressureMetric(model string) {
pressureMetricsOnce.Do(func() {
counter, err := otel.Meter("github.com/mudler/LocalAI").Int64Counter(
"localai_prefix_cache_forced_disturb_total",
metric.WithDescription("Prefix-cache forced-disturb events originated by this frontend"),
)
if err == nil {
pressureCounter = counter
}
})
if pressureCounter != nil {
pressureCounter.Add(context.Background(), 1, metric.WithAttributes(attribute.String("model", model)))
}
}