diff --git a/docs/sources/features/datasources/opentsdb.md b/docs/sources/features/datasources/opentsdb.md index 19bc7c810a1..5494e8f2521 100644 --- a/docs/sources/features/datasources/opentsdb.md +++ b/docs/sources/features/datasources/opentsdb.md @@ -106,3 +106,8 @@ datasources: tsdbResolution: 1 tsdbVersion: 1 ``` + +## Lookup limits + +By default, at most 1000 records are looked up from OpenTSDB. +You can change this by modifying the "Lookup Limit" in the OpenTSDB settings page. diff --git a/public/app/plugins/datasource/opentsdb/components/OpenTsdbDetails.tsx b/public/app/plugins/datasource/opentsdb/components/OpenTsdbDetails.tsx index 52fd75d2374..12c07bdcf44 100644 --- a/public/app/plugins/datasource/opentsdb/components/OpenTsdbDetails.tsx +++ b/public/app/plugins/datasource/opentsdb/components/OpenTsdbDetails.tsx @@ -1,5 +1,5 @@ -import React from 'react'; -import { FormLabel, Select } from '@grafana/ui'; +import React, { SyntheticEvent } from 'react'; +import { FormLabel, Select, Input } from '@grafana/ui'; import { DataSourceSettings, SelectableValue } from '@grafana/data'; import { OpenTsdbOptions } from '../types'; @@ -30,7 +30,7 @@ export const OpenTsdbDetails = (props: Props) => { ); }; -const onChangeHandler = (key: keyof OpenTsdbOptions, value: Props['value'], onChange: Props['onChange']) => ( +const onSelectChangeHandler = (key: keyof OpenTsdbOptions, value: Props['value'], onChange: Props['onChange']) => ( newValue: SelectableValue ) => { onChange({ @@ -58,3 +66,15 @@ const onChangeHandler = (key: keyof OpenTsdbOptions, value: Props['value'], onCh }, }); }; + +const onInputChangeHandler = (key: keyof OpenTsdbOptions, value: Props['value'], onChange: Props['onChange']) => ( + event: SyntheticEvent +) => { + onChange({ + ...value, + jsonData: { + ...value.jsonData, + [key]: event.currentTarget.value, + }, + }); +}; diff --git a/public/app/plugins/datasource/opentsdb/datasource.ts b/public/app/plugins/datasource/opentsdb/datasource.ts index 27bfbd8f42f..7219f775283 100644 --- a/public/app/plugins/datasource/opentsdb/datasource.ts +++ b/public/app/plugins/datasource/opentsdb/datasource.ts @@ -13,6 +13,7 @@ export default class OpenTsDatasource extends DataSourceApi { + return this._get('/api/suggest', { type, q: query, max: this.lookupLimit }).then((result: any) => { return result.data; }); } @@ -205,7 +207,7 @@ export default class OpenTsDatasource extends DataSourceApi { + return this._get('/api/search/lookup', { m: m, limit: this.lookupLimit }).then((result: any) => { result = result.data.results; const tagvs: any[] = []; _.each(result, r => { diff --git a/public/app/plugins/datasource/opentsdb/types.ts b/public/app/plugins/datasource/opentsdb/types.ts index 37c7de81f44..0fa868ee750 100644 --- a/public/app/plugins/datasource/opentsdb/types.ts +++ b/public/app/plugins/datasource/opentsdb/types.ts @@ -5,4 +5,5 @@ export interface OpenTsdbQuery extends DataQuery {} export interface OpenTsdbOptions extends DataSourceJsonData { tsdbVersion: number; tsdbResolution: number; + lookupLimit: number; }