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),
})
}