-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdatasource.ts
47 lines (40 loc) · 1.1 KB
/
datasource.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import
{ DataSourceInstanceSettings
, DataQueryRequest
, DataQueryResponse
, CoreApp
} from '@grafana/data';
import
{ DataSourceWithBackend
, getTemplateSrv
} from '@grafana/runtime';
import
{ MyQuery
, MyDataSourceOptions
, DEFAULT_QUERY
} from './types';
import
{ Observable
} from 'rxjs';
export class DataSource extends DataSourceWithBackend<MyQuery, MyDataSourceOptions> {
constructor(instanceSettings: DataSourceInstanceSettings<MyDataSourceOptions>) {
super(instanceSettings);
this.getResource('constructor');
}
getDefaultQuery(coreApp: CoreApp): Partial<MyQuery> {
this.getResource('getDefaultQuery');
return DEFAULT_QUERY;
}
query(request: DataQueryRequest<MyQuery>): Observable<DataQueryResponse> {
this.getResource('query');
return super.query(request);
}
// https://grafana.com/docs/grafana/latest/dashboards/variables/add-template-variables/#global-variables
applyTemplateVariables(query: MyQuery) {//, scopedVars: ScopedVars)) {
const templateSrv = getTemplateSrv();
return {
...query,
surql: templateSrv.replace(query.surql),//, scopedVars),
};
}
}