mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
* add support for handling preprocessors in the backend * add preprocessor tests * use uppercase for constants * add super label component * remove error message from query editor since its not working (probably cause onDataError doesnt work anymore) * use cheat sheet instead of help * add return type annotation for projects * add support for preprocessing. replace segment comp with select. change components names and refactoring * cleanup * more pr feedback * fix annotations editor * rename aggregation component * fix broken test * remove unnecessary cast * fix strict errors * fix more strict errors * remove not used prop * update docs * use same inline label for annotation editor * fix react prop warning * disable preprocessing for distribution types * using new default values for reducer * auto select 'rate' if metric kind is not gauge * fix create label format * pr feedback * more pr feedback * update images
27 lines
1002 B
TypeScript
27 lines
1002 B
TypeScript
import React, { FC, useMemo } from 'react';
|
|
import { rangeUtil } from '@grafana/data';
|
|
import { ALIGNMENTS } from '../constants';
|
|
import CloudMonitoringDatasource from '../datasource';
|
|
import { CustomMetaData } from '../types';
|
|
|
|
export interface Props {
|
|
customMetaData: CustomMetaData;
|
|
datasource: CloudMonitoringDatasource;
|
|
}
|
|
|
|
export const AlignmentPeriodLabel: FC<Props> = ({ customMetaData, datasource }) => {
|
|
const { perSeriesAligner, alignmentPeriod } = customMetaData;
|
|
const formatAlignmentText = useMemo(() => {
|
|
if (!alignmentPeriod || !perSeriesAligner) {
|
|
return '';
|
|
}
|
|
|
|
const alignment = ALIGNMENTS.find((ap) => ap.value === datasource.templateSrv.replace(perSeriesAligner));
|
|
const seconds = parseInt(alignmentPeriod ?? ''.replace(/[^0-9]/g, ''), 10);
|
|
const hms = rangeUtil.secondsToHms(seconds);
|
|
return `${hms} interval (${alignment?.text ?? ''})`;
|
|
}, [datasource, perSeriesAligner, alignmentPeriod]);
|
|
|
|
return <label>{formatAlignmentText}</label>;
|
|
};
|