internal/dcensus: on GKE, export metrics to k8s_container resource

Use the appropriate resource for metrics when running on Kubernetes.

Change-Id: Ia00801c837ffac43c697cf0bd7ceaede1b8668bf
Reviewed-on: https://go-review.googlesource.com/c/pkgsite/+/256762
Trust: Jonathan Amsterdam <jba@google.com>
Run-TryBot: Jonathan Amsterdam <jba@google.com>
TryBot-Result: kokoro <noreply+kokoro@google.com>
Reviewed-by: Julie Qiu <julie@golang.org>
diff --git a/internal/dcensus/dcensus.go b/internal/dcensus/dcensus.go
index 4a151d1..b409e7b 100644
--- a/internal/dcensus/dcensus.go
+++ b/internal/dcensus/dcensus.go
@@ -153,18 +153,22 @@
 	// timeseries problems. Note that generic_task is used because the
 	// gae_instance resource type is not supported for metrics:
 	// https://cloud.google.com/monitoring/custom-metrics/creating-metrics#which-resource
-	return stackdriver.NewExporter(stackdriver.Options{
-		ProjectID: cfg.ProjectID,
-		MonitoredResource: &monitoredResource{
-			Type: "generic_task",
-			Labels: map[string]string{
-				"project_id": cfg.ProjectID,
-				"location":   cfg.LocationID,
-				"job":        cfg.ServiceID,
-				"namespace":  "go-discovery",
-				"task_id":    cfg.InstanceID,
-			},
+	mr := &monitoredResource{
+		Type: "generic_task",
+		Labels: map[string]string{
+			"project_id": cfg.ProjectID,
+			"location":   cfg.LocationID,
+			"job":        cfg.ServiceID,
+			"namespace":  "go-discovery",
+			"task_id":    cfg.InstanceID,
 		},
+	}
+	if cfg.OnGKE() {
+		mr = (*monitoredResource)(cfg.MonitoredResource)
+	}
+	return stackdriver.NewExporter(stackdriver.Options{
+		ProjectID:               cfg.ProjectID,
+		MonitoredResource:       mr,
 		DefaultMonitoringLabels: stackdriverLabels(cfg),
 	})
 }