|
|
|
@ -7,6 +7,9 @@ import { |
|
|
|
|
DataSourceInstanceSettings, |
|
|
|
|
TestDataSourceResponse, |
|
|
|
|
ScopedVar, |
|
|
|
|
DataTopic, |
|
|
|
|
PanelData, |
|
|
|
|
DataFrame, |
|
|
|
|
} from '@grafana/data'; |
|
|
|
|
import { SceneDataProvider, SceneDataTransformer, SceneObject } from '@grafana/scenes'; |
|
|
|
|
import { |
|
|
|
@ -78,7 +81,7 @@ export class DashboardDatasource extends DataSourceApi<DashboardQuery> { |
|
|
|
|
return sourceDataProvider!.getResultsStream!().pipe( |
|
|
|
|
map((result) => { |
|
|
|
|
return { |
|
|
|
|
data: [...result.data.series, ...(result.data.annotations ?? [])], |
|
|
|
|
data: this.getDataFramesForQueryTopic(result.data, query), |
|
|
|
|
state: result.data.state, |
|
|
|
|
errors: result.data.errors, |
|
|
|
|
error: result.data.error, |
|
|
|
@ -90,6 +93,21 @@ export class DashboardDatasource extends DataSourceApi<DashboardQuery> { |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private getDataFramesForQueryTopic(data: PanelData, query: DashboardQuery): DataFrame[] { |
|
|
|
|
const annotations = data.annotations ?? []; |
|
|
|
|
if (query.topic === DataTopic.Annotations) { |
|
|
|
|
return annotations.map((frame) => ({ |
|
|
|
|
...frame, |
|
|
|
|
meta: { |
|
|
|
|
...frame.meta, |
|
|
|
|
dataTopic: DataTopic.Series, |
|
|
|
|
}, |
|
|
|
|
})); |
|
|
|
|
} else { |
|
|
|
|
return [...data.series, ...annotations]; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private findSourcePanel(scene: SceneObject, panelId: number) { |
|
|
|
|
return findVizPanelByKey(scene, getVizPanelKeyForPanelId(panelId)); |
|
|
|
|
} |
|
|
|
|