|
|
@@ -31,10 +31,14 @@ import (
|
|
|
)
|
|
|
|
|
|
var (
|
|
|
- slog log.Logger
|
|
|
- legendKeyFormat *regexp.Regexp
|
|
|
- metricNameFormat *regexp.Regexp
|
|
|
- gceAuthentication string
|
|
|
+ slog log.Logger
|
|
|
+ legendKeyFormat *regexp.Regexp
|
|
|
+ metricNameFormat *regexp.Regexp
|
|
|
+)
|
|
|
+
|
|
|
+const (
|
|
|
+ gceAuthentication string = "gce"
|
|
|
+ jwtAuthentication string = "jwt"
|
|
|
)
|
|
|
|
|
|
// StackdriverExecutor executes queries for the Stackdriver datasource
|
|
|
@@ -61,7 +65,6 @@ func init() {
|
|
|
tsdb.RegisterTsdbQueryEndpoint("stackdriver", NewStackdriverExecutor)
|
|
|
legendKeyFormat = regexp.MustCompile(`\{\{\s*(.+?)\s*\}\}`)
|
|
|
metricNameFormat = regexp.MustCompile(`([\w\d_]+)\.googleapis\.com/(.+)`)
|
|
|
- gceAuthentication = "gce"
|
|
|
}
|
|
|
|
|
|
// Query takes in the frontend queries, parses them into the Stackdriver query format
|
|
|
@@ -93,7 +96,7 @@ func (e *StackdriverExecutor) executeTimeSeriesQuery(ctx context.Context, tsdbQu
|
|
|
Results: make(map[string]*tsdb.QueryResult),
|
|
|
}
|
|
|
|
|
|
- authenticationType := e.dsInfo.JsonData.Get("authenticationType").MustString("jwt")
|
|
|
+ authenticationType := e.dsInfo.JsonData.Get("authenticationType").MustString(jwtAuthentication)
|
|
|
if authenticationType == gceAuthentication {
|
|
|
defaultProject, err := e.getDefaultProject(ctx)
|
|
|
if err != nil {
|
|
|
@@ -586,7 +589,7 @@ func (e *StackdriverExecutor) createRequest(ctx context.Context, dsInfo *models.
|
|
|
}
|
|
|
|
|
|
func (e *StackdriverExecutor) getDefaultProject(ctx context.Context) (string, error) {
|
|
|
- authenticationType := e.dsInfo.JsonData.Get("authenticationType").MustString("jwt")
|
|
|
+ authenticationType := e.dsInfo.JsonData.Get("authenticationType").MustString(jwtAuthentication)
|
|
|
if authenticationType == gceAuthentication {
|
|
|
defaultCredentials, err := google.FindDefaultCredentials(ctx, "https://www.googleapis.com/auth/monitoring.read")
|
|
|
if err != nil {
|