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.
DataSourceWithBackend class
Extend this class to implement a data source plugin that is depending on the Grafana backend API.
Signature
declare class DataSourceWithBackend<TQuery extends DataQuery = DataQuery, TOptions extends DataSourceJsonData = DataSourceJsonData> extends DataSourceApi<TQuery, TOptions> Import
import { DataSourceWithBackend } from '@grafana/runtime';Constructors
| Constructor | Modifiers | Description |
|---|---|---|
| constructor(instanceSettings) | Constructs a new instance of the DataSourceWithBackend class |
Properties
| Property | Modifiers | Type | Description |
|---|---|---|---|
| streamOptionsProvider | StreamOptionsProvider<TQuery> | Optionally override the streaming behavior |
Methods
| Method | Modifiers | Description |
|---|---|---|
| applyTemplateVariables(query, scopedVars) | Override to apply template variables. The result is usually also TQuery, but sometimes this can be used to modify the query structure before sending to the backend.NOTE: if you do modify the structure or use template variables, alerting queries may not work as expected | |
| callHealthCheck() | Run the datasource healthcheck | |
| getResource(path, params) | Make a GET request to the datasource resource path | |
| interpolateVariablesInQueries(queries, scopedVars) | Apply template variables for explore | |
| postResource(path, body) | Send a POST request to the datasource resource path | |
| query(request) | Ideally final – any other implementation may not work as expected | |
| testDatasource() | Checks the plugin health see public/app/features/datasources/state/actions.ts for what needs to be returned here |
constructor(instanceSettings)
Constructs a new instance of the DataSourceWithBackend class
Signature
constructor(instanceSettings: DataSourceInstanceSettings<TOptions>);Parameters
| Parameter | Type | Description |
|---|---|---|
| instanceSettings | DataSourceInstanceSettings<TOptions> |
streamOptionsProvider property
Optionally override the streaming behavior
Signature
streamOptionsProvider: StreamOptionsProvider<TQuery>;applyTemplateVariables method
Override to apply template variables. The result is usually also TQuery, but sometimes this can be used to modify the query structure before sending to the backend.
NOTE: if you do modify the structure or use template variables, alerting queries may not work as expected
Signature
/** @virtual */
applyTemplateVariables(query: TQuery, scopedVars: ScopedVars): Record<string, any>;Parameters
| Parameter | Type | Description |
|---|---|---|
| query | TQuery | |
| scopedVars | ScopedVars |
Returns:
Record<string, any>
callHealthCheck method
Run the datasource healthcheck
Signature
callHealthCheck(): Promise<HealthCheckResult>;Returns:
Promise<HealthCheckResult>
getResource method
Make a GET request to the datasource resource path
Signature
getResource(path: string, params?: any): Promise<any>;Parameters
| Parameter | Type | Description |
|---|---|---|
| path | string | |
| params | any |
Returns:
Promise<any>
interpolateVariablesInQueries method
Apply template variables for explore
Signature
interpolateVariablesInQueries(queries: TQuery[], scopedVars: ScopedVars | {}): TQuery[];Parameters
| Parameter | Type | Description |
|---|---|---|
| queries | TQuery[] | |
| scopedVars | ScopedVars | {} |
Returns:
TQuery[]
postResource method
Send a POST request to the datasource resource path
Signature
postResource(path: string, body?: any): Promise<any>;Parameters
| Parameter | Type | Description |
|---|---|---|
| path | string | |
| body | any |
Returns:
Promise<any>
query method
Ideally final – any other implementation may not work as expected
Signature
query(request: DataQueryRequest<TQuery>): Observable<DataQueryResponse>;Parameters
| Parameter | Type | Description |
|---|---|---|
| request | DataQueryRequest<TQuery> |
Returns:
Observable<DataQueryResponse>
testDatasource method
Checks the plugin health see public/app/features/datasources/state/actions.ts for what needs to be returned here
Signature
testDatasource(): Promise<any>;Returns:
Promise<any>



