mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Explore: Generic query import/export (#40987)
* Add basic implementation * Split import/export query interface * Rename abstract query type * Rename abstract query type * Split loki/prom parsing * Update docs * Test importing abstract queries to Elastic * Test exporting abstract queries from Graphite * Test Prom and Loki query import/export * Give better control to import/export all queries to data sources * Fix unit test * Fix unit test * Filter out non-existing labels when importing queries to Loki * Fix relative imports, names and docs * Fix import type * Move toPromLike query to Prometheus code * Dedup label operator mappings * importAbstractQueries -> importFromAbstractQueries * Fix unit tests
This commit is contained in:
@@ -7,6 +7,8 @@ import {
|
||||
DataQueryResponse,
|
||||
DataSourceApi,
|
||||
hasLogsVolumeSupport,
|
||||
hasQueryExportSupport,
|
||||
hasQueryImportSupport,
|
||||
HistoryItem,
|
||||
LoadingState,
|
||||
PanelData,
|
||||
@@ -265,6 +267,9 @@ export const importQueries = (
|
||||
if (sourceDataSource.meta?.id === targetDataSource.meta?.id) {
|
||||
// Keep same queries if same type of datasource, but delete datasource query property to prevent mismatch of new and old data source instance
|
||||
importedQueries = queries.map(({ datasource, ...query }) => query);
|
||||
} else if (hasQueryExportSupport(sourceDataSource) && hasQueryImportSupport(targetDataSource)) {
|
||||
const abstractQueries = await sourceDataSource.exportToAbstractQueries(queries);
|
||||
importedQueries = await targetDataSource.importFromAbstractQueries(abstractQueries);
|
||||
} else if (targetDataSource.importQueries) {
|
||||
// Datasource-specific importers
|
||||
importedQueries = await targetDataSource.importQueries(queries, sourceDataSource);
|
||||
|
||||
Reference in New Issue
Block a user