|
@@ -1,11 +1,11 @@
|
|
|
-import { SeriesData, FieldType, LogsModel, LogsMetaKind, LogsDedupStrategy, LogLevel } from '@grafana/ui';
|
|
|
|
|
|
|
+import { DataFrame, FieldType, LogsModel, LogsMetaKind, LogsDedupStrategy, LogLevel } from '@grafana/ui';
|
|
|
import {
|
|
import {
|
|
|
dedupLogRows,
|
|
dedupLogRows,
|
|
|
calculateFieldStats,
|
|
calculateFieldStats,
|
|
|
calculateLogsLabelStats,
|
|
calculateLogsLabelStats,
|
|
|
getParser,
|
|
getParser,
|
|
|
LogsParsers,
|
|
LogsParsers,
|
|
|
- seriesDataToLogsModel,
|
|
|
|
|
|
|
+ dataFrameToLogsModel,
|
|
|
} from '../logs_model';
|
|
} from '../logs_model';
|
|
|
|
|
|
|
|
describe('dedupLogRows()', () => {
|
|
describe('dedupLogRows()', () => {
|
|
@@ -337,23 +337,23 @@ const emptyLogsModel = {
|
|
|
series: [],
|
|
series: [],
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
-describe('seriesDataToLogsModel', () => {
|
|
|
|
|
|
|
+describe('dataFrameToLogsModel', () => {
|
|
|
it('given empty series should return empty logs model', () => {
|
|
it('given empty series should return empty logs model', () => {
|
|
|
- expect(seriesDataToLogsModel([] as SeriesData[], 0)).toMatchObject(emptyLogsModel);
|
|
|
|
|
|
|
+ expect(dataFrameToLogsModel([] as DataFrame[], 0)).toMatchObject(emptyLogsModel);
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
it('given series without correct series name should return empty logs model', () => {
|
|
it('given series without correct series name should return empty logs model', () => {
|
|
|
- const series: SeriesData[] = [
|
|
|
|
|
|
|
+ const series: DataFrame[] = [
|
|
|
{
|
|
{
|
|
|
fields: [],
|
|
fields: [],
|
|
|
rows: [],
|
|
rows: [],
|
|
|
},
|
|
},
|
|
|
];
|
|
];
|
|
|
- expect(seriesDataToLogsModel(series, 0)).toMatchObject(emptyLogsModel);
|
|
|
|
|
|
|
+ expect(dataFrameToLogsModel(series, 0)).toMatchObject(emptyLogsModel);
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
it('given series without a time field should return empty logs model', () => {
|
|
it('given series without a time field should return empty logs model', () => {
|
|
|
- const series: SeriesData[] = [
|
|
|
|
|
|
|
+ const series: DataFrame[] = [
|
|
|
{
|
|
{
|
|
|
fields: [
|
|
fields: [
|
|
|
{
|
|
{
|
|
@@ -364,11 +364,11 @@ describe('seriesDataToLogsModel', () => {
|
|
|
rows: [],
|
|
rows: [],
|
|
|
},
|
|
},
|
|
|
];
|
|
];
|
|
|
- expect(seriesDataToLogsModel(series, 0)).toMatchObject(emptyLogsModel);
|
|
|
|
|
|
|
+ expect(dataFrameToLogsModel(series, 0)).toMatchObject(emptyLogsModel);
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
it('given series without a string field should return empty logs model', () => {
|
|
it('given series without a string field should return empty logs model', () => {
|
|
|
- const series: SeriesData[] = [
|
|
|
|
|
|
|
+ const series: DataFrame[] = [
|
|
|
{
|
|
{
|
|
|
fields: [
|
|
fields: [
|
|
|
{
|
|
{
|
|
@@ -379,11 +379,11 @@ describe('seriesDataToLogsModel', () => {
|
|
|
rows: [],
|
|
rows: [],
|
|
|
},
|
|
},
|
|
|
];
|
|
];
|
|
|
- expect(seriesDataToLogsModel(series, 0)).toMatchObject(emptyLogsModel);
|
|
|
|
|
|
|
+ expect(dataFrameToLogsModel(series, 0)).toMatchObject(emptyLogsModel);
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
it('given one series should return expected logs model', () => {
|
|
it('given one series should return expected logs model', () => {
|
|
|
- const series: SeriesData[] = [
|
|
|
|
|
|
|
+ const series: DataFrame[] = [
|
|
|
{
|
|
{
|
|
|
labels: {
|
|
labels: {
|
|
|
filename: '/var/log/grafana/grafana.log',
|
|
filename: '/var/log/grafana/grafana.log',
|
|
@@ -414,7 +414,7 @@ describe('seriesDataToLogsModel', () => {
|
|
|
},
|
|
},
|
|
|
},
|
|
},
|
|
|
];
|
|
];
|
|
|
- const logsModel = seriesDataToLogsModel(series, 0);
|
|
|
|
|
|
|
+ const logsModel = dataFrameToLogsModel(series, 0);
|
|
|
expect(logsModel.hasUniqueLabels).toBeFalsy();
|
|
expect(logsModel.hasUniqueLabels).toBeFalsy();
|
|
|
expect(logsModel.rows).toHaveLength(2);
|
|
expect(logsModel.rows).toHaveLength(2);
|
|
|
expect(logsModel.rows).toMatchObject([
|
|
expect(logsModel.rows).toMatchObject([
|
|
@@ -449,7 +449,7 @@ describe('seriesDataToLogsModel', () => {
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
it('given one series without labels should return expected logs model', () => {
|
|
it('given one series without labels should return expected logs model', () => {
|
|
|
- const series: SeriesData[] = [
|
|
|
|
|
|
|
+ const series: DataFrame[] = [
|
|
|
{
|
|
{
|
|
|
fields: [
|
|
fields: [
|
|
|
{
|
|
{
|
|
@@ -468,7 +468,7 @@ describe('seriesDataToLogsModel', () => {
|
|
|
rows: [['1970-01-01T00:00:01Z', 'WARN boooo', 'dbug']],
|
|
rows: [['1970-01-01T00:00:01Z', 'WARN boooo', 'dbug']],
|
|
|
},
|
|
},
|
|
|
];
|
|
];
|
|
|
- const logsModel = seriesDataToLogsModel(series, 0);
|
|
|
|
|
|
|
+ const logsModel = dataFrameToLogsModel(series, 0);
|
|
|
expect(logsModel.rows).toHaveLength(1);
|
|
expect(logsModel.rows).toHaveLength(1);
|
|
|
expect(logsModel.rows).toMatchObject([
|
|
expect(logsModel.rows).toMatchObject([
|
|
|
{
|
|
{
|
|
@@ -481,7 +481,7 @@ describe('seriesDataToLogsModel', () => {
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
it('given multiple series should return expected logs model', () => {
|
|
it('given multiple series should return expected logs model', () => {
|
|
|
- const series: SeriesData[] = [
|
|
|
|
|
|
|
+ const series: DataFrame[] = [
|
|
|
{
|
|
{
|
|
|
labels: {
|
|
labels: {
|
|
|
foo: 'bar',
|
|
foo: 'bar',
|
|
@@ -520,7 +520,7 @@ describe('seriesDataToLogsModel', () => {
|
|
|
rows: [['1970-01-01T00:00:00Z', 'INFO 1'], ['1970-01-01T00:00:02Z', 'INFO 2']],
|
|
rows: [['1970-01-01T00:00:00Z', 'INFO 1'], ['1970-01-01T00:00:02Z', 'INFO 2']],
|
|
|
},
|
|
},
|
|
|
];
|
|
];
|
|
|
- const logsModel = seriesDataToLogsModel(series, 0);
|
|
|
|
|
|
|
+ const logsModel = dataFrameToLogsModel(series, 0);
|
|
|
expect(logsModel.hasUniqueLabels).toBeTruthy();
|
|
expect(logsModel.hasUniqueLabels).toBeTruthy();
|
|
|
expect(logsModel.rows).toHaveLength(3);
|
|
expect(logsModel.rows).toHaveLength(3);
|
|
|
expect(logsModel.rows).toMatchObject([
|
|
expect(logsModel.rows).toMatchObject([
|