Changeset 0.33.0 (#207)
Co-authored-by: Jeffrey Smith <jasafpro@gmail.com> Co-committed-by: Jeffrey Smith <jasafpro@gmail.com>
This commit is contained in:
@@ -10,6 +10,7 @@ import (
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"chat-switchboard/metrics"
|
||||
"chat-switchboard/models"
|
||||
)
|
||||
|
||||
@@ -335,6 +336,25 @@ func (a *Accumulator) flush() {
|
||||
if err := a.store.UpsertWindow(ctx, w); err != nil {
|
||||
log.Printf("⚠ health: flush failed for provider %s: %v", b.providerConfigID, err)
|
||||
}
|
||||
|
||||
// v0.33.0: Update Prometheus provider status gauge
|
||||
errorRate := float64(0)
|
||||
if b.requestCount > 0 {
|
||||
errorRate = float64(b.errorCount) / float64(b.requestCount)
|
||||
}
|
||||
status := DeriveStatus(errorRate, b.requestCount)
|
||||
var statusVal float64
|
||||
switch status {
|
||||
case models.StatusHealthy:
|
||||
statusVal = 1
|
||||
case models.StatusDegraded:
|
||||
statusVal = 2
|
||||
case models.StatusDown:
|
||||
statusVal = 3
|
||||
default:
|
||||
statusVal = 0
|
||||
}
|
||||
metrics.ProviderStatus.WithLabelValues(b.providerConfigID).Set(statusVal)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user