【问题标题】:Developing Grafana Datasource开发 Grafana 数据源
【发布时间】:2017-07-28 14:40:52
【问题描述】:

我想构建自己的数据源以在 grafana 图中显示数据。现在,我在 grafana 中测试了伪造的简单 json,以了解幕后的工作原理。我有这段代码,它查询我想在 grafana 中显示的数据:

query(options) {
    var query = this.buildQueryParameters(options);
    query.targets = query.targets.filter(t => !t.hide);

    if (query.targets.length <= 0) {
      return this.q.when({data: []});
    }

    console.log('query Return: ');
    console.log(this.doRequest({url: this.url + '/query',data: query,method: 'POST'}));
    console.log('\n');

    var teste = this.doRequest({
      url: this.url + '/query',
      data: query,
      method: 'POST'
    });

    console.log('teste Return: ');
    console.log(teste);
    console.log('\n');
    return teste;
  }

而且,我收到了回报: result of console.log(teste)

例如,我如何访问 teste.$$state.value.data["0"].datapoints["0"]?

如果我尝试访问 teste 或 teste.$$state,没关系。但是当我尝试 teste.$$state.pur 或 teste.$$state 树中的任何属性时,我得到了 undefined 响应。

【问题讨论】:

    标签: javascript datasource grafana


    【解决方案1】:

    我很确定您的请求是异步的,因此要检查结果,您需要使用回调:

    var teste = this.doRequest({
        url: this.url + '/query',
        data: query,
        method: 'POST'
    }, function(result){
        console.log(result) <----- 
    });
    

    then,如果返回 Promise:

    var teste = this.doRequest({
        url: this.url + '/query',
        data: query,
        method: 'POST'
    }).then(function(result){
        console.log(result) <-----
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-15
      • 1970-01-01
      • 1970-01-01
      • 2019-06-10
      • 2021-03-20
      • 1970-01-01
      • 2016-11-08
      • 1970-01-01
      相关资源
      最近更新 更多