【问题标题】:How to get data in InfluxDB subscription end point?如何在 InfluxDB 订阅端点获取数据?
【发布时间】:2020-06-23 12:03:23
【问题描述】:

您好,我使用以下命令在InfluxDB 中创建了订阅 (http):

CREATE SUBSCRIPTION "test-data-update" ON "system_managment"."system_managment2d" DESTINATIONS ALL 'http://localhost:9001/ts/data-update'

并且在ExpressJs 端口9001 上运行的应用程序中添加了如下路由:

app.post("/ts/data-update/write", (req, res) => {
    console.log(">>influx data>>");
    console.log(req.body);
    res.sendStatus(200);
});

我以为我会在req.body 中获取所有数据,但我在正文中什么也没有。如何通过influxdb documentation 中提到的订阅获取数据。

我已经看到更多使用Kapacitor 的示例,但目前我们还没有计划使用Kapacitor

让我知道如何从InfluxDB 订阅端点获取更新的数据?还是应该是这样,我们已经从这个端点对InfluxDB进行了正常查询以获取数据?

【问题讨论】:

    标签: time-series influxdb subscription influxql influxdb-2


    【解决方案1】:

    遇到同样的问题,解决方法是使用请求对象监听数据事件。

    app.post("/ts/data-update/write",(req, res) => {
      logger.info('influx data>>');
      logger.info(req.headers);
      logger.info(req.body);
      req.on('data', (chunk) => {
        console.log(chunk.toString());
      });
      req.on('end', () => {
        res.sendStatus(200);
      });
    });
    
    • 看到标头的内容长度为正非零值,并且在使用 express 的请求正文中没有值。
    • 然后我在订阅中的指定端口上使用netcat 进行监听,该端口托管 TCP 服务器并在末尾包含内容。

    【讨论】:

      猜你喜欢
      • 2019-07-24
      • 2016-08-25
      • 1970-01-01
      • 2017-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-23
      • 2017-12-27
      相关资源
      最近更新 更多