From e9bcef67fc85d9cd10edd29f70ab2675c6e564ae Mon Sep 17 00:00:00 2001 From: emrberk Date: Mon, 18 Aug 2025 23:30:11 +0300 Subject: [PATCH] add a field to plugin config editor to set default min time interval --- pkg/plugin/settings.go | 7 +++++++ src/data/QuestDbDatasource.ts | 2 ++ src/selectors.ts | 5 +++++ src/types.ts | 1 + src/views/QuestDBConfigEditor.tsx | 14 ++++++++++++++ 5 files changed, 29 insertions(+) diff --git a/pkg/plugin/settings.go b/pkg/plugin/settings.go index e202f45..92bee25 100644 --- a/pkg/plugin/settings.go +++ b/pkg/plugin/settings.go @@ -28,6 +28,7 @@ type Settings struct { MaxOpenConnections int64 `json:"maxOpenConnections,omitempty"` MaxIdleConnections int64 `json:"maxIdleConnections,omitempty"` MaxConnectionLifetime int64 `json:"maxConnectionLifetime,omitempty"` + TimeInterval string `json:"timeInterval,omitempty"` TlsMode string `json:"tlsMode"` ConfigurationMethod string `json:"tlsConfigurationMethod"` @@ -183,5 +184,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 f654a43..c85545f 100644 --- a/src/views/QuestDBConfigEditor.tsx +++ b/src/views/QuestDBConfigEditor.tsx @@ -263,6 +263,20 @@ export const ConfigEditor: React.FC = (props) => { /> + + + + {config.featureToggles['secureSocksDSProxyEnabled'] && gte(config.buildInfo.version, '10.0.0') && (