chore: log retries - revert me (#20311)

This commit is contained in:
andig 2025-04-01 19:40:47 +02:00 • committed by GitHub
parent b4988f4d7b
commit 02938e00d0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 29 additions and 2 deletions

View file

@ -9,6 +9,7 @@ import (
"text/tabwriter"
"time"
"github.com/cenkalti/backoff/v4"
"github.com/evcc-io/evcc/api"
"github.com/fatih/structs"
)
@ -34,6 +35,11 @@ func (d *dumper) DumpWithHeader(name string, device interface{}) {
}
}
// bo returns an exponential backoff for reading meter power quickly
func bo() *backoff.ExponentialBackOff {
return backoff.NewExponentialBackOff(backoff.WithInitialInterval(20*time.Millisecond), backoff.WithMaxElapsedTime(time.Second))
}
func (d *dumper) Dump(name string, v interface{}) {
w := tabwriter.NewWriter(os.Stdout, 0, 0, 1, ' ', 0)
@ -45,7 +51,15 @@ func (d *dumper) Dump(name string, v interface{}) {
// meter
if v, ok := v.(api.Meter); ok {
if power, err := v.CurrentPower(); err != nil {
power, err := backoff.RetryWithData(func() (float64, error) {
f, err := v.CurrentPower()
if err != nil {
fmt.Println(err)
}
return f, err
}, bo())
if err != nil {
fmt.Fprintf(w, "Power:\t%v\n", err)
} else {
fmt.Fprintf(w, "Power:\t%.0fW\n", power)

View file

@ -1,6 +1,7 @@
package core
import (
"bytes"
"context"
"fmt"
"math"
@ -484,10 +485,22 @@ func (site *Site) collectMeters(key string, meters []config.Device[api.Meter]) [
meter := dev.Instance()
// power
power, err := backoff.RetryWithData(meter.CurrentPower, bo())
var b bytes.Buffer
start := time.Now()
power, err := backoff.RetryWithData(func() (float64, error) {
f, err := meter.CurrentPower()
if err != nil {
fmt.Fprintf(&b, "%v !! %v\n", time.Now(), err)
}
return f, err
}, bo())
if err == nil {
site.log.DEBUG.Printf("%s %d power: %.0fW", key, i+1, power)
} else {
if b.Len() > 0 {
site.log.ERROR.Println(start, "!!")
site.log.ERROR.Println(b.String())
}
site.log.ERROR.Printf("%s %d power: %v", key, i+1, err)
}