Kapacitor .httpPost()到url不发送数据

时间:2019-03-14 16:59:19

标签: influxdb kapacitor

我有一个influxdb,可以插入它:

INSERT XXX_Pbatt_live,gateway=UTXce9ef5 value=102

在单独的Kapacitor服务器上,我有一个TICKScript:

dbrp "hems"."autogen"

stream
   |from()
       .measurement('XXX_Pbatt_live')
       .log('/tmp/alerts.log')
   |httpPost('http://127.0.0.1:3000')

在同一台Kapacitor服务器上,我有一个nodejs脚本“ testsocket.js”(只是为了测试是否发生了数据发布):

const http = require('http');
const server = http.createServer((req, res) => {
    if (req.method === 'POST') {
        console.log('POST');
    }
    else {
        console.log('NOT POST');
    }
});
server.listen(3000);

但是,我的问题是我认为httpPost方法从不发送数据。例如,我尝试使用“ wget http://127.0.0.1:3000”来测试连接,并且它以为可能是网络问题而起作用。我尝试使用post()和post()。endpoint('...')。 log命令有效,我想我可以看到它位于kapacitor服务器上(不是100%可以肯定,因为日志缺少足够的详细信息)。我完成了任务的“重新加载”,以为它可能没有刷新脚本。

我测试的方式是:

  1. 在kapacitor服务器上运行“ kapacitor记录流-task test_alert1 -duration 60s”,以便它监听来自Influxdb的任何内容。
  2. 运行“ node testsocket.js”,以便它监听来自Kapacitor服务器的任何内容。
  3. 运行插入命令:“ INSERT XXX_Pbatt_live,gateway = UTXce9ef5 value = 102”,因此这应将某些内容回发到Kapacitor服务器,然后再通过httpPost粘贴至nodejs脚本。
  4. 这时,我应该期望从节点脚本中看到“ POST”或“ NOT POST”。但我也看不到。

我在Influxdb服务器上设置了一个订阅,我知道那边正在工作,因为该数据正在记录在“ /tmp/alerts.log”日志文件中。

我是在遗漏一些基本知识还是在遗漏某些东西。非常感谢任何帮助或指针!

0 个答案:

没有答案