mirror of
https://github.com/grafana/grafana.git
synced 2025-02-20 11:48:34 -06:00
* Fix typos * Query exemplars API * Add link to traceID * Update exemplar to show more information Reduce exemplars density * Fix typos * Query exemplars API * Add link to traceID * Update exemplar to show more information Reduce exemplars density * Update GraphNG legend type * Show new graph component in Explore * Add exemplar annotation a design update * Graph panel not to show red line annotation Exemplar plugin to use y value * Address review comments * Density filter for exemplars * Update schema of exemplars * Density filter with y-value sampling * Enforce axis scales to include 0 * Changes after merge with master * Show metrics when there is no result * Decorators tests fix * ExemplarMarker to receive component prop * Remove context menu from explore graph * Add color to graph * Update explore graph panel * Update graph config to use default values * Fix data source tests * Do not show exemplars outside of graph * Add exemplars switch * Fix typos * Add exemplars query only when enabled * Show graph in explore without filling it * Update exemplars plugin y value scale selection * Update tests * Add data source picker for internal linking * Increase pointSize for better visibility * Fix explore e2e test * Fix data link title variable interpolation * Use new switch component in PromExemplarField * Move FieldLink component to new file * Convert exemplar to datalink * Add legend toggling logic to Explore * Add legend toggling to Explore * Address Ivana's feedback * Address Andrej's comments * Address Gio's feedback * Add tests for result_transformer * Fix eslint issues * Change sampler formula for better readability Co-authored-by: David Kaltschmidt <david@leia.lan> Co-authored-by: David Kaltschmidt <david@leia.fritz.box> Co-authored-by: David Kaltschmidt <david.kaltschmidt@gmail.com>
84 lines
2.6 KiB
TypeScript
84 lines
2.6 KiB
TypeScript
// Libraries
|
|
import React, { memo } from 'react';
|
|
import { css, cx } from 'emotion';
|
|
|
|
// Types
|
|
import { InlineFormLabel, RadioButtonGroup } from '@grafana/ui';
|
|
import { PromQuery } from '../types';
|
|
import { PromExemplarField } from './PromExemplarField';
|
|
|
|
export interface PromExploreExtraFieldProps {
|
|
queryType: string;
|
|
stepValue: string;
|
|
query: PromQuery;
|
|
onStepChange: (e: React.SyntheticEvent<HTMLInputElement>) => void;
|
|
onKeyDownFunc: (e: React.KeyboardEvent<HTMLInputElement>) => void;
|
|
onQueryTypeChange: (value: string) => void;
|
|
onChange: (value: PromQuery) => void;
|
|
}
|
|
|
|
export const PromExploreExtraField: React.FC<PromExploreExtraFieldProps> = memo(
|
|
({ queryType, stepValue, query, onChange, onStepChange, onQueryTypeChange, onKeyDownFunc }) => {
|
|
const rangeOptions = [
|
|
{ value: 'range', label: 'Range' },
|
|
{ value: 'instant', label: 'Instant' },
|
|
{ value: 'both', label: 'Both' },
|
|
];
|
|
|
|
return (
|
|
<div aria-label="Prometheus extra field" className="gf-form-inline">
|
|
{/*Query type field*/}
|
|
<div
|
|
data-testid="queryTypeField"
|
|
className={cx(
|
|
'gf-form explore-input-margin',
|
|
css`
|
|
flex-wrap: nowrap;
|
|
`
|
|
)}
|
|
aria-label="Query type field"
|
|
>
|
|
<InlineFormLabel
|
|
width="auto"
|
|
tooltip="Choose the type of query you would like to run. An instant query queries against a single point in time. A range query queries over a range of time. With both, you'll run two queries - one instant and one range. "
|
|
>
|
|
Query type
|
|
</InlineFormLabel>
|
|
|
|
<RadioButtonGroup options={rangeOptions} value={queryType} onChange={onQueryTypeChange} />
|
|
</div>
|
|
{/*Step field*/}
|
|
<div
|
|
data-testid="stepField"
|
|
className={cx(
|
|
'gf-form',
|
|
css`
|
|
flex-wrap: nowrap;
|
|
`
|
|
)}
|
|
aria-label="Step field"
|
|
>
|
|
<InlineFormLabel
|
|
width={5}
|
|
tooltip={
|
|
'Time units can be used here, for example: 5s, 1m, 3h, 1d, 1y (Default if no unit is specified: s)'
|
|
}
|
|
>
|
|
Step
|
|
</InlineFormLabel>
|
|
<input
|
|
type={'text'}
|
|
className="gf-form-input width-4"
|
|
placeholder={'auto'}
|
|
onChange={onStepChange}
|
|
onKeyDown={onKeyDownFunc}
|
|
value={stepValue}
|
|
/>
|
|
</div>
|
|
|
|
<PromExemplarField query={query} onChange={onChange} />
|
|
</div>
|
|
);
|
|
}
|
|
);
|