Files
grafana/public/app/features/scenes/apps/utils.ts
Torkel Ödegaard 42218fbdbb DashboardScene: Support auto migration for angular panels (#76100)
* DashboardScene: Support auto migration for angular panels

* minor tweak

* Update scenes

* Review fix

* Update
2023-10-10 14:33:58 +02:00

58 lines
1.5 KiB
TypeScript

import { useLocation } from 'react-router-dom';
import { UrlQueryMap, urlUtil } from '@grafana/data';
import { locationSearchToObject } from '@grafana/runtime';
import { QueryVariable, SceneQueryRunner, SceneVariableSet } from '@grafana/scenes';
import { PromQuery } from 'app/plugins/datasource/prometheus/types';
export function useAppQueryParams() {
const location = useLocation();
return locationSearchToObject(location.search || '');
}
export function getLinkUrlWithAppUrlState(path: string, params: UrlQueryMap): string {
return urlUtil.renderUrl(path, params);
}
export function getInstantQuery(query: Partial<PromQuery>): SceneQueryRunner {
return new SceneQueryRunner({
datasource: { uid: 'gdev-prometheus' },
queries: [
{
refId: 'A',
instant: true,
format: 'table',
maxDataPoints: 500,
...query,
},
],
});
}
export function getTimeSeriesQuery(query: Partial<PromQuery>): SceneQueryRunner {
return new SceneQueryRunner({
datasource: { uid: 'gdev-prometheus' },
queries: [
{
refId: 'A',
range: true,
format: 'time_series',
maxDataPoints: 500,
...query,
},
],
});
}
export function getVariablesDefinitions() {
return new SceneVariableSet({
variables: [
new QueryVariable({
name: 'instance',
datasource: { uid: 'gdev-prometheus' },
query: { query: 'label_values(grafana_http_request_duration_seconds_sum, instance)', refId: 'A' },
}),
],
});
}