diff --git a/internal/error/errors.go b/internal/error/errors.go index 896b108..cdc7d9a 100644 --- a/internal/error/errors.go +++ b/internal/error/errors.go @@ -17,7 +17,7 @@ var ( ErrOutOfRange = stderrors.New("out of range") ErrTypeError = stderrors.New("type error") ErrTypeMismatch = stderrors.New("type mismatch") - ErrPanicRecv = stderrors.New("panic") + ErrPanicRecv = stderrors.New("panic recovered from") ) const fmtSubjectWhat = "%w %v: %q" @@ -79,5 +79,5 @@ func TypeMismatch[Expect any](value any) NestedError { } func PanicRecv(format string, args ...any) NestedError { - return errorf("%w%s", ErrPanicRecv, fmt.Sprintf(format, args...)) + return errorf("%w %s", ErrPanicRecv, fmt.Sprintf(format, args...)) } diff --git a/internal/route/http.go b/internal/route/http.go index f65dc5e..da3a964 100755 --- a/internal/route/http.go +++ b/internal/route/http.go @@ -124,7 +124,6 @@ func (r *HTTPRoute) Start(providerSubtask task.Task) E.NestedError { r.handler = waker r.HealthMon = waker case entry.UseHealthCheck(r): - logrus.Debugf("%s health check: %+v", r.Alias, r.HealthCheck) r.HealthMon = health.NewHTTPHealthMonitor(r.TargetURL(), r.HealthCheck, r.rp.Transport) } r.task = providerSubtask diff --git a/internal/route/provider/provider.go b/internal/route/provider/provider.go index 45a2667..ec2f965 100644 --- a/internal/route/provider/provider.go +++ b/internal/route/provider/provider.go @@ -7,6 +7,7 @@ import ( "github.com/sirupsen/logrus" E "github.com/yusing/go-proxy/internal/error" + "github.com/yusing/go-proxy/internal/proxy/entry" R "github.com/yusing/go-proxy/internal/route" "github.com/yusing/go-proxy/internal/task" W "github.com/yusing/go-proxy/internal/watcher" @@ -101,7 +102,10 @@ func (p *Provider) MarshalText() ([]byte, error) { } func (p *Provider) startRoute(parent task.Task, r *R.Route) E.NestedError { - subtask := parent.Subtask("route %s", r.Entry.Alias) + if entry.UseLoadBalance(r) { + r.Entry.Alias = p.String() + "/" + r.Entry.Alias + } + subtask := parent.Subtask(r.Entry.Alias) err := r.Start(subtask) if err != nil { p.routes.Delete(r.Entry.Alias) diff --git a/internal/watcher/events/event_queue.go b/internal/watcher/events/event_queue.go index d8770c3..616443a 100644 --- a/internal/watcher/events/event_queue.go +++ b/internal/watcher/events/event_queue.go @@ -62,7 +62,7 @@ func (e *EventQueue) Start(eventCh <-chan Event, errCh <-chan E.NestedError) { go func() { defer func() { if err := recover(); err != nil { - e.onError(E.PanicRecv("panic in onFlush %s", err)) + e.onError(E.PanicRecv("onFlush: %s", err)) } }() e.onFlush(flushTask, queue)