使用 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 对象,请将 path 选项设置为 GJSON 路径。查询结果应包含 JSON 对象或对象数组。GJSON 游乐场 是检查查询的非常有用的工具。
标签 (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 和本文档提出反馈和 bug 报告。要获取支持,请使用以下资源
具有年度合同或支持合同的客户可以 联系 InfluxData 支持。