mirror of https://github.com/grafana/grafana.git
Flame Graph: Use suffix for values formatted with a short formatter (#110999)
* Flame Graph: Use suffix for values formatted with a short formatter * Fix linting
This commit is contained in:
parent
9ac5a0b002
commit
23fd69f572
|
@ -111,6 +111,20 @@ describe('FlameGraphTooltip', () => {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
function setupDiffData2() {
|
||||||
|
const flameGraphData = createDataFrame({
|
||||||
|
fields: [
|
||||||
|
{ name: 'level', values: [0, 1] },
|
||||||
|
{ name: 'value', values: [101, 101] },
|
||||||
|
{ name: 'valueRight', values: [100, 100] },
|
||||||
|
{ name: 'self', values: [100, 100] },
|
||||||
|
{ name: 'selfRight', values: [1, 1] },
|
||||||
|
{ name: 'label', values: ['total', 'func1'] },
|
||||||
|
],
|
||||||
|
});
|
||||||
|
return new FlameGraphDataContainer(flameGraphData, { collapsing: true });
|
||||||
|
}
|
||||||
|
|
||||||
describe('getDiffTooltipData', () => {
|
describe('getDiffTooltipData', () => {
|
||||||
it('works with diff data', () => {
|
it('works with diff data', () => {
|
||||||
const tooltipData = getDiffTooltipData(
|
const tooltipData = getDiffTooltipData(
|
||||||
|
@ -142,6 +156,36 @@ describe('getDiffTooltipData', () => {
|
||||||
},
|
},
|
||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
|
it('works with diff data and short values', () => {
|
||||||
|
const tooltipData = getDiffTooltipData(
|
||||||
|
setupDiffData2(),
|
||||||
|
{ start: 0, itemIndexes: [1], value: 101, valueRight: 100, children: [], level: 0 },
|
||||||
|
200
|
||||||
|
);
|
||||||
|
expect(tooltipData).toEqual([
|
||||||
|
{
|
||||||
|
rowId: '1',
|
||||||
|
label: '% of total',
|
||||||
|
baseline: '1%',
|
||||||
|
comparison: '100%',
|
||||||
|
diff: '9.90 K%',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
rowId: '2',
|
||||||
|
label: 'Value',
|
||||||
|
baseline: '1',
|
||||||
|
comparison: '100',
|
||||||
|
diff: '99',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
rowId: '3',
|
||||||
|
label: 'Samples',
|
||||||
|
baseline: '1',
|
||||||
|
comparison: '100',
|
||||||
|
diff: '99',
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
function makeField(name: string, unit: string, values: number[]): Field {
|
function makeField(name: string, unit: string, values: number[]): Field {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { css } from '@emotion/css';
|
import { css } from '@emotion/css';
|
||||||
|
|
||||||
import { DisplayValue, getValueFormat, GrafanaTheme2 } from '@grafana/data';
|
import { DisplayValue, getValueFormat, GrafanaTheme2, ValueFormatter } from '@grafana/data';
|
||||||
import { InteractiveTable, Portal, useStyles2, VizTooltipContainer } from '@grafana/ui';
|
import { InteractiveTable, Portal, useStyles2, VizTooltipContainer } from '@grafana/ui';
|
||||||
|
|
||||||
import { CollapseConfig, FlameGraphDataContainer, LevelItem } from './dataTransform';
|
import { CollapseConfig, FlameGraphDataContainer, LevelItem } from './dataTransform';
|
||||||
|
@ -122,6 +122,11 @@ type DiffTableData = {
|
||||||
diff: string | number;
|
diff: string | number;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const formatWithSuffix = (value: number, formatter: ValueFormatter): string => {
|
||||||
|
const displayValue = formatter(value);
|
||||||
|
return displayValue.text + displayValue.suffix;
|
||||||
|
};
|
||||||
|
|
||||||
export const getDiffTooltipData = (
|
export const getDiffTooltipData = (
|
||||||
data: FlameGraphDataContainer,
|
data: FlameGraphDataContainer,
|
||||||
item: LevelItem,
|
item: LevelItem,
|
||||||
|
@ -148,7 +153,7 @@ export const getDiffTooltipData = (
|
||||||
label: '% of total',
|
label: '% of total',
|
||||||
baseline: percentageLeft + '%',
|
baseline: percentageLeft + '%',
|
||||||
comparison: percentageRight + '%',
|
comparison: percentageRight + '%',
|
||||||
diff: shortValFormat(diff).text + '%',
|
diff: formatWithSuffix(diff, shortValFormat) + '%',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
rowId: '2',
|
rowId: '2',
|
||||||
|
@ -160,9 +165,9 @@ export const getDiffTooltipData = (
|
||||||
{
|
{
|
||||||
rowId: '3',
|
rowId: '3',
|
||||||
label: 'Samples',
|
label: 'Samples',
|
||||||
baseline: shortValFormat(valueLeft).text,
|
baseline: formatWithSuffix(valueLeft, shortValFormat),
|
||||||
comparison: shortValFormat(item.valueRight!).text,
|
comparison: formatWithSuffix(item.valueRight!, shortValFormat),
|
||||||
diff: shortValFormat(item.valueRight! - valueLeft).text,
|
diff: formatWithSuffix(item.valueRight! - valueLeft, shortValFormat),
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue