DashboardQueryRunner: Implements opt-in subscribe logic (#33370)

* DashboardQueryRunner: Implements opt-in subscribe logic
This commit is contained in:
kay delaney
2021-04-26 13:50:08 +01:00
committed by GitHub
parent a54ac510c4
commit 999f139868
2 changed files with 10 additions and 1 deletions

View File

@@ -24,6 +24,7 @@ import {
DataTransformerConfig,
LoadingState,
PanelData,
PanelPluginDataSupport,
rangeUtil,
ScopedVars,
TimeRange,
@@ -66,6 +67,7 @@ export class PanelQueryRunner {
private subscription?: Unsubscribable;
private lastResult?: PanelData;
private dataConfigSource: DataConfigSource;
private dataSupport?: PanelPluginDataSupport;
constructor(dataConfigSource: DataConfigSource) {
this.subject = new ReplaySubject(1);
@@ -243,7 +245,12 @@ export class PanelQueryRunner {
this.subscription.unsubscribe();
}
this.subscription = mergePanelAndDashData(observable, getDashboardQueryRunner().getResult(panelId)).subscribe({
let panelData = observable;
if (this.dataSupport?.alertStates || this.dataSupport?.annotations) {
panelData = mergePanelAndDashData(observable, getDashboardQueryRunner().getResult(panelId));
}
this.subscription = panelData.subscribe({
next: (data) => {
this.lastResult = preProcessPanelData(data, this.lastResult);
// Store preprocessed query results for applying overrides later on in the pipeline