[英]Is there a way for me to extract request information from headers/body using telegraf
所以我在我们的一个 ec2 实例上安装了 telegraf。 在实例上,我们安装了一个 Spring Boot 应用程序,为 POST 请求提供服务并转发它们。
我想知道是否可以从进入此服务的请求中提取信息,例如来自 json 主体的标头信息或键值对,然后将此信息转发到电报?
然后 Telegraf 会将这些信息推送到 influxdb。
我们的想法是我们将提取这些信息并使用 grafana 显示,以便我们可以看到有多少请求来自哪里。
我知道有一些像 http_listener 这样的插件,但是我无法从自述文件中判断这是否可行,或者是否有更好的方法可以使其正常工作?
感谢您提前提供的任何信息!
您可以尝试使用此 示例。 示例代码可以是:
[[inputs.http]]
# URL for your data in JSON format
urls = ["https://yourURL/sample.json"]
# Overwrite measurement name from default `http` to `someOtherMeasurement`
name_override = "someOtherMeasurement"
# Data from HTTP in JSON format
data_format = "json_v2"
# Add a subtable to use the `json_v2` parser
[[inputs.http.json_v2]]
# Add an object subtable for to parse a JSON object
[[inputs.http.json_v2.object]]
# Parse data in `data.stations` path only
path = "data.stations"
#Set station metadata as tags
tags = ["yourTags"]
# Latest station information reported at `last_reported`
timestamp_key = "theTimeStamp"
# Time is reported in unix timestamp format
timestamp_format = "unix"
# all other json key-value pairs will be turned into fields
原始 HTTP JSON 响应的摘录是:
{
"data":{
"stations":[
{
"last_reported":1655171050,
"is_renting":1,
"num_bikes_available":21,
"is_installed":1,
"legacy_id":"72",
"station_status":"active",
"num_ebikes_available":2,
"is_returning":1,
"eightd_has_available_keys":false,
"num_docks_disabled":0,
"station_id":"72",
"num_bikes_disabled":1,
"num_docks_available":32
},
"..."
]
},
"last_updated":1655171085,
"ttl":5
}
上面的 Telegraf 脚本会将 JSON 转换为以下行协议:
someOtherMeasurement,station_id=72 eightd_has_available_keys=false,is_installed=1,is_renting=1,is_returning=1,legacy_id="72",num_bikes_available=21,num_bikes_disabled=1,num_docks_available=32,num_docks_disabled=1,num_ebikes_available=2,station_status="active" 1655171050000000000
您可以使用 Telegraf 使用示例 JSON 来更新您的配置。 快乐编码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.