Skip to content

Commit 8163511

Browse files
committed
Keep the time field in the datasource for now.
1 parent d37dfd1 commit 8163511

File tree

7 files changed

+17
-3
lines changed

7 files changed

+17
-3
lines changed

src/components/QueryEditor/ElasticsearchQueryContext.test.tsx

+3-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ const query: ElasticsearchQuery = {
1818

1919
describe('ElasticsearchQueryContext', () => {
2020
it('Should call onChange and onRunQuery with the default query when the query is empty', () => {
21-
const datasource = {} as ElasticDatasource;
21+
const datasource = { timeField: 'TIMEFIELD' } as ElasticDatasource;
2222
const onChange = jest.fn();
2323
const onRunQuery = jest.fn();
2424

@@ -38,6 +38,8 @@ describe('ElasticsearchQueryContext', () => {
3838
expect(changedQuery.alias).toBeDefined();
3939
expect(changedQuery.metrics).toBeDefined();
4040
expect(changedQuery.bucketAggs).toBeDefined();
41+
// Should also set timeField to the configured `timeField` option in datasource configuration
42+
expect(changedQuery.timeField).toBe(datasource.timeField);
4143

4244
expect(onRunQuery).toHaveBeenCalled();
4345
});

src/components/QueryEditor/ElasticsearchQueryContext.tsx

+3-2
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,12 @@ export const ElasticsearchProvider = ({
5050
query: queryReducer,
5151
alias: aliasPatternReducer,
5252
metrics: metricsReducer,
53-
bucketAggs: createBucketAggsReducer(),
53+
bucketAggs: createBucketAggsReducer(datasource.timeField),
5454
});
5555

5656
const dispatch = useStatelessReducer(
57-
(newState) => onStateChange({ ...query, ...newState }),
57+
// timeField is part of the query model, but its value is always set to be the one from datasource settings.
58+
(newState) => onStateChange({ ...query, ...newState, timeField: datasource.timeField }),
5859
query,
5960
reducer
6061
);

src/configuration/mocks.ts

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { QuickwitOptions } from 'quickwit';
44

55
export function createDefaultConfigOptions(): DataSourceSettings<QuickwitOptions> {
66
return createDatasourceSettings<QuickwitOptions>({
7+
timeField: 'timestamp',
78
logMessageField: 'test.message',
89
logLevelField: 'test.level',
910
index: 'test',

src/dataquery.gen.ts

+4
Original file line numberDiff line numberDiff line change
@@ -395,6 +395,10 @@ export interface Elasticsearch extends DataQuery {
395395
* Lucene query
396396
*/
397397
query?: string;
398+
/**
399+
* Name of time field
400+
*/
401+
timeField?: string;
398402
}
399403

400404
export const defaultElasticsearch: Partial<Elasticsearch> = {

src/datasource.ts

+4
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ export class QuickwitDataSource
7070
DataSourceWithQueryImportSupport<ElasticsearchQuery>
7171
{
7272
index: string;
73+
timeField: string;
7374
logMessageField?: string;
7475
logLevelField?: string;
7576
dataLinks: DataLinkConfig[];
@@ -84,6 +85,7 @@ export class QuickwitDataSource
8485
super(instanceSettings);
8586
const settingsData = instanceSettings.jsonData || ({} as QuickwitOptions);
8687
this.index = settingsData.index || '';
88+
this.timeField = ''
8789
this.logMessageField = settingsData.logMessageField || '';
8890
this.logLevelField = settingsData.logLevelField || '';
8991
this.dataLinks = settingsData.dataLinks || [];
@@ -175,6 +177,7 @@ export class QuickwitDataSource
175177
return undefined;
176178
}
177179
const bucketAggs: BucketAggregation[] = [];
180+
const timeField = this.timeField ?? 'timestamp';
178181

179182
if (this.logLevelField) {
180183
bucketAggs.push({
@@ -197,6 +200,7 @@ export class QuickwitDataSource
197200
min_doc_count: '0',
198201
trimEdges: '0',
199202
},
203+
field: timeField,
200204
});
201205

202206
return {

src/mocks.ts

+1
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ export function createElasticDatasource(
3838
access: 'proxy',
3939
url: '',
4040
jsonData: {
41+
timeField: '',
4142
index: '',
4243
...jsonData,
4344
},

src/quickwit.ts

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { DataSourceJsonData } from "@grafana/data";
22
import { DataLinkConfig } from "./types";
33

44
export interface QuickwitOptions extends DataSourceJsonData {
5+
timeField: string;
56
interval?: Interval;
67
logMessageField?: string;
78
logLevelField?: string;

0 commit comments

Comments
 (0)