diff --git a/public/app/core/logs_model.ts b/public/app/core/logs_model.ts index c05f5bab866..5ae32a1d1bb 100644 --- a/public/app/core/logs_model.ts +++ b/public/app/core/logs_model.ts @@ -62,6 +62,7 @@ export interface LogsModel { meta?: LogsMetaItem[]; rows: LogRow[]; series?: TimeSeries[]; + queryEmpty?: boolean; } export interface LogsStream { diff --git a/public/app/core/utils/explore.ts b/public/app/core/utils/explore.ts index be771c1b232..59d9e701992 100644 --- a/public/app/core/utils/explore.ts +++ b/public/app/core/utils/explore.ts @@ -133,7 +133,12 @@ export function ensureQueries(queries?: DataQuery[]): DataQuery[] { * A target is non-empty when it has keys other than refId and key. */ export function hasNonEmptyQuery(queries: DataQuery[]): boolean { - return queries.some(query => Object.keys(query).length > 2); + return queries.some( + query => + Object.keys(query) + .map(k => query[k]) + .filter(v => v).length > 2 + ); } export function calculateResultsFromQueryTransactions( @@ -148,15 +153,17 @@ export function calculateResultsFromQueryTransactions( new TableModel(), ...queryTransactions.filter(qt => qt.resultType === 'Table' && qt.done && qt.result).map(qt => qt.result) ); - const logsResult = - datasource && datasource.mergeStreams + const logsResult = { + ...datasource && datasource.mergeStreams ? datasource.mergeStreams( _.flatten( queryTransactions.filter(qt => qt.resultType === 'Logs' && qt.done && qt.result).map(qt => qt.result) ), graphInterval ) - : undefined; + : undefined, + queryEmpty: queryTransactions.filter(qt => qt.resultType === 'Logs' && qt.done).every(qt => qt.result.length === 0), + }; return { graphResult, diff --git a/public/app/features/explore/Explore.tsx b/public/app/features/explore/Explore.tsx index 3e35a68bf84..7205e486992 100644 --- a/public/app/features/explore/Explore.tsx +++ b/public/app/features/explore/Explore.tsx @@ -220,7 +220,7 @@ export class Explore extends React.PureComponent { modifiedQueries = [...this.modifiedQueries]; } else if (datasource.importQueries) { // Datasource-specific importers - modifiedQueries = await datasource.importQueries(this.modifiedQueries, origin.meta); + modifiedQueries = await datasource.importQueries(this.modifiedQueries, datasource.meta); } else { // Default is blank queries modifiedQueries = ensureQueries(); diff --git a/public/app/features/explore/Logs.tsx b/public/app/features/explore/Logs.tsx index 6447ec895ed..42a9a2fdbb0 100644 --- a/public/app/features/explore/Logs.tsx +++ b/public/app/features/explore/Logs.tsx @@ -358,7 +358,7 @@ export default class Logs extends PureComponent { {hasData && deferLogs && Rendering {dedupedData.rows.length} rows...} {!loading && - !hasData && + data.queryEmpty && !scanning && (
No logs found.