DataTrails: Fixes filters taking metric into account (#78786)

* DataTrails: Fixes filters taking metric into account

* fix merge
This commit is contained in:
Torkel Ödegaard 2023-12-04 09:42:34 +01:00 committed by GitHub
parent f761ae1f02
commit 4e2201ffeb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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 [];
}