本篇文章使用的Grafana版本为v10.4.x版本
DataSourceSrv提供了DataSource(数据源)相关的通用方法。
初始化
文件:public/app/app.ts
// Init DataSourceSrv
const dataSourceSrv = new DatasourceSrv();
// config是conf/defaults.ini Grafana项目的统一配置文件
dataSourceSrv.init(config.datasources, config.defaultDatasource);
// 将实例写入@grafana/runtime中,方便其他地方Import使用
setDataSourceSrv(dataSourceSrv);
具体实现
文件:public/app/features/plugins/datasource_srv.ts
详细注释版:github.com/conanjunn/g…
export class DatasourceSrv implements DataSourceService {
// 初始化
init(){ ... }
// 获取数据源的配置信息。添加数据源时配置的那些东西。
getInstanceSettings(){ ... }
// 获取指定的DataSource信息,支持传入变量,名称,Uid。
get(){ ... }
// 加载DataSource
async loadDatasource(key: string) { ... }
// 列举出所有符合条件的DataSource
getList(filters: GetDataSourceListFilters = {}) { ... }
}
// 用于获取@grafana/runtime里存的datasourceSrv实例。实例在public/app/app.ts里进行实例化的。
export const getDatasourceSrv = (): DatasourceSrv => { ... }