extract part of monitoring lib to x/lib/gcm.
The main purpose is to let allocatord to use those functions
to retrieve data from GCM to render dashboard.
MultiPart: 1/2
Change-Id: I8a74cf17f62bdf561ad899fae40d4317dc190b1c
diff --git a/internal/monitoring/.godepcop b/internal/monitoring/.godepcop
deleted file mode 100644
index 917d56f..0000000
--- a/internal/monitoring/.godepcop
+++ /dev/null
@@ -1,5 +0,0 @@
-<godepcop>
- <pkg allow="code.google.com/p/goauth2/..."/>
- <pkg allow="golang.org/x/net/..."/>
- <pkg allow="google.golang.org/api/..."/>
-</godepcop>
diff --git a/internal/monitoring/monitoring.go b/internal/monitoring/monitoring.go
index 8081feb..4e53a2a 100644
--- a/internal/monitoring/monitoring.go
+++ b/internal/monitoring/monitoring.go
@@ -9,7 +9,6 @@
"io"
"io/ioutil"
"net/http"
- "sort"
"strings"
"time"
@@ -28,8 +27,7 @@
)
const (
- customMetricPrefix = "custom.googleapis.com"
- defaultTimeout = 20 * time.Second
+ defaultTimeout = 20 * time.Second
)
// Human-readable service names.
@@ -94,161 +92,6 @@
Zone string
}
-type labelData struct {
- key string
- description string
-}
-
-var aggLabelData = []labelData{
- labelData{
- key: "aggregation",
- description: "The aggregation type (min, max, avg, sum, count)",
- },
-}
-
-// customMetricDescriptors is a map from metric's short names to their
-// MetricDescriptor definitions.
-var customMetricDescriptors = map[string]*cloudmonitoring.MetricDescriptor{
- // Custom metrics for recording stats of cloud syncbase instances.
- "cloud-syncbase": createMetric("cloud-syncbase", "Stats of cloud syncbase instances.", "double", false, []labelData{
- labelData{
- key: "mounted_name",
- description: "The relative mounted name of the instance",
- },
- }),
- "cloud-syncbase-agg": createMetric("cloud-syncbase-agg", "The aggregated stats of cloud syncbase instances.", "double", false, aggLabelData),
-
- // Custom metrics for recording check latency and its aggregation
- // of vanadium production services.
- "service-latency": createMetric("service/latency", "The check latency (ms) of vanadium production services.", "double", true, nil),
- "service-latency-agg": createMetric("service/latency-agg", "The aggregated check latency (ms) of vanadium production services.", "double", false, aggLabelData),
-
- // Custom metric for recording per-method rpc latency and its aggregation
- // for a service.
- "service-permethod-latency": createMetric("service/latency/method", "Service latency (ms) per method.", "double", true, []labelData{
- labelData{
- key: "method_name",
- description: "The method name",
- },
- }),
- "service-permethod-latency-agg": createMetric("service/latency/method-agg", "Aggregated service latency (ms) per method.", "double", false, []labelData{
- labelData{
- key: "method_name",
- description: "The method name",
- },
- aggLabelData[0],
- }),
-
- // Custom metric for recording various counters and their aggregations
- // of vanadium production services.
- "service-counters": createMetric("service/counters", "Various counters of vanadium production services.", "double", true, nil),
- "service-counters-agg": createMetric("service/counters-agg", "Aggregated counters of vanadium production services.", "double", false, aggLabelData),
-
- // Custom metric for recording service metadata and its aggregation
- // of vanadium production services.
- "service-metadata": createMetric("service/metadata", "Various metadata of vanadium production services.", "double", true, []labelData{
- labelData{
- key: "metadata_name",
- description: "The metadata name",
- },
- }),
- "service-metadata-agg": createMetric("service/metadata-agg", "Aggregated metadata of vanadium production services.", "double", false, []labelData{
- labelData{
- key: "metadata_name",
- description: "The metadata name",
- },
- aggLabelData[0],
- }),
-
- // Custom metric for recording total rpc qps and its aggregation for a service.
- "service-qps-total": createMetric("service/qps/total", "Total service QPS.", "double", true, nil),
- "service-qps-total-agg": createMetric("service/qps/total-agg", "Aggregated total service QPS.", "double", false, aggLabelData),
-
- // Custom metric for recording per-method rpc qps for a service.
- "service-qps-method": createMetric("service/qps/method", "Service QPS per method.", "double", true, []labelData{
- labelData{
- key: "method_name",
- description: "The method name",
- },
- }),
- "service-qps-method-agg": createMetric("service/qps/method-agg", "Aggregated service QPS per method.", "double", false, []labelData{
- labelData{
- key: "method_name",
- description: "The method name",
- },
- aggLabelData[0],
- }),
-
- // Custom metric for recording gce instance stats.
- "gce-instance": createMetric("gce-instance/stats", "Various stats for GCE instances.", "double", true, nil),
-
- // Custom metric for recording nginx stats.
- "nginx": createMetric("nginx/stats", "Various stats for Nginx server.", "double", true, nil),
-
- // Custom metric for rpc load tests.
- "rpc-load-test": createMetric("rpc-load-test", "Results of rpc load test.", "double", false, nil),
-
- // Custom metric for recording jenkins related data.
- "jenkins": createMetric("jenkins", "Jenkins related data.", "double", false, nil),
-}
-
-func createMetric(metricType, description, valueType string, includeGCELabels bool, extraLabels []labelData) *cloudmonitoring.MetricDescriptor {
- labels := []*cloudmonitoring.LabelDescriptor{}
- if includeGCELabels {
- labels = append(labels, &cloudmonitoring.LabelDescriptor{
- Key: "gce_instance",
- Description: "The name of the GCE instance associated with this metric.",
- ValueType: "string",
- }, &cloudmonitoring.LabelDescriptor{
- Key: "gce_zone",
- Description: "The zone of the GCE instance associated with this metric.",
- ValueType: "string",
- })
- }
- labels = append(labels, &cloudmonitoring.LabelDescriptor{
- Key: "metric_name",
- Description: "The name of the metric.",
- ValueType: "string",
- })
- if extraLabels != nil {
- for _, data := range extraLabels {
- labels = append(labels, &cloudmonitoring.LabelDescriptor{
- Key: fmt.Sprintf("%s", data.key),
- Description: data.description,
- ValueType: "string",
- })
- }
- }
-
- return &cloudmonitoring.MetricDescriptor{
- Type: fmt.Sprintf("%s/vanadium/%s", customMetricPrefix, metricType),
- Description: description,
- MetricKind: "gauge",
- ValueType: valueType,
- Labels: labels,
- }
-}
-
-// GetMetric gets the custom metric descriptor with the given name and project.
-func GetMetric(name, project string) (*cloudmonitoring.MetricDescriptor, error) {
- md, ok := customMetricDescriptors[name]
- if !ok {
- return nil, fmt.Errorf("metric %q doesn't exist", name)
- }
- md.Name = fmt.Sprintf("projects/%s/metricDescriptors/%s", project, md.Type)
- return md, nil
-}
-
-// GetSortedMetricNames gets the sorted metric names.
-func GetSortedMetricNames() []string {
- names := []string{}
- for n := range customMetricDescriptors {
- names = append(names, n)
- }
- sort.Strings(names)
- return names
-}
-
// GetServiceMountedName gets the full mounted name for the given service.
func GetServiceMountedName(namespaceRoot, serviceName string) (string, error) {
relativeName, ok := serviceMountedNames[serviceName]
@@ -411,18 +254,3 @@
return google.DefaultClient(oauth2.NoContext, cloudmonitoring.MonitoringScope)
}
-
-// Authenticate authenticates with the given JSON credentials file (or the
-// default client if the file is not provided). If successful, it returns a
-// service object that can be used in GCM API calls.
-func Authenticate(keyFilePath string) (*cloudmonitoring.Service, error) {
- c, err := createClient(keyFilePath)
- if err != nil {
- return nil, err
- }
- s, err := cloudmonitoring.New(c)
- if err != nil {
- return nil, fmt.Errorf("New() failed: %v", err)
- }
- return s, nil
-}
diff --git a/internal/monitoring/monitoring_test.go b/internal/monitoring/monitoring_test.go
deleted file mode 100644
index 566cb96..0000000
--- a/internal/monitoring/monitoring_test.go
+++ /dev/null
@@ -1,122 +0,0 @@
-// Copyright 2015 The Vanadium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package monitoring
-
-import (
- "fmt"
- "reflect"
- "testing"
-
- cloudmonitoring "google.golang.org/api/monitoring/v3"
-)
-
-func TestCreateMetric(t *testing.T) {
- type testCase struct {
- metricType string
- description string
- valueType string
- includeGCELabels bool
- extraLabels []labelData
- expectedMetric *cloudmonitoring.MetricDescriptor
- }
- testCases := []testCase{
- testCase{
- metricType: "test",
- description: "this is a test",
- valueType: "double",
- includeGCELabels: false,
- extraLabels: nil,
- expectedMetric: &cloudmonitoring.MetricDescriptor{
- Type: fmt.Sprintf("%s/vanadium/test", customMetricPrefix),
- Description: "this is a test",
- MetricKind: "gauge",
- ValueType: "double",
- Labels: []*cloudmonitoring.LabelDescriptor{
- &cloudmonitoring.LabelDescriptor{
- Key: "metric_name",
- Description: "The name of the metric.",
- ValueType: "string",
- },
- },
- },
- },
- testCase{
- metricType: "test2",
- description: "this is a test2",
- valueType: "string",
- includeGCELabels: true,
- extraLabels: nil,
- expectedMetric: &cloudmonitoring.MetricDescriptor{
- Type: fmt.Sprintf("%s/vanadium/test2", customMetricPrefix),
- Description: "this is a test2",
- MetricKind: "gauge",
- ValueType: "string",
- Labels: []*cloudmonitoring.LabelDescriptor{
- &cloudmonitoring.LabelDescriptor{
- Key: "gce_instance",
- Description: "The name of the GCE instance associated with this metric.",
- ValueType: "string",
- },
- &cloudmonitoring.LabelDescriptor{
- Key: "gce_zone",
- Description: "The zone of the GCE instance associated with this metric.",
- ValueType: "string",
- },
- &cloudmonitoring.LabelDescriptor{
- Key: "metric_name",
- Description: "The name of the metric.",
- ValueType: "string",
- },
- },
- },
- },
- testCase{
- metricType: "test3",
- description: "this is a test3",
- valueType: "double",
- includeGCELabels: true,
- extraLabels: []labelData{
- labelData{
- key: "extraLabel",
- description: "this is an extra label",
- },
- },
- expectedMetric: &cloudmonitoring.MetricDescriptor{
- Type: fmt.Sprintf("%s/vanadium/test3", customMetricPrefix),
- Description: "this is a test3",
- MetricKind: "gauge",
- ValueType: "double",
- Labels: []*cloudmonitoring.LabelDescriptor{
- &cloudmonitoring.LabelDescriptor{
- Key: "gce_instance",
- Description: "The name of the GCE instance associated with this metric.",
- ValueType: "string",
- },
- &cloudmonitoring.LabelDescriptor{
- Key: "gce_zone",
- Description: "The zone of the GCE instance associated with this metric.",
- ValueType: "string",
- },
- &cloudmonitoring.LabelDescriptor{
- Key: "metric_name",
- Description: "The name of the metric.",
- ValueType: "string",
- },
- &cloudmonitoring.LabelDescriptor{
- Key: "extraLabel",
- Description: "this is an extra label",
- ValueType: "string",
- },
- },
- },
- },
- }
- for _, test := range testCases {
- got := createMetric(test.metricType, test.description, test.valueType, test.includeGCELabels, test.extraLabels)
- if !reflect.DeepEqual(got, test.expectedMetric) {
- t.Fatalf("want %#v, got %#v", test.expectedMetric, got)
- }
- }
-}
diff --git a/oncall/serve.go b/oncall/serve.go
index 57d5f29..8230847 100644
--- a/oncall/serve.go
+++ b/oncall/serve.go
@@ -25,6 +25,7 @@
"v.io/x/devtools/internal/cache"
"v.io/x/devtools/internal/monitoring"
"v.io/x/lib/cmdline"
+ "v.io/x/lib/gcm"
)
const (
@@ -213,7 +214,7 @@
}
func dataHandler(jirix *jiri.X, root string, w http.ResponseWriter, r *http.Request) {
- s, err := monitoring.Authenticate(keyFileFlag)
+ s, err := gcm.Authenticate(keyFileFlag)
if err != nil {
respondWithError(jirix, err, w)
return
@@ -255,22 +256,22 @@
// Create tasks of getting metrics from GCM.
allTasks := []getMetricTask{}
- mdServiceLatency, err := monitoring.GetMetric("service-latency", "vanadium-production")
+ mdServiceLatency, err := gcm.GetMetric("service-latency", "vanadium-production")
if err != nil {
respondWithError(jirix, err, w)
return
}
- mdServiceQPS, err := monitoring.GetMetric("service-qps-total", "vanadium-production")
+ mdServiceQPS, err := gcm.GetMetric("service-qps-total", "vanadium-production")
if err != nil {
respondWithError(jirix, err, w)
return
}
- mdServiceCounters, err := monitoring.GetMetric("service-counters", "vanadium-production")
+ mdServiceCounters, err := gcm.GetMetric("service-counters", "vanadium-production")
if err != nil {
respondWithError(jirix, err, w)
return
}
- mdServiceMetadata, err := monitoring.GetMetric("service-metadata", "vanadium-production")
+ mdServiceMetadata, err := gcm.GetMetric("service-metadata", "vanadium-production")
if err != nil {
respondWithError(jirix, err, w)
return
diff --git a/vmon/check.go b/vmon/check.go
index 1b46d09..90e3d88 100644
--- a/vmon/check.go
+++ b/vmon/check.go
@@ -13,8 +13,8 @@
"v.io/jiri/tool"
"v.io/v23/context"
- "v.io/x/devtools/internal/monitoring"
"v.io/x/lib/cmdline"
+ "v.io/x/lib/gcm"
"v.io/x/ref/lib/v23cmd"
)
@@ -85,7 +85,7 @@
ctx := tool.NewContextFromEnv(env)
// Authenticate monitoring APIs.
- s, err := monitoring.Authenticate(keyFileFlag)
+ s, err := gcm.Authenticate(keyFileFlag)
if err != nil {
return err
}
diff --git a/vmon/cloudsyncbase.go b/vmon/cloudsyncbase.go
index 8d2b3c3..fcfb95a 100644
--- a/vmon/cloudsyncbase.go
+++ b/vmon/cloudsyncbase.go
@@ -17,6 +17,7 @@
"v.io/v23/naming"
"v.io/x/devtools/internal/monitoring"
"v.io/x/devtools/internal/test"
+ "v.io/x/lib/gcm"
)
const (
@@ -77,7 +78,7 @@
}
// Send number of instances to GCM.
- md, err := monitoring.GetMetric("cloud-syncbase", projectFlag)
+ md, err := gcm.GetMetric("cloud-syncbase", projectFlag)
if err != nil {
return err
}
@@ -118,7 +119,7 @@
continue
}
}
- mdAgg, err := monitoring.GetMetric("cloud-syncbase-agg", projectFlag)
+ mdAgg, err := gcm.GetMetric("cloud-syncbase-agg", projectFlag)
if err != nil {
return err
}
diff --git a/vmon/gceinstance.go b/vmon/gceinstance.go
index cf22fc6..eedbc7a 100644
--- a/vmon/gceinstance.go
+++ b/vmon/gceinstance.go
@@ -23,8 +23,8 @@
"v.io/jiri/collect"
"v.io/jiri/tool"
"v.io/v23/context"
- "v.io/x/devtools/internal/monitoring"
"v.io/x/devtools/internal/test"
+ "v.io/x/lib/gcm"
)
const localCheckScript = `#!/bin/bash
@@ -382,7 +382,7 @@
// sendToGCM sends instance stats data to GCM.
func sendToGCM(ctx *tool.Context, instances []*gceInstanceData) error {
- s, err := monitoring.Authenticate(keyFileFlag)
+ s, err := gcm.Authenticate(keyFileFlag)
if err != nil {
return err
}
@@ -453,7 +453,7 @@
// sendInstanceDataToGCM sends a single instance's stat to GCM.
func sendInstanceDataToGCM(s *cloudmonitoring.Service, metricType, metricName, timeStr string, instance *gceInstanceData, value float64) error {
- md, err := monitoring.GetMetric(metricType, projectFlag)
+ md, err := gcm.GetMetric(metricType, projectFlag)
if err != nil {
return err
}
diff --git a/vmon/jenkins.go b/vmon/jenkins.go
index e891b7a..55e9233 100644
--- a/vmon/jenkins.go
+++ b/vmon/jenkins.go
@@ -11,8 +11,8 @@
cloudmonitoring "google.golang.org/api/monitoring/v3"
"v.io/jiri/tool"
"v.io/v23/context"
- "v.io/x/devtools/internal/monitoring"
"v.io/x/devtools/internal/test"
+ "v.io/x/lib/gcm"
)
const (
@@ -35,7 +35,7 @@
msg := fmt.Sprintf("vanadium-go-build age: %f hours.\n", ageInHours)
// Send data to GCM.
- md, err := monitoring.GetMetric("jenkins", projectFlag)
+ md, err := gcm.GetMetric("jenkins", projectFlag)
if err != nil {
return err
}
diff --git a/vmon/metricdescriptor.go b/vmon/metricdescriptor.go
index 5a86cad..59ca41d 100644
--- a/vmon/metricdescriptor.go
+++ b/vmon/metricdescriptor.go
@@ -11,8 +11,8 @@
cloudmonitoring "google.golang.org/api/monitoring/v3"
"v.io/v23/context"
- "v.io/x/devtools/internal/monitoring"
"v.io/x/lib/cmdline"
+ "v.io/x/lib/gcm"
"v.io/x/ref/lib/v23cmd"
)
@@ -40,7 +40,7 @@
Short: "Create the given metric descriptor in GCM",
Long: "Create the given metric descriptor in GCM.",
ArgsName: "<names>",
- ArgsLong: "<names> is a list of metric descriptor names to create. Available: " + strings.Join(monitoring.GetSortedMetricNames(), ", "),
+ ArgsLong: "<names> is a list of metric descriptor names to create. Available: " + strings.Join(gcm.GetSortedMetricNames(), ", "),
}
func runMetricDescriptorCreate(_ *context.T, env *cmdline.Env, args []string) error {
@@ -48,12 +48,12 @@
return err
}
- s, err := monitoring.Authenticate(keyFileFlag)
+ s, err := gcm.Authenticate(keyFileFlag)
if err != nil {
return err
}
for _, arg := range args {
- md, err := monitoring.GetMetric(arg, projectFlag)
+ md, err := gcm.GetMetric(arg, projectFlag)
if err != nil {
return err
}
@@ -73,7 +73,7 @@
Short: "Delete the given metric descriptor from GCM",
Long: "Delete the given metric descriptor from GCM.",
ArgsName: "<names>",
- ArgsLong: "<names> is a list of metric descriptor names to delete. Available: " + strings.Join(monitoring.GetSortedMetricNames(), ", "),
+ ArgsLong: "<names> is a list of metric descriptor names to delete. Available: " + strings.Join(gcm.GetSortedMetricNames(), ", "),
}
func runMetricDescriptorDelete(_ *context.T, env *cmdline.Env, args []string) error {
@@ -81,12 +81,12 @@
return err
}
- s, err := monitoring.Authenticate(keyFileFlag)
+ s, err := gcm.Authenticate(keyFileFlag)
if err != nil {
return err
}
for _, arg := range args {
- md, err := monitoring.GetMetric(arg, projectFlag)
+ md, err := gcm.GetMetric(arg, projectFlag)
if err != nil {
return err
}
@@ -108,7 +108,7 @@
}
func runMetricDescriptorList(_ *context.T, env *cmdline.Env, _ []string) error {
- for _, n := range monitoring.GetSortedMetricNames() {
+ for _, n := range gcm.GetSortedMetricNames() {
fmt.Fprintf(env.Stdout, "%s\n", n)
}
return nil
@@ -123,7 +123,7 @@
}
func runMetricDescriptorQuery(_ *context.T, env *cmdline.Env, _ []string) error {
- s, err := monitoring.Authenticate(keyFileFlag)
+ s, err := gcm.Authenticate(keyFileFlag)
if err != nil {
return err
}
@@ -167,7 +167,7 @@
func checkArgs(env *cmdline.Env, args []string) error {
for _, arg := range args {
- if _, err := monitoring.GetMetric(arg, projectFlag); err != nil {
+ if _, err := gcm.GetMetric(arg, projectFlag); err != nil {
return err
}
}
diff --git a/vmon/rpcloadtest.go b/vmon/rpcloadtest.go
index bc24bb9..911cf6b 100644
--- a/vmon/rpcloadtest.go
+++ b/vmon/rpcloadtest.go
@@ -15,8 +15,8 @@
"v.io/jiri/tool"
"v.io/v23/context"
- "v.io/x/devtools/internal/monitoring"
"v.io/x/devtools/internal/test"
+ "v.io/x/lib/gcm"
)
// checkRPCLoadTest checks the result of RPC load test and sends the result to GCM.
@@ -41,7 +41,7 @@
"latency": results.MsecPerRpc,
"qps": results.Qps,
}
- mdRpcLoadTest, err := monitoring.GetMetric("rpc-load-test", projectFlag)
+ mdRpcLoadTest, err := gcm.GetMetric("rpc-load-test", projectFlag)
if err != nil {
return err
}
diff --git a/vmon/servicecounters.go b/vmon/servicecounters.go
index fe32325..51aff0a 100644
--- a/vmon/servicecounters.go
+++ b/vmon/servicecounters.go
@@ -14,6 +14,7 @@
"v.io/v23/context"
"v.io/x/devtools/internal/monitoring"
"v.io/x/devtools/internal/test"
+ "v.io/x/lib/gcm"
)
type prodServiceCounter struct {
@@ -42,7 +43,7 @@
}
hasError := false
- mdCounter, err := monitoring.GetMetric("service-counters", projectFlag)
+ mdCounter, err := gcm.GetMetric("service-counters", projectFlag)
if err != nil {
return err
}
@@ -72,7 +73,7 @@
}
// Send aggregated data to GCM.
- mdAgg, err := monitoring.GetMetric("service-counters-agg", projectFlag)
+ mdAgg, err := gcm.GetMetric("service-counters-agg", projectFlag)
if err != nil {
return err
}
diff --git a/vmon/servicelatency.go b/vmon/servicelatency.go
index d999475..df7c069 100644
--- a/vmon/servicelatency.go
+++ b/vmon/servicelatency.go
@@ -18,6 +18,7 @@
"v.io/v23/verror"
"v.io/x/devtools/internal/monitoring"
"v.io/x/devtools/internal/test"
+ "v.io/x/lib/gcm"
)
var (
@@ -46,7 +47,7 @@
}
hasError := false
- mdLat, err := monitoring.GetMetric("service-latency", projectFlag)
+ mdLat, err := gcm.GetMetric("service-latency", projectFlag)
if err != nil {
return err
}
@@ -80,7 +81,7 @@
}
// Send aggregated data to GCM.
- mdAgg, err := monitoring.GetMetric("service-latency-agg", projectFlag)
+ mdAgg, err := gcm.GetMetric("service-latency-agg", projectFlag)
if err != nil {
return err
}
diff --git a/vmon/servicemetadata.go b/vmon/servicemetadata.go
index f678290..6c94b29 100644
--- a/vmon/servicemetadata.go
+++ b/vmon/servicemetadata.go
@@ -14,6 +14,7 @@
"v.io/v23/context"
"v.io/x/devtools/internal/monitoring"
"v.io/x/devtools/internal/test"
+ "v.io/x/lib/gcm"
)
const (
@@ -37,7 +38,7 @@
}
hasError := false
- mdMetadata, err := monitoring.GetMetric("service-metadata", projectFlag)
+ mdMetadata, err := gcm.GetMetric("service-metadata", projectFlag)
if err != nil {
return err
}
@@ -75,7 +76,7 @@
}
// Send aggregated data to GCM.
- mdMetadataAgg, err := monitoring.GetMetric("service-metadata-agg", projectFlag)
+ mdMetadataAgg, err := gcm.GetMetric("service-metadata-agg", projectFlag)
if err != nil {
return err
}
diff --git a/vmon/servicemethodlatency.go b/vmon/servicemethodlatency.go
index 8456c38..83967a0 100644
--- a/vmon/servicemethodlatency.go
+++ b/vmon/servicemethodlatency.go
@@ -17,6 +17,7 @@
"v.io/v23/context"
"v.io/x/devtools/internal/monitoring"
"v.io/x/devtools/internal/test"
+ "v.io/x/lib/gcm"
"v.io/x/ref/services/stats"
)
@@ -43,7 +44,7 @@
}
hasError := false
- mdLatPerMethod, err := monitoring.GetMetric("service-permethod-latency", projectFlag)
+ mdLatPerMethod, err := gcm.GetMetric("service-permethod-latency", projectFlag)
if err != nil {
return err
}
@@ -85,7 +86,7 @@
// Send aggregated data to GCM.
for method, agg := range aggByMethod {
- mdAgg, err := monitoring.GetMetric("service-permethod-latency-agg", projectFlag)
+ mdAgg, err := gcm.GetMetric("service-permethod-latency-agg", projectFlag)
if err != nil {
return err
}
diff --git a/vmon/serviceqps.go b/vmon/serviceqps.go
index f7c076d..08e4912 100644
--- a/vmon/serviceqps.go
+++ b/vmon/serviceqps.go
@@ -17,6 +17,7 @@
"v.io/v23/naming"
"v.io/x/devtools/internal/monitoring"
"v.io/x/devtools/internal/test"
+ "v.io/x/lib/gcm"
"v.io/x/ref/services/stats"
)
@@ -47,11 +48,11 @@
}
hasError := false
- mdPerMethodQPS, err := monitoring.GetMetric("service-qps-method", projectFlag)
+ mdPerMethodQPS, err := gcm.GetMetric("service-qps-method", projectFlag)
if err != nil {
return err
}
- mdTotalQPS, err := monitoring.GetMetric("service-qps-total", projectFlag)
+ mdTotalQPS, err := gcm.GetMetric("service-qps-total", projectFlag)
if err != nil {
return err
}
@@ -103,7 +104,7 @@
}
// Send aggregated data to GCM.
- mdTotalAgg, err := monitoring.GetMetric("service-qps-total-agg", projectFlag)
+ mdTotalAgg, err := gcm.GetMetric("service-qps-total-agg", projectFlag)
if err != nil {
return err
}
@@ -111,7 +112,7 @@
return err
}
for method, agg := range aggByMethod {
- mdMethodAgg, err := monitoring.GetMetric("service-qps-method-agg", projectFlag)
+ mdMethodAgg, err := gcm.GetMetric("service-qps-method-agg", projectFlag)
if err != nil {
return err
}