Browse Source

Explore: ResultProcessor refactor isTimeSeries check

Torkel Ödegaard 6 years ago
parent
commit
b39268f195

+ 0 - 2
public/app/features/dashboard/state/PanelQueryState.ts

@@ -274,8 +274,6 @@ export class PanelQueryState {
 
     return {
       state: done ? LoadingState.Done : LoadingState.Streaming,
-      // This should not be needed but unfortunately Prometheus datasource sends non DataFrame here bypassing the
-      // typing.
       series: this.sendFrames ? getProcessedDataFrames(series) : [],
       legacy: this.sendLegacy ? translateToLegacyData(series) : undefined,
       request: {

+ 12 - 9
public/app/features/explore/utils/ResultProcessor.ts

@@ -18,7 +18,7 @@ export class ResultProcessor {
       return [];
     }
 
-    const onlyTimeSeries = this.dataFrames.filter(series => series.fields.length === 2);
+    const onlyTimeSeries = this.dataFrames.filter(isTimeSeries);
 
     return getGraphSeriesModel(
       onlyTimeSeries,
@@ -36,14 +36,7 @@ export class ResultProcessor {
     // For now ignore time series
     // We can change this later, just need to figure out how to
     // Ignore time series only for prometheus
-    const onlyTables = this.dataFrames.filter(frame => {
-      if (frame.fields.length === 2) {
-        if (frame.fields[1].type === FieldType.time) {
-          return false;
-        }
-      }
-      return true;
-    });
+    const onlyTables = this.dataFrames.filter(frame => !isTimeSeries(frame));
 
     const tables = onlyTables.map(frame => {
       const { fields } = frame;
@@ -113,3 +106,13 @@ export class ResultProcessor {
     return { ...sortedNewResults, rows, series };
   }
 }
+
+export function isTimeSeries(frame: DataFrame): boolean {
+  if (frame.fields.length === 2) {
+    if (frame.fields[1].type === FieldType.time) {
+      return true;
+    }
+  }
+
+  return false;
+}