我正在使用 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 错误。如果我用它上面的线(无变量)替换主体线(包括变量),一切正常。