mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Explore: Ensure logs volume data points are in order (#77268)
* Ensure logs volume data points are ordered * Add a test for data points order
This commit is contained in:
parent
107cf0dc04
commit
03ca9c7c66
@ -407,6 +407,33 @@ describe('mergeLogsVolumeDataFrames', () => {
|
||||
]);
|
||||
expect(maximum).toBe(6);
|
||||
});
|
||||
|
||||
it('produces merged results order by time', () => {
|
||||
const frame1 = mockLogVolume('info', [1600000000001, 1600000000009], [1, 1]);
|
||||
const frame2 = mockLogVolume('info', [1600000000000, 1600000000005], [1, 1]);
|
||||
|
||||
const { dataFrames: merged } = mergeLogsVolumeDataFrames([frame1, frame2]);
|
||||
|
||||
expect(merged).toMatchObject([
|
||||
{
|
||||
fields: [
|
||||
{
|
||||
name: 'Time',
|
||||
type: FieldType.time,
|
||||
values: [1600000000000, 1600000000001, 1600000000005, 1600000000009],
|
||||
},
|
||||
{
|
||||
name: 'Value',
|
||||
type: FieldType.number,
|
||||
values: [1, 1, 1, 1],
|
||||
config: {
|
||||
displayNameFromDS: 'info',
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
]);
|
||||
});
|
||||
});
|
||||
|
||||
describe('getLogsVolumeDimensions', () => {
|
||||
|
@ -243,13 +243,14 @@ export const mergeLogsVolumeDataFrames = (dataFrames: DataFrame[]): { dataFrames
|
||||
levelDataFrame.addField({ name: 'Time', type: FieldType.time, config: timeFieldConfig });
|
||||
levelDataFrame.addField({ name: 'Value', type: FieldType.number, config: valueFieldConfig });
|
||||
|
||||
for (const time in aggregated[level]) {
|
||||
const value = aggregated[level][time];
|
||||
levelDataFrame.add({
|
||||
Time: Number(time),
|
||||
Value: value,
|
||||
Object.entries(aggregated[level])
|
||||
.sort((a, b) => Number(a[0]) - Number(b[0]))
|
||||
.forEach(([time, value]) => {
|
||||
levelDataFrame.add({
|
||||
Time: Number(time),
|
||||
Value: value,
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
results.push(levelDataFrame);
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user