文档文档

将 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 开源现已进入公开 Alpha 阶段

InfluxDB 3 开源现在可用于 Alpha 测试,根据 MIT 或 Apache 2 许可获得许可。

我们正在发布两个产品作为 Alpha 版本的一部分。

InfluxDB 3 Core 是我们新的开源产品。它是用于时间序列和事件数据的最新数据引擎。InfluxDB 3 Enterprise 是一个商业版本,它建立在 Core 的基础上,增加了历史查询功能、读取副本、高可用性、可伸缩性和细粒度的安全性。

有关如何开始使用的更多信息,请查看