文档文档

将 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 并验证数据是否出现

启动 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 分钟内可用自行车的数量。

Citi Bike visualization


此页内容对您有帮助吗?

感谢您的反馈!


Flux 的未来

Flux 即将进入维护模式。您可以继续像现在一样使用它,而无需更改任何代码。

阅读更多

现已全面上市

InfluxDB 3 Core 和 Enterprise

快速启动。更快扩展。

获取更新

InfluxDB 3 Core 是一个开源、高速的最新数据引擎,可实时收集和处理数据,并将其持久化到本地磁盘或对象存储。InfluxDB 3 Enterprise 以 Core 的基础为构建,增加了高可用性、读取副本、增强的安全性和数据压缩,从而实现更快的查询和优化的存储。InfluxDB 3 Enterprise 的免费层可供非商业家庭或业余爱好者使用。

有关更多信息,请查看