将 HTTP 输入插件与 Citi Bike 数据结合使用
此示例演示如何使用 Telegraf HTTP 输入插件来收集纽约市 Citi Bike 站点的实时指标。实时站点数据以 JSON 格式直接从 Citi Bike 获取。
为了使以下示例正常工作,请配置 influxdb_v2
输出插件。此插件允许 Telegraf 将指标写入 InfluxDB。
在 Telegraf 配置文件中配置 HTTP 输入插件
要从 Citi Bike URL 端点检索数据,请在 Telegraf 配置文件中启用 inputs.http
输入插件。
指定以下选项
urls
从中读取指标的一个或多个 URL。在此示例中,使用 https://gbfs.citibikenyc.com/gbfs/en/station_status.json
。
data_format
Telegraf 将摄取的 HTTP 端点中数据的格式。在此示例中,使用 JSON。
将解析器信息添加到 Telegraf 配置
指定以下 JSON 特有选项。在此示例中,我们使用 objects 子表从 JSON 对象 收集数据。
JSON
path
要解析 JSON 对象,请使用 GJSON 路径设置 path
选项。查询结果应包含 JSON 对象或对象数组。GJSON playground 是检查查询的非常有用的工具。
tags
应添加为标签的一个或多个 JSON 键的列表。对于此示例,我们将使用标签键 station_id
。
timestamp_key
JSON 文件中创建时间戳指标的键。在本例中,我们想使用上次报告站点数据的时间,即 last_reported
。如果您未指定键,则 Telegraf 读取数据的时间将成为时间戳。
timestamp_format
用于解释指定的 timestamp_key
的格式。本示例中的 last_reported
时间以 Unix 格式报告。
配置示例
[[inputs.http]]
# URL for NYC's Citi Bike station data in JSON format
urls = ["https://gbfs.citibikenyc.com/gbfs/en/station_status.json"]
# Overwrite measurement name from default `http` to `citibikenyc`
name_override = "citibike"
# Exclude url and host items from tags
tagexclude = ["url", "host"]
# 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 = ["station_id"]
# Latest station information reported at `last_reported`
timestamp_key = "last_reported"
# Time is reported in unix timestamp format
timestamp_format = "unix"
启动 Telegraf 并验证数据是否出现
要测试数据是否正在发送到 InfluxDB,请运行以下命令(将 telegraf.conf
替换为您的配置文件的路径)
telegraf -config ~/telegraf.conf -test
此命令应返回类似于以下内容的行协议
citibike,station_id=4703 eightd_has_available_keys=false,is_installed=1,is_renting=1,is_returning=1,legacy_id="4703",num_bikes_available=6,num_bikes_disabled=2,num_docks_available=26,num_docks_disabled=0,num_ebikes_available=0,station_status="active" 1641505084000000000
citibike,station_id=4704 eightd_has_available_keys=false,is_installed=1,is_renting=1,is_returning=1,legacy_id="4704",num_bikes_available=10,num_bikes_disabled=2,num_docks_available=36,num_docks_disabled=0,num_ebikes_available=0,station_status="active" 1641505084000000000
citibike,station_id=4711 eightd_has_available_keys=false,is_installed=1,is_renting=1,is_returning=1,legacy_id="4711",num_bikes_available=9,num_bikes_disabled=0,num_docks_available=36,num_docks_disabled=0,num_ebikes_available=1,station_status="active" 1641505084000000000
现在,您可以在 InfluxDB 中探索和查询 Citi Bike 数据。以下示例是一个 Flux 查询和可视化,显示过去 15 分钟内可用的自行车数量。
此页是否对您有帮助?
感谢您的反馈!
支持和反馈
感谢您成为我们社区的一份子!我们欢迎并鼓励您提供关于 Telegraf 和本文档的反馈和错误报告。要查找支持,请使用以下资源
拥有年度合同或支持合同的客户可以联系 InfluxData 支持。