Переглянути джерело

stackdriver: better error handling for getLabels

Daniel Lee 7 роки тому
батько
коміт
fbc1af6cd5

+ 5 - 3
public/app/plugins/datasource/stackdriver/query_ctrl.ts

@@ -136,7 +136,8 @@ export class StackdriverQueryCtrl extends QueryCtrl {
         this.resourceLabels = data.results[this.target.refId].meta.resourceLabels;
         this.resourceLabels = data.results[this.target.refId].meta.resourceLabels;
         resolve();
         resolve();
       } catch (error) {
       } catch (error) {
-        appEvents.emit('ds-request-error', 'Error loading metric labels for ' + this.target.metricType);
+        console.log(error.data.message);
+        appEvents.emit('alert-error', ['Error', 'Error loading metric labels for ' + this.target.metricType]);
         resolve();
         resolve();
       }
       }
     });
     });
@@ -149,7 +150,8 @@ export class StackdriverQueryCtrl extends QueryCtrl {
 
 
   async getGroupBys(segment, index, removeText?: string, removeUsed = true) {
   async getGroupBys(segment, index, removeText?: string, removeUsed = true) {
     await this.loadLabelsPromise;
     await this.loadLabelsPromise;
-    const metricLabels = Object.keys(this.metricLabels)
+
+    const metricLabels = Object.keys(this.metricLabels || {})
       .filter(ml => {
       .filter(ml => {
         if (!removeUsed) {
         if (!removeUsed) {
           return true;
           return true;
@@ -163,7 +165,7 @@ export class StackdriverQueryCtrl extends QueryCtrl {
         });
         });
       });
       });
 
 
-    const resourceLabels = Object.keys(this.resourceLabels)
+    const resourceLabels = Object.keys(this.resourceLabels || {})
       .filter(ml => {
       .filter(ml => {
         if (!removeUsed) {
         if (!removeUsed) {
           return true;
           return true;