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,
|
getUrlSyncManager,
|
||||||
SceneComponentProps,
|
SceneComponentProps,
|
||||||
SceneControlsSpacer,
|
SceneControlsSpacer,
|
||||||
|
sceneGraph,
|
||||||
SceneObject,
|
SceneObject,
|
||||||
SceneObjectBase,
|
SceneObjectBase,
|
||||||
SceneObjectState,
|
SceneObjectState,
|
||||||
@ -27,7 +28,7 @@ import { DataTrailHistory, DataTrailHistoryStep } from './DataTrailsHistory';
|
|||||||
import { MetricScene } from './MetricScene';
|
import { MetricScene } from './MetricScene';
|
||||||
import { MetricSelectScene } from './MetricSelectScene';
|
import { MetricSelectScene } from './MetricSelectScene';
|
||||||
import { getTrailStore } from './TrailStore/TrailStore';
|
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';
|
import { getUrlForTrail } from './utils';
|
||||||
|
|
||||||
export interface DataTrailState extends SceneObjectState {
|
export interface DataTrailState extends SceneObjectState {
|
||||||
@ -112,6 +113,14 @@ export class DataTrail extends SceneObjectBase<DataTrailState> {
|
|||||||
} else {
|
} else {
|
||||||
locationService.partial({ metric: evt.payload, actionView: null });
|
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) {
|
private getSceneUpdatesForNewMetricValue(metric: string | undefined) {
|
||||||
@ -183,6 +192,7 @@ function getVariableSet(initialDS?: string, metric?: string, initialFilters?: Ad
|
|||||||
datasource: trailDS,
|
datasource: trailDS,
|
||||||
layout: 'vertical',
|
layout: 'vertical',
|
||||||
filters: initialFilters ?? [],
|
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