1

我正在使用 Telegraf 的 inputs.http 插件,以便将数据从 API 导入到 influxdb。API 需要在 POST 请求的正文中使用时间过滤器,并使用该时间过滤器之间的数据进行响应。我想定期调用这个 API 并检索过去 10 秒左右的数据。所以我需要在 POST 请求的正文中包含当前时间戳。我可以将当​​前服务器时间戳以环境变量或命令行参数的形式传递给 telegraf.conf 吗?到目前为止,我尝试的是在 telegraf.conf 文件中使用环境变量,如下所示。那没起效。

[[inputs.http]]
  #URL
  urls = ["url"]

  #http method
  method = "POST"

  ## Optional HTTP headers
  headers = {"cache-control" =  "no-cache","content-type" =  "application/json"}

  ## HTTP entity-body to send with POST/PUT requests.
  #body = "{\"measurement\":\"measurement_name\", \"time_filter\":[1593068400, 1593068800]}"
  body = "{\"measurement\":\"measurement_name\", \"time_filter\":[1593562547, ${date +%s}]}"

  #Data from HTTP in JSON format
  data_format = "json"

然后我运行下面的命令

$telegraf -config telegraf.conf

并收到 400 错误。如果我用它上面的线(无变量)替换主体线(包括变量),一切正常。

4

0 回答 0