mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
DataTrails: Fixes filters taking metric into account (#78786)
* DataTrails: Fixes filters taking metric into account * fix merge
This commit is contained in:
parent
f761ae1f02
commit
4e2201ffeb
@ -9,6 +9,7 @@ import {
|
||||
getUrlSyncManager,
|
||||
SceneComponentProps,
|
||||
SceneControlsSpacer,
|
||||
sceneGraph,
|
||||
SceneObject,
|
||||
SceneObjectBase,
|
||||
SceneObjectState,
|
||||
@ -27,7 +28,7 @@ import { DataTrailHistory, DataTrailHistoryStep } from './DataTrailsHistory';
|
||||
import { MetricScene } from './MetricScene';
|
||||
import { MetricSelectScene } from './MetricSelectScene';
|
||||
import { getTrailStore } from './TrailStore/TrailStore';
|
||||
import { MetricSelectedEvent, trailDS, LOGS_METRIC, VAR_DATASOURCE } from './shared';
|
||||
import { MetricSelectedEvent, trailDS, LOGS_METRIC, VAR_DATASOURCE, VAR_FILTERS } from './shared';
|
||||
import { getUrlForTrail } from './utils';
|
||||
|
||||
export interface DataTrailState extends SceneObjectState {
|
||||
@ -112,6 +113,14 @@ export class DataTrail extends SceneObjectBase<DataTrailState> {
|
||||
} else {
|
||||
locationService.partial({ metric: evt.payload, actionView: null });
|
||||
}
|
||||
|
||||
// Add metric to adhoc filters baseFilter
|
||||
const filterVar = sceneGraph.lookupVariable(VAR_FILTERS, this);
|
||||
if (filterVar instanceof AdHocFiltersVariable) {
|
||||
filterVar.state.set.setState({
|
||||
baseFilters: getBaseFiltersForMetric(evt.payload),
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private getSceneUpdatesForNewMetricValue(metric: string | undefined) {
|
||||
@ -183,6 +192,7 @@ function getVariableSet(initialDS?: string, metric?: string, initialFilters?: Ad
|
||||
datasource: trailDS,
|
||||
layout: 'vertical',
|
||||
filters: initialFilters ?? [],
|
||||
baseFilters: getBaseFiltersForMetric(metric),
|
||||
}),
|
||||
],
|
||||
});
|
||||
@ -211,3 +221,10 @@ function getStyles(theme: GrafanaTheme2) {
|
||||
}),
|
||||
};
|
||||
}
|
||||
|
||||
function getBaseFiltersForMetric(metric?: string): AdHocVariableFilter[] {
|
||||
if (metric) {
|
||||
return [{ key: '__name__', operator: '=', value: metric }];
|
||||
}
|
||||
return [];
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user