mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Explore: Create unique ids and deduplicate Loki logs (#21493)
This commit is contained in:
@@ -307,6 +307,11 @@ describe('dataFrameToLogsModel', () => {
|
||||
level: 'dbug',
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'id',
|
||||
type: FieldType.string,
|
||||
values: ['0'],
|
||||
},
|
||||
],
|
||||
}),
|
||||
toDataFrame({
|
||||
@@ -327,6 +332,11 @@ describe('dataFrameToLogsModel', () => {
|
||||
level: 'err',
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'id',
|
||||
type: FieldType.string,
|
||||
values: ['1', '2'],
|
||||
},
|
||||
],
|
||||
}),
|
||||
];
|
||||
@@ -383,6 +393,11 @@ describe('dataFrameToLogsModel', () => {
|
||||
level: 'dbug',
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'id',
|
||||
type: FieldType.string,
|
||||
values: ['0'],
|
||||
},
|
||||
],
|
||||
}),
|
||||
toDataFrame({
|
||||
@@ -402,6 +417,11 @@ describe('dataFrameToLogsModel', () => {
|
||||
level: 'dbug',
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'id',
|
||||
type: FieldType.string,
|
||||
values: ['1'],
|
||||
},
|
||||
],
|
||||
}),
|
||||
toDataFrame({
|
||||
@@ -422,6 +442,11 @@ describe('dataFrameToLogsModel', () => {
|
||||
level: 'err',
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'id',
|
||||
type: FieldType.string,
|
||||
values: ['2', '3'],
|
||||
},
|
||||
],
|
||||
}),
|
||||
];
|
||||
@@ -477,4 +502,98 @@ describe('dataFrameToLogsModel', () => {
|
||||
const logsModel = dataFrameToLogsModel(series, 0, 'utc');
|
||||
expect(logsModel.rows[0].uid).toBe('0');
|
||||
});
|
||||
|
||||
it('given multiple series with equal ids should return expected logs model', () => {
|
||||
const series: DataFrame[] = [
|
||||
toDataFrame({
|
||||
fields: [
|
||||
{
|
||||
name: 'ts',
|
||||
type: FieldType.time,
|
||||
values: ['1970-01-01T00:00:00Z'],
|
||||
},
|
||||
{
|
||||
name: 'line',
|
||||
type: FieldType.string,
|
||||
values: ['WARN boooo 1'],
|
||||
labels: {
|
||||
foo: 'bar',
|
||||
baz: '1',
|
||||
level: 'dbug',
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'id',
|
||||
type: FieldType.string,
|
||||
values: ['0'],
|
||||
},
|
||||
],
|
||||
}),
|
||||
toDataFrame({
|
||||
fields: [
|
||||
{
|
||||
name: 'ts',
|
||||
type: FieldType.time,
|
||||
values: ['1970-01-01T00:00:01Z'],
|
||||
},
|
||||
{
|
||||
name: 'line',
|
||||
type: FieldType.string,
|
||||
values: ['WARN boooo 2'],
|
||||
labels: {
|
||||
foo: 'bar',
|
||||
baz: '2',
|
||||
level: 'dbug',
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'id',
|
||||
type: FieldType.string,
|
||||
values: ['1'],
|
||||
},
|
||||
],
|
||||
}),
|
||||
toDataFrame({
|
||||
fields: [
|
||||
{
|
||||
name: 'ts',
|
||||
type: FieldType.time,
|
||||
values: ['1970-01-01T00:00:01Z'],
|
||||
},
|
||||
{
|
||||
name: 'line',
|
||||
type: FieldType.string,
|
||||
values: ['WARN boooo 2'],
|
||||
labels: {
|
||||
foo: 'bar',
|
||||
baz: '2',
|
||||
level: 'dbug',
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'id',
|
||||
type: FieldType.string,
|
||||
values: ['1'],
|
||||
},
|
||||
],
|
||||
}),
|
||||
];
|
||||
const logsModel = dataFrameToLogsModel(series, 0, 'utc');
|
||||
expect(logsModel.hasUniqueLabels).toBeTruthy();
|
||||
expect(logsModel.rows).toHaveLength(2);
|
||||
expect(logsModel.rows).toMatchObject([
|
||||
{
|
||||
entry: 'WARN boooo 1',
|
||||
labels: { foo: 'bar' },
|
||||
logLevel: LogLevel.debug,
|
||||
uniqueLabels: { baz: '1' },
|
||||
},
|
||||
{
|
||||
entry: 'WARN boooo 2',
|
||||
labels: { foo: 'bar' },
|
||||
logLevel: LogLevel.debug,
|
||||
uniqueLabels: { baz: '2' },
|
||||
},
|
||||
]);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user