Grafana前端源码解读 - DataSourceSrv

98 阅读1分钟

本篇文章使用的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 => { ... }