aboutsummaryrefslogtreecommitdiff
path: root/cmd/internal
diff options
context:
space:
mode:
authorMichael Matloob <matloob@golang.org>2023-07-31 20:33:59 -0400
committerMichael Matloob <matloob@golang.org>2023-08-04 21:05:17 +0000
commit52eb2284cdc61553bdf91183f1b28a6a72b7179b (patch)
tree872b3e1f2bc6e3d55cb87c37400bd23a002474a1 /cmd/internal
parent1e9399879d1c0342761bfc4c0b42482de392e741 (diff)
downloadgo-x-pkgsite-52eb2284cdc61553bdf91183f1b28a6a72b7179b.tar.xz
internal/frontend: remove dependency on cloud error reporting client
This removes the dependency of internal/frontend on the cloud error reporting client, both directly, and through the derrors package by introducing a new interface Reporter that is used both to set the reporting client for internal/derrors, and on the Server. For golang/go#61399 Change-Id: Id4d4def522cda9b4e49f53cff6708019dec2693c Reviewed-on: https://go-review.googlesource.com/c/pkgsite/+/514676 Reviewed-by: Jamal Carvalho <jamal@golang.org> kokoro-CI: kokoro <noreply+kokoro@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Run-TryBot: Michael Matloob <matloob@golang.org>
Diffstat (limited to 'cmd/internal')
-rw-r--r--cmd/internal/cmdconfig/cmdconfig.go22
1 files changed, 16 insertions, 6 deletions
diff --git a/cmd/internal/cmdconfig/cmdconfig.go b/cmd/internal/cmdconfig/cmdconfig.go
index 8d1ec831..f26ceb7e 100644
--- a/cmd/internal/cmdconfig/cmdconfig.go
+++ b/cmd/internal/cmdconfig/cmdconfig.go
@@ -8,6 +8,7 @@ package cmdconfig
import (
"context"
"fmt"
+ "net/http"
"strings"
"time"
@@ -44,12 +45,12 @@ func Logger(ctx context.Context, cfg *config.Config, logName string) middleware.
return middleware.LocalLogger{}
}
-// ReportingClient configures an Error Reporting client.
-func ReportingClient(ctx context.Context, cfg *config.Config) *errorreporting.Client {
+// Reporter configures an Error Reporting client.
+func Reporter(ctx context.Context, cfg *config.Config) derrors.Reporter {
if !cfg.OnGCP() || cfg.DisableErrorReporting {
return nil
}
- reporter, err := errorreporting.NewClient(ctx, cfg.ProjectID, errorreporting.Config{
+ reportingClient, err := errorreporting.NewClient(ctx, cfg.ProjectID, errorreporting.Config{
ServiceName: cfg.ServiceID,
OnError: func(err error) {
log.Errorf(ctx, "Error reporting failed: %v", err)
@@ -58,13 +59,22 @@ func ReportingClient(ctx context.Context, cfg *config.Config) *errorreporting.Cl
if err != nil {
log.Fatal(ctx, err)
}
- derrors.SetReportingClient(reporter)
+ reporter := &reporter{reportingClient}
+ derrors.SetReporter(reporter)
return reporter
}
+type reporter struct {
+ c *errorreporting.Client
+}
+
+func (r *reporter) Report(err error, req *http.Request, stack []byte) {
+ r.c.Report(errorreporting.Entry{Error: err, Req: req, Stack: stack})
+}
+
// Experimenter configures a middleware.Experimenter.
-func Experimenter(ctx context.Context, cfg *config.Config, getter middleware.ExperimentGetter, reportingClient *errorreporting.Client) *middleware.Experimenter {
- e, err := middleware.NewExperimenter(ctx, 1*time.Minute, getter, reportingClient)
+func Experimenter(ctx context.Context, cfg *config.Config, getter middleware.ExperimentGetter, reporter derrors.Reporter) *middleware.Experimenter {
+ e, err := middleware.NewExperimenter(ctx, 1*time.Minute, getter, reporter)
if err != nil {
log.Fatal(ctx, err)
}