Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions pkg/plugin/settings.go
Original file line number Diff line number Diff line change
Expand Up @@ -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"`
Expand Down Expand Up @@ -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()
}
2 changes: 2 additions & 0 deletions src/data/QuestDbDatasource.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,13 @@ export class Datasource extends DataSourceWithBackend<QuestDBQuery, QuestDBConfi
settings: DataSourceInstanceSettings<QuestDBConfig>;
adHocFilter: AdHocFilter;
skipAdHocFilter = false; // don't apply adhoc filters to the query
interval?: string;

constructor(instanceSettings: DataSourceInstanceSettings<QuestDBConfig>) {
super(instanceSettings);
this.settings = instanceSettings;
this.adHocFilter = new AdHocFilter();
this.interval = instanceSettings.jsonData?.timeInterval;
}

async metricFindQuery(query: QuestDBQuery | string, options: any) {
Expand Down
5 changes: 5 additions & 0 deletions src/selectors.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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: {
Expand Down
1 change: 1 addition & 0 deletions src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ export interface QuestDBConfig extends DataSourceJsonData {
maxOpenConnections?: number;
maxIdleConnections?: number;
maxConnectionLifetime?: number;
timeInterval?: string;

tlsMode?: PostgresTLSModes;
tlsConfigurationMethod?: PostgresTLSMethods;
Expand Down
14 changes: 14 additions & 0 deletions src/views/QuestDBConfigEditor.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -263,6 +263,20 @@ export const ConfigEditor: React.FC<Props> = (props) => {
/>
</Field>

<Field
label={Components.ConfigEditor.MinInterval.label}
description={Components.ConfigEditor.MinInterval.tooltip}
>
<Input
name="timeInterval"
width={40}
value={jsonData.timeInterval || ''}
onChange={onUpdateDatasourceJsonDataOption(props, 'timeInterval')}
label={Components.ConfigEditor.MinInterval.label}
aria-label={Components.ConfigEditor.MinInterval.label}
/>
</Field>

{config.featureToggles['secureSocksDSProxyEnabled'] && gte(config.buildInfo.version, '10.0.0') && (
<Field
label={Components.ConfigEditor.SecureSocksProxy.label}
Expand Down