Menu

Important: This documentation is about an older version. It's relevant only to the release noted, many of the features and functions have been updated or replaced. Please view the current version.

Enterprise Open source

DataSourceApi class

The main data source abstraction interface, represents an instance of a data source

Although this is a class, datasource implementations do not *yet* need to extend it. As such, we can not yet add functions with default implementations.

Signature

typescript
export declare abstract class DataSourceApi<TQuery extends DataQuery = DataQuery, TOptions extends DataSourceJsonData = DataSourceJsonData> 

Import

typescript
import { DataSourceApi } from '@grafana/data';

Constructors

ConstructorModifiersDescription
constructor(instanceSettings)Constructs a new instance of the DataSourceApi class

Properties

PropertyModifiersTypeDescription
componentsDataSourcePluginComponents<DataSourceApi<TQuery, TOptions>, TQuery, TOptions>Set after constructor call, as the data source instance is the most common thing to pass around we attach the components to this instance for easy access
getLogRowContext<TContextQueryOptions extends {}>(row: LogRowModel, options?: TContextQueryOptions) => Promise<DataQueryResponse>Retrieve context for a given log row
idnumberSet in constructor
init() => voidInitializes a datasource after instantiation
intervalstringmin interval range
languageProvideranyUsed in explore
metaDataSourcePluginMetastatic information about the datasource
namestringSet in constructor

Methods

MethodModifiersDescription
annotationQuery(options)Can be optionally implemented to allow datasource to be a source of annotations for dashboard. To be visible in the annotation editor annotations capability also needs to be enabled in plugin.json.
getHighlighterExpression(query)Used in explore
getQueryDisplayText(query)Convert a query to a simple text string
getQueryHints(query, results, rest)Get hints for query improvements
getTagKeys(options)Get tag keys for adhoc filters
getTagValues(options)Get tag values for adhoc filters
getVersion(optionalOptions)
importQueries(queries, originMeta)Imports queries from a different datasource
interpolateVariablesInQueries(queries, scopedVars)
metricFindQuery(query, options)Variable query action.
modifyQuery(query, action)Used in explore
query(request)Query for data, and optionally stream results
showContextToggle(row)
targetContainsTemplate(query)Used by alerting to check if query contains template variables
testDatasource()Test & verify datasource settings & connection details

constructor(instanceSettings)

Constructs a new instance of the DataSourceApi class

Signature

typescript
constructor(instanceSettings: DataSourceInstanceSettings<TOptions>);

Parameters

ParameterTypeDescription
instanceSettingsDataSourceInstanceSettings<TOptions>

components property

Set after constructor call, as the data source instance is the most common thing to pass around we attach the components to this instance for easy access

Signature

typescript
components?: DataSourcePluginComponents<DataSourceApi<TQuery, TOptions>, TQuery, TOptions>;

getLogRowContext property

Retrieve context for a given log row

Signature

typescript
getLogRowContext?: <TContextQueryOptions extends {}>(row: LogRowModel, options?: TContextQueryOptions) => Promise<DataQueryResponse>;

id property

Set in constructor

Signature

typescript
readonly id: number;

init property

Initializes a datasource after instantiation

Signature

typescript
init?: () => void;

interval property

min interval range

Signature

typescript
interval?: string;

languageProvider property

Used in explore

Signature

typescript
languageProvider?: any;

meta property

static information about the datasource

Signature

typescript
meta: DataSourcePluginMeta;

name property

Set in constructor

Signature

typescript
readonly name: string;

annotationQuery method

Can be optionally implemented to allow datasource to be a source of annotations for dashboard. To be visible in the annotation editor annotations capability also needs to be enabled in plugin.json.

Signature

typescript
annotationQuery?(options: AnnotationQueryRequest<TQuery>): Promise<AnnotationEvent[]>;

Parameters

ParameterTypeDescription
optionsAnnotationQueryRequest<TQuery>

Returns:

Promise<AnnotationEvent[]>

getHighlighterExpression method

Used in explore

Signature

typescript
getHighlighterExpression?(query: TQuery): string[];

Parameters

ParameterTypeDescription
queryTQuery

Returns:

string[]

getQueryDisplayText method

Convert a query to a simple text string

Signature

typescript
getQueryDisplayText?(query: TQuery): string;

Parameters

ParameterTypeDescription
queryTQuery

Returns:

string

getQueryHints method

Get hints for query improvements

Signature

typescript
getQueryHints?(query: TQuery, results: any[], ...rest: any): QueryHint[];

Parameters

ParameterTypeDescription
queryTQuery
resultsany[]
restany

Returns:

QueryHint[]

getTagKeys method

Get tag keys for adhoc filters

Signature

typescript
getTagKeys?(options?: any): Promise<MetricFindValue[]>;

Parameters

ParameterTypeDescription
optionsany

Returns:

Promise<MetricFindValue[]>

getTagValues method

Get tag values for adhoc filters

Signature

typescript
getTagValues?(options: any): Promise<MetricFindValue[]>;

Parameters

ParameterTypeDescription
optionsany

Returns:

Promise<MetricFindValue[]>

getVersion method

Signature

typescript
getVersion?(optionalOptions?: any): Promise<string>;

Parameters

ParameterTypeDescription
optionalOptionsany

Returns:

Promise<string>

importQueries method

Imports queries from a different datasource

Signature

typescript
importQueries?(queries: TQuery[], originMeta: PluginMeta): Promise<TQuery[]>;

Parameters

ParameterTypeDescription
queriesTQuery[]
originMetaPluginMeta

Returns:

Promise<TQuery[]>

interpolateVariablesInQueries method

Signature

typescript
interpolateVariablesInQueries?(queries: TQuery[], scopedVars: ScopedVars | {}): TQuery[];

Parameters

ParameterTypeDescription
queriesTQuery[]
scopedVarsScopedVars | {}

Returns:

TQuery[]

metricFindQuery method

Variable query action.

Signature

typescript
metricFindQuery?(query: any, options?: any): Promise<MetricFindValue[]>;

Parameters

ParameterTypeDescription
queryany
optionsany

Returns:

Promise<MetricFindValue[]>

modifyQuery method

Used in explore

Signature

typescript
modifyQuery?(query: TQuery, action: QueryFixAction): TQuery;

Parameters

ParameterTypeDescription
queryTQuery
actionQueryFixAction

Returns:

TQuery

query method

Query for data, and optionally stream results

Signature

typescript
abstract query(request: DataQueryRequest<TQuery>): Promise<DataQueryResponse> | Observable<DataQueryResponse>;

Parameters

ParameterTypeDescription
requestDataQueryRequest<TQuery>

Returns:

Promise<DataQueryResponse> | Observable<DataQueryResponse>

showContextToggle method

Signature

typescript
showContextToggle?(row?: LogRowModel): boolean;

Parameters

ParameterTypeDescription
rowLogRowModel

Returns:

boolean

targetContainsTemplate method

Used by alerting to check if query contains template variables

Signature

typescript
targetContainsTemplate?(query: TQuery): boolean;

Parameters

ParameterTypeDescription
queryTQuery

Returns:

boolean

testDatasource method

Test & verify datasource settings & connection details

Signature

typescript
abstract testDatasource(): Promise<any>;

Returns:

Promise<any>