datatrails: fix: only show datatrails link for timeseries dashboard panels (#84942)

fix: only show datatrails link for timeseries dashboard panels
This commit is contained in:
Darren Janeczek 2024-03-22 10:05:03 -04:00 committed by GitHub
parent d2dd15e223
commit a2795f1291
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 19 additions and 1 deletions

View File

@ -12,13 +12,24 @@ import { MetricScene } from '../MetricScene';
import { DataTrailEmbedded, DataTrailEmbeddedState } from './DataTrailEmbedded';
import { SceneDrawerAsScene, launchSceneDrawerInGlobalModal } from './SceneDrawer';
import { QueryMetric, getQueryMetrics } from './getQueryMetrics';
import { createAdHocFilters, getQueryMetricLabel, getQueryRunner, getTimeRangeFromDashboard } from './utils';
import {
createAdHocFilters,
getPanelType,
getQueryMetricLabel,
getQueryRunner,
getTimeRangeFromDashboard,
} from './utils';
export function addDataTrailPanelAction(
dashboard: DashboardScene | DashboardModel,
panel: VizPanel | PanelModel,
items: PanelMenuItem[]
) {
const panelType = getPanelType(panel);
if (panelType !== 'timeseries') {
return;
}
const queryRunner = getQueryRunner(panel);
if (!queryRunner) {
return;

View File

@ -43,3 +43,10 @@ export function getQueryMetricLabel({ metric, labelFilters }: QueryMetric) {
export function createAdHocFilters(labels: QueryBuilderLabelFilter[]) {
return labels?.map((label) => ({ key: label.label, value: label.value, operator: label.op }));
}
export function getPanelType(panel: VizPanel | PanelModel) {
if (panel instanceof VizPanel) {
return panel.state.pluginId;
}
return panel.type;
}