Kairosdb仅接受来自节点应用的获取请求

时间:2019-01-23 20:18:37

标签: javascript node.js node-fetch kairosdb kairos-api

我有一个在笔记本电脑A上运行kairosDB的VM,该VM有两个IP: 192.168.119.132:从笔记本电脑A访问它 192.168.1.151:从笔记本电脑B进行访问。

我可以从两台笔记本电脑访问Web应用程序,而不会出现:8080的任何问题。

  • 笔记本电脑A:如果我执行代码中显示的POST / GET请求,则一切正常。 (使用IP 192.168.119.132)

  • 笔记本电脑B:仅GET请求有效! POST请求返回代码200,但使用POST时未将任何点添加到数据库中。

请帮助使POST请求生效的任何帮助?

const fetch = require("node-fetch");
let query = {
  "metrics": [{
    "tags": {},
    "name": "matric1",
    "group_by": [{
      "name": "tag",
      "tags": [
        "car_type",
        "host",
        "mode_type"
      ]
    }]
  }],
  "plugins": [],
  "cache_time": 0,
  "start_relative": {
    "value": "20",
    "unit": "seconds"
  }
};
let dataPoint = [{
  "name": "matric1",
  "type": "long",
  "value": 88,
  "timestamp": Math.floor(Date.now()),
  "tags": {
    "car_type": "TEST",
    "host": "TEST",
    "mode_type": "TEST"
  }
}];

function fetchData(query) {
  fetch('http://192.168.1.151:8080/api/v1/datapoints/query?query=' + JSON.stringify(query), {
      method: 'GET'
    })
    .then(res => res.json()) // expecting a json response
    .then(json => console.log(json));
}

function addDataPoint(dataPoint) {
  fetch('http://192.168.1.151:8080/api/v1/datapoints', {
      method: 'POST',
      body: JSON.stringify(dataPoint),
      headers: {
        'Content-Type': 'application/json'
      }
    })
    .then(res => console.log("successfully added !"))
}

addDataPoint(dataPoint);

fetchData(query);

1 个答案:

答案 0 :(得分:0)

您是否检查了笔记本电脑是否已同步?您按当前日期/时间推送并查询最近20秒。

相对日期查询由服务器决定。

因此,如果两台计算机之间的时间差超过20秒,那么您的问题就不在查询时间范围内。