diff --git a/pkg/plugin/settings.go b/pkg/plugin/settings.go index c06e770..ed99e18 100644 --- a/pkg/plugin/settings.go +++ b/pkg/plugin/settings.go @@ -172,5 +172,11 @@ func LoadSettings(config backend.DataSourceInstanceSettings) (settings Settings, } } + if jsonData["timeInterval"] != nil { + if timeInterval, ok := jsonData["timeInterval"].(string); ok { + settings.TimeInterval = timeInterval + } + } + return settings, settings.isValid() } diff --git a/src/data/QuestDbDatasource.ts b/src/data/QuestDbDatasource.ts index 4beef94..f43d397 100644 --- a/src/data/QuestDbDatasource.ts +++ b/src/data/QuestDbDatasource.ts @@ -24,11 +24,13 @@ export class Datasource extends DataSourceWithBackend; adHocFilter: AdHocFilter; skipAdHocFilter = false; // don't apply adhoc filters to the query + interval?: string; constructor(instanceSettings: DataSourceInstanceSettings) { super(instanceSettings); this.settings = instanceSettings; this.adHocFilter = new AdHocFilter(); + this.interval = instanceSettings.jsonData?.timeInterval; } async metricFindQuery(query: QuestDBQuery | string, options: any) { diff --git a/src/selectors.ts b/src/selectors.ts index bcd9e86..0179131 100644 --- a/src/selectors.ts +++ b/src/selectors.ts @@ -94,6 +94,11 @@ export const Components = { tooltip: 'The maximum amount of time (in seconds) a connection may be reused. If set to 0, connections are reused forever.', }, + MinInterval: { + label: 'Min time interval', + tooltip: + 'A lower limit for the auto-calculated interval used by $__sampleByInterval macro. Recommended to be set to write frequency, for example 1s if your data is written every second. Valid time identifiers are: ms, s, m, h, d', + }, }, QueryEditor: { CodeEditor: { diff --git a/src/types.ts b/src/types.ts index c6c253c..77a7576 100644 --- a/src/types.ts +++ b/src/types.ts @@ -29,6 +29,7 @@ export interface QuestDBConfig extends DataSourceJsonData { maxOpenConnections?: number; maxIdleConnections?: number; maxConnectionLifetime?: number; + timeInterval?: string; tlsMode?: PostgresTLSModes; tlsConfigurationMethod?: PostgresTLSMethods; diff --git a/src/views/QuestDBConfigEditor.tsx b/src/views/QuestDBConfigEditor.tsx index 331c3d8..0496baf 100644 --- a/src/views/QuestDBConfigEditor.tsx +++ b/src/views/QuestDBConfigEditor.tsx @@ -262,6 +262,19 @@ export const ConfigEditor: React.FC = (props) => { type="number" /> + + +