mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
* add support for code editor and builder * refactor cloudwatch migration * Add tooltip to editor field (#56) * add tooltip * add old tooltips * Bug bash feedback fixes (#58) * make ASC the default option * update sql preview whenever sql changes * don't allow queries without aggregation * set default value for aggregation * use new input field * cleanup * pr feedback * prevent unnecessary rerenders * use frame error instead of main error * remove not used snapshot * Use dimension filter in schema picker (#63) * use dimension key filter in group by and schema labels * add dimension filter also to code editor * add tests * fix build error * fix strict error * remove debug code * fix annotation editor (#64) * fix annotation editor * fix broken test * revert annotation backend change * PR feedback (#67) * pr feedback * removed dimension filter from group by * add spacing between common fields and rest * do not generate deep link for metric queries (#70) * update docs (#69) Co-authored-by: Erik Sundell <erik.sundell87@gmail.com> * fix lint problem caused by merge conflict Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
88 lines
3.0 KiB
TypeScript
88 lines
3.0 KiB
TypeScript
import React, { ChangeEvent } from 'react';
|
|
import { Switch, Input } from '@grafana/ui';
|
|
import { CloudWatchAnnotationQuery, CloudWatchMetricsQuery } from '../types';
|
|
import { PanelData } from '@grafana/data';
|
|
import { CloudWatchDatasource } from '../datasource';
|
|
import { MetricStatEditor } from './MetricStatEditor';
|
|
import EditorHeader from './ui/EditorHeader';
|
|
import InlineSelect from './ui/InlineSelect';
|
|
import { Space } from './ui/Space';
|
|
import { useRegions } from '../hooks';
|
|
import EditorRow from './ui/EditorRow';
|
|
import EditorField from './ui/EditorField';
|
|
|
|
export type Props = {
|
|
query: CloudWatchAnnotationQuery;
|
|
datasource: CloudWatchDatasource;
|
|
onChange: (value: CloudWatchAnnotationQuery) => void;
|
|
data?: PanelData;
|
|
};
|
|
|
|
export function AnnotationQueryEditor(props: React.PropsWithChildren<Props>) {
|
|
const { query, onChange, datasource } = props;
|
|
|
|
const [regions, regionIsLoading] = useRegions(datasource);
|
|
|
|
return (
|
|
<>
|
|
<EditorHeader>
|
|
<InlineSelect
|
|
label="Region"
|
|
value={regions.find((v) => v.value === query.region)}
|
|
placeholder="Select region"
|
|
allowCustomValue
|
|
onChange={({ value: region }) => region && onChange({ ...query, region })}
|
|
options={regions}
|
|
isLoading={regionIsLoading}
|
|
/>
|
|
</EditorHeader>
|
|
<Space v={0.5} />
|
|
<MetricStatEditor
|
|
{...props}
|
|
disableExpressions={true}
|
|
onChange={(editorQuery: CloudWatchMetricsQuery) => onChange({ ...query, ...editorQuery })}
|
|
onRunQuery={() => {}}
|
|
></MetricStatEditor>
|
|
<Space v={0.5} />
|
|
<EditorRow>
|
|
<EditorField label="Period" width={26} tooltip="Minimum interval between points in seconds.">
|
|
<Input
|
|
value={query.period || ''}
|
|
placeholder="auto"
|
|
onChange={(event: ChangeEvent<HTMLInputElement>) => onChange({ ...query, period: event.target.value })}
|
|
/>
|
|
</EditorField>
|
|
<EditorField label="Enable Prefix Matching" optional={true}>
|
|
<Switch
|
|
value={query.prefixMatching}
|
|
onChange={(e) => {
|
|
onChange({
|
|
...query,
|
|
prefixMatching: e.currentTarget.checked,
|
|
});
|
|
}}
|
|
/>
|
|
</EditorField>
|
|
<EditorField label="Action" optional={true}>
|
|
<Input
|
|
disabled={!query.prefixMatching}
|
|
value={query.actionPrefix || ''}
|
|
onChange={(event: ChangeEvent<HTMLInputElement>) =>
|
|
onChange({ ...query, actionPrefix: event.target.value })
|
|
}
|
|
/>
|
|
</EditorField>
|
|
<EditorField label="Alarm Name" optional={true}>
|
|
<Input
|
|
disabled={!query.prefixMatching}
|
|
value={query.alarmNamePrefix || ''}
|
|
onChange={(event: ChangeEvent<HTMLInputElement>) =>
|
|
onChange({ ...query, alarmNamePrefix: event.target.value })
|
|
}
|
|
/>
|
|
</EditorField>
|
|
</EditorRow>
|
|
</>
|
|
);
|
|
}
|