【问题标题】:Kairosdb accepts only get request from node appKairosdb 仅接受来自节点应用程序的获取请求
【发布时间】:2019-06-17 12:02:59
【问题描述】:

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

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

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

  • 笔记本电脑 B:只有 GET 请求有效! post请求返回码200,但是使用POST时没有点加到db中。

请帮助使 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);

【问题讨论】:

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


    【解决方案1】:

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

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

    因此,如果两台机器之间有 20 多秒的差异,那么您的点可能不在查询时间范围内。

    【讨论】:

      猜你喜欢
      • 2014-05-10
      • 1970-01-01
      • 2018-10-15
      • 1970-01-01
      • 1970-01-01
      • 2020-07-27
      • 2019-10-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多