cmd/coordinator: update to use new StackDriver error reporting package

Fixes golang/go#22153
Fixes golang/go#22240

Change-Id: Ie26339aa29e2ad5153e85a1b07dd1e97352a0a63
Reviewed-on: https://go-review.googlesource.com/70750
Reviewed-by: Sarah Adams <shadams@google.com>
diff --git a/cmd/coordinator/Dockerfile.0 b/cmd/coordinator/Dockerfile.0
index eed958d..aff7adb 100644
--- a/cmd/coordinator/Dockerfile.0
+++ b/cmd/coordinator/Dockerfile.0
@@ -7,9 +7,9 @@
 
 # BEGIN deps (run `make update-deps` to update)
 
-# Repo cloud.google.com/go at c7cd507 (2017-09-18)
-ENV REV=c7cd507af965dbabdcd5611969432dd422f6b628
-RUN go get -d cloud.google.com/go/bigquery `#and 17 other pkgs` &&\
+# Repo cloud.google.com/go at ba25346 (2017-10-13)
+ENV REV=ba2534604a6c2b8854d680e50f9132cade92d02f
+RUN go get -d cloud.google.com/go/bigquery `#and 14 other pkgs` &&\
     (cd /go/src/cloud.google.com/go && (git cat-file -t $REV 2>/dev/null || git fetch -q origin $REV) && git reset --hard $REV)
 
 # Repo github.com/anmitsu/go-shlex at 648efa6 (2016-10-02)
@@ -22,8 +22,8 @@
 RUN go get -d github.com/gliderlabs/ssh &&\
     (cd /go/src/github.com/gliderlabs/ssh && (git cat-file -t $REV 2>/dev/null || git fetch -q origin $REV) && git reset --hard $REV)
 
-# Repo github.com/golang/protobuf at 11b8df1 (2017-09-14)
-ENV REV=11b8df160996e00fd4b55cbaafb3d84ec6d50fa8
+# Repo github.com/golang/protobuf at 130e6b0 (2017-09-20)
+ENV REV=130e6b02ab059e7b717a096f397c5b60111cae74
 RUN go get -d github.com/golang/protobuf/proto `#and 9 other pkgs` &&\
     (cd /go/src/github.com/golang/protobuf && (git cat-file -t $REV 2>/dev/null || git fetch -q origin $REV) && git reset --hard $REV)
 
@@ -32,8 +32,8 @@
 RUN go get -d github.com/googleapis/gax-go &&\
     (cd /go/src/github.com/googleapis/gax-go && (git cat-file -t $REV 2>/dev/null || git fetch -q origin $REV) && git reset --hard $REV)
 
-# Repo github.com/kr/pty at 2c10821 (2017-03-07)
-ENV REV=2c10821df3c3cf905230d078702dfbe9404c9b23
+# Repo github.com/kr/pty at 95d05c1 (2017-10-06)
+ENV REV=95d05c1eef33a45bd58676b6ce28d105839b8d0b
 RUN go get -d github.com/kr/pty &&\
     (cd /go/src/github.com/kr/pty && (git cat-file -t $REV 2>/dev/null || git fetch -q origin $REV) && git reset --hard $REV)
 
@@ -42,23 +42,23 @@
 RUN go get -d go4.org/syncutil &&\
     (cd /go/src/go4.org && (git cat-file -t $REV 2>/dev/null || git fetch -q origin $REV) && git reset --hard $REV)
 
-# Repo golang.org/x/crypto at 7d9177d (2017-09-16)
-ENV REV=7d9177d70076375b9a59c8fde23d52d9c4a7ecd5
+# Repo golang.org/x/crypto at 9419663 (2017-09-30)
+ENV REV=9419663f5a44be8b34ca85f08abc5fe1be11f8a3
 RUN go get -d golang.org/x/crypto/acme `#and 6 other pkgs` &&\
     (cd /go/src/golang.org/x/crypto && (git cat-file -t $REV 2>/dev/null || git fetch -q origin $REV) && git reset --hard $REV)
 
-# Repo golang.org/x/net at 8351a75 (2017-09-15)
-ENV REV=8351a756f30f1297fe94bbf4b767ec589c6ea6d0
+# Repo golang.org/x/net at a04bdac (2017-10-04)
+ENV REV=a04bdaca5b32abe1c069418fb7088ae607de5bd0
 RUN go get -d golang.org/x/net/context `#and 8 other pkgs` &&\
     (cd /go/src/golang.org/x/net && (git cat-file -t $REV 2>/dev/null || git fetch -q origin $REV) && git reset --hard $REV)
 
-# Repo golang.org/x/oauth2 at 13449ad (2017-09-12)
-ENV REV=13449ad91cb26cb47661c1b080790392170385fd
+# Repo golang.org/x/oauth2 at bb50c06 (2017-09-28)
+ENV REV=bb50c06baba3d0c76f9d125c0719093e315b5b44
 RUN go get -d golang.org/x/oauth2 `#and 5 other pkgs` &&\
     (cd /go/src/golang.org/x/oauth2 && (git cat-file -t $REV 2>/dev/null || git fetch -q origin $REV) && git reset --hard $REV)
 
-# Repo golang.org/x/perf at 4979bd1 (2017-07-06)
-ENV REV=4979bd159b01a7695a1b277f4ea76cab354f278c
+# Repo golang.org/x/perf at 4469e6c (2017-09-27)
+ENV REV=4469e6ce8cc3920f1b42128b9d557bea2e08621a
 RUN go get -d golang.org/x/perf/storage `#and 2 other pkgs` &&\
     (cd /go/src/golang.org/x/perf && (git cat-file -t $REV 2>/dev/null || git fetch -q origin $REV) && git reset --hard $REV)
 
@@ -67,28 +67,28 @@
 RUN go get -d golang.org/x/sync/semaphore &&\
     (cd /go/src/golang.org/x/sync && (git cat-file -t $REV 2>/dev/null || git fetch -q origin $REV) && git reset --hard $REV)
 
-# Repo golang.org/x/text at 1cbadb4 (2017-09-15)
-ENV REV=1cbadb444a806fd9430d14ad08967ed91da4fa0a
+# Repo golang.org/x/text at c01e476 (2017-10-13)
+ENV REV=c01e4764d870b77f8abe5096ee19ad20d80e8075
 RUN go get -d golang.org/x/text/secure/bidirule `#and 4 other pkgs` &&\
     (cd /go/src/golang.org/x/text && (git cat-file -t $REV 2>/dev/null || git fetch -q origin $REV) && git reset --hard $REV)
 
-# Repo golang.org/x/time at 8be79e1 (2017-04-24)
-ENV REV=8be79e1e0910c292df4e79c241bb7e8f7e725959
+# Repo golang.org/x/time at 6dc1736 (2017-09-27)
+ENV REV=6dc17368e09b0e8634d71cac8168d853e869a0c7
 RUN go get -d golang.org/x/time/rate &&\
     (cd /go/src/golang.org/x/time && (git cat-file -t $REV 2>/dev/null || git fetch -q origin $REV) && git reset --hard $REV)
 
-# Repo google.golang.org/api at 28026b1 (2017-08-01)
-ENV REV=28026b1b71af13fa0dc2f4da606496400d45696d
+# Repo google.golang.org/api at b02deba (2017-10-13)
+ENV REV=b02deba8ecc515109e445c1cd35cc85cc08500d8
 RUN go get -d google.golang.org/api/bigquery/v2 `#and 16 other pkgs` &&\
     (cd /go/src/google.golang.org/api && (git cat-file -t $REV 2>/dev/null || git fetch -q origin $REV) && git reset --hard $REV)
 
-# Repo google.golang.org/genproto at 1e559d0 (2017-09-18)
-ENV REV=1e559d0a00eef8a9a43151db4665280bd8dd5886
-RUN go get -d google.golang.org/genproto/googleapis/api/annotations `#and 14 other pkgs` &&\
+# Repo google.golang.org/genproto at f676e0f (2017-10-03)
+ENV REV=f676e0f3ac6395ff1a529ae59a6670878a8371a6
+RUN go get -d google.golang.org/genproto/googleapis/api/annotations `#and 11 other pkgs` &&\
     (cd /go/src/google.golang.org/genproto && (git cat-file -t $REV 2>/dev/null || git fetch -q origin $REV) && git reset --hard $REV)
 
-# Repo google.golang.org/grpc at a7dba25 (2017-09-18)
-ENV REV=a7dba25a82d8eb0346674b4f8c9a189959fc3bf7
+# Repo google.golang.org/grpc at c209cdf (2017-10-12)
+ENV REV=c209cdff16049a924bef4aa5c6f7588f0b42b2fa
 RUN go get -d google.golang.org/grpc `#and 18 other pkgs` &&\
     (cd /go/src/google.golang.org/grpc && (git cat-file -t $REV 2>/dev/null || git fetch -q origin $REV) && git reset --hard $REV)
 
@@ -107,17 +107,14 @@
 	cloud.google.com/go/civil \
 	cloud.google.com/go/compute/metadata \
 	cloud.google.com/go/datastore \
+	cloud.google.com/go/errorreporting \
 	cloud.google.com/go/errorreporting/apiv1beta1 \
-	cloud.google.com/go/errors \
 	cloud.google.com/go/iam \
 	cloud.google.com/go/internal \
 	cloud.google.com/go/internal/atomiccache \
 	cloud.google.com/go/internal/fields \
 	cloud.google.com/go/internal/optional \
 	cloud.google.com/go/internal/version \
-	cloud.google.com/go/logging \
-	cloud.google.com/go/logging/apiv2 \
-	cloud.google.com/go/logging/internal \
 	cloud.google.com/go/monitoring/apiv3 \
 	cloud.google.com/go/storage \
 	github.com/anmitsu/go-shlex \
@@ -185,12 +182,9 @@
 	google.golang.org/genproto/googleapis/datastore/v1 \
 	google.golang.org/genproto/googleapis/devtools/clouderrorreporting/v1beta1 \
 	google.golang.org/genproto/googleapis/iam/v1 \
-	google.golang.org/genproto/googleapis/logging/type \
-	google.golang.org/genproto/googleapis/logging/v2 \
 	google.golang.org/genproto/googleapis/monitoring/v3 \
 	google.golang.org/genproto/googleapis/rpc/status \
 	google.golang.org/genproto/googleapis/type/latlng \
-	google.golang.org/genproto/protobuf/field_mask \
 	google.golang.org/grpc \
 	google.golang.org/grpc/balancer \
 	google.golang.org/grpc/codes \
diff --git a/cmd/coordinator/coordinator.go b/cmd/coordinator/coordinator.go
index 60032d6..2b52c76 100644
--- a/cmd/coordinator/coordinator.go
+++ b/cmd/coordinator/coordinator.go
@@ -44,6 +44,7 @@
 	"go4.org/syncutil"
 	"grpc.go4.org"
 
+	"cloud.google.com/go/errorreporting"
 	"cloud.google.com/go/storage"
 	"golang.org/x/build"
 	"golang.org/x/build/autocertcache"
@@ -1970,13 +1971,11 @@
 		return
 	}
 
-	var noRequest *http.Request
 	ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
 	defer cancel()
 
 	err = fmt.Errorf("buildID: %v, name: %s, hostType: %s, error: %v", st.buildID, st.conf.Name, st.conf.HostType, err)
-	errorsClient.Report(ctx, noRequest, err)
-
+	errorsClient.ReportSync(ctx, errorreporting.Entry{Error: err})
 }
 
 func (st *buildStatus) distTestList() (names []string, remoteErr, err error) {
diff --git a/cmd/coordinator/gce.go b/cmd/coordinator/gce.go
index ee818f3..c2bfbc9 100644
--- a/cmd/coordinator/gce.go
+++ b/cmd/coordinator/gce.go
@@ -26,7 +26,7 @@
 
 	"cloud.google.com/go/compute/metadata"
 	"cloud.google.com/go/datastore"
-	gcperr "cloud.google.com/go/errors"
+	"cloud.google.com/go/errorreporting"
 	monapi "cloud.google.com/go/monitoring/apiv3"
 	"cloud.google.com/go/storage"
 	"golang.org/x/build/buildenv"
@@ -67,8 +67,8 @@
 	gerritClient   *gerrit.Client
 	storageClient  *storage.Client
 	metricsClient  *monapi.MetricClient
-	inStaging      bool           // are we running in the staging project? (named -dev)
-	errorsClient   *gcperr.Client // Stackdriver errors client
+	inStaging      bool                   // are we running in the staging project? (named -dev)
+	errorsClient   *errorreporting.Client // Stackdriver errors client
 
 	initGCECalled bool
 )
@@ -116,8 +116,7 @@
 		}
 
 		if !hasComputeScope() {
-			return errors.New("The coordinator is not running with access to read and write Compute resources. VM support disabled.")
-
+			return errors.New("coordinator is not running with access to read and write Compute resources. VM support disabled")
 		}
 
 		if value, err := metadata.ProjectAttributeValue("farmer-run-bench"); err == nil {
@@ -152,8 +151,9 @@
 
 	// don't send dev errors to Stackdriver.
 	if *mode != "dev" {
-		useLogging := true
-		errorsClient, err = gcperr.NewClient(ctx, buildEnv.ProjectName, "coordinator", "", useLogging)
+		errorsClient, err = errorreporting.NewClient(ctx, buildEnv.ProjectName, errorreporting.Config{
+			ServiceName: "coordinator",
+		})
 		if err != nil {
 			// don't exit, we still want to run coordinator
 			log.Printf("Error creating errors client: %v", err)
@@ -304,7 +304,7 @@
 
 	var (
 		needDelete   bool
-		createSpan   spanlog.Span = lg.CreateSpan("create_gce_instance", instName)
+		createSpan   = lg.CreateSpan("create_gce_instance", instName)
 		waitBuildlet spanlog.Span // made after create is done
 		curSpan      = createSpan // either instSpan or waitBuildlet
 	)
diff --git a/internal/buildstats/buildstats.go b/internal/buildstats/buildstats.go
index 605d13a..83e1081 100644
--- a/internal/buildstats/buildstats.go
+++ b/internal/buildstats/buildstats.go
@@ -36,7 +36,7 @@
 		if Verbose {
 			log.Printf("Creating table Builds...")
 		}
-		err = buildsTable.Create(ctx)
+		err = buildsTable.Create(ctx, nil)
 		if err == nil {
 			meta, err = buildsTable.Metadata(ctx)
 		}
@@ -178,7 +178,7 @@
 	meta, err := table.Metadata(ctx)
 	if ae, ok := err.(*googleapi.Error); ok && ae.Code == 404 {
 		log.Printf("Creating table Spans...")
-		err = table.Create(ctx)
+		err = table.Create(ctx, nil)
 		if err == nil {
 			meta, err = table.Metadata(ctx)
 		}