Explore: Ensure logs volume data points are in order (#77268)

* Ensure logs volume data points are ordered

* Add a test for data points order
pull/77373/head
Piotr Jamróz 2 years ago committed by GitHub
parent 107cf0dc04
commit 03ca9c7c66
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 27
      public/app/features/logs/utils.test.ts
  2. 13
      public/app/features/logs/utils.ts

@ -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…
Cancel
Save