mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
DataFrame: Align frame (__series.name) and field naming (__field.name) (#69621)
Align frame and field naming
This commit is contained in:
parent
3e48c0b570
commit
862b04c1b2
@ -1,5 +1,5 @@
|
|||||||
import { toDataFrame } from '../dataframe';
|
import { toDataFrame } from '../dataframe';
|
||||||
import { DataFrame, TIME_SERIES_VALUE_FIELD_NAME, FieldType } from '../types';
|
import { DataFrame, TIME_SERIES_VALUE_FIELD_NAME, FieldType, TIME_SERIES_TIME_FIELD_NAME } from '../types';
|
||||||
|
|
||||||
import { getFieldDisplayName, getFrameDisplayName } from './fieldState';
|
import { getFieldDisplayName, getFrameDisplayName } from './fieldState';
|
||||||
|
|
||||||
@ -42,7 +42,8 @@ describe('getFrameDisplayName', () => {
|
|||||||
const frame = toDataFrame({
|
const frame = toDataFrame({
|
||||||
fields: [{ name: 'value', labels: { server: 'A' } }],
|
fields: [{ name: 'value', labels: { server: 'A' } }],
|
||||||
});
|
});
|
||||||
expect(getFrameDisplayName(frame)).toBe('{server="A"}');
|
|
||||||
|
expect(getFrameDisplayName(frame)).toBe('value A');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('Should return field names when labels object exist but has no keys', () => {
|
it('Should return field names when labels object exist but has no keys', () => {
|
||||||
@ -51,6 +52,24 @@ describe('getFrameDisplayName', () => {
|
|||||||
});
|
});
|
||||||
expect(getFrameDisplayName(frame)).toBe('value');
|
expect(getFrameDisplayName(frame)).toBe('value');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('Should return value field name if single value field', () => {
|
||||||
|
const frame = toDataFrame({
|
||||||
|
fields: [
|
||||||
|
{ name: TIME_SERIES_TIME_FIELD_NAME, values: [1, 2, 3], type: FieldType.time },
|
||||||
|
{
|
||||||
|
name: TIME_SERIES_VALUE_FIELD_NAME,
|
||||||
|
values: [1, 2, 3],
|
||||||
|
type: FieldType.number,
|
||||||
|
config: {
|
||||||
|
displayName: 'ServerA',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(getFrameDisplayName(frame, 1)).toBe('ServerA');
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('Check field state calculations (displayName and id)', () => {
|
describe('Check field state calculations (displayName and id)', () => {
|
||||||
|
@ -9,16 +9,23 @@ export function getFrameDisplayName(frame: DataFrame, index?: number) {
|
|||||||
return frame.name;
|
return frame.name;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Single field with tags
|
const valueFieldNames: string[] = [];
|
||||||
const valuesWithLabels: Field[] = [];
|
|
||||||
for (const field of frame.fields) {
|
for (const field of frame.fields) {
|
||||||
if (field.labels && Object.keys(field.labels).length > 0) {
|
if (field.type === FieldType.time) {
|
||||||
valuesWithLabels.push(field);
|
continue;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (valuesWithLabels.length === 1) {
|
// No point in doing more
|
||||||
return formatLabels(valuesWithLabels[0].labels!);
|
if (valueFieldNames.length > 1) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
valueFieldNames.push(getFieldDisplayName(field, frame));
|
||||||
|
}
|
||||||
|
|
||||||
|
// If the frame has a single value field then use the name of that field as the frame name
|
||||||
|
if (valueFieldNames.length === 1) {
|
||||||
|
return valueFieldNames[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
// list all the
|
// list all the
|
||||||
|
Loading…
Reference in New Issue
Block a user