Documentation

使用HTTP输入插件与Citi Bike数据

此示例演示了如何使用Telegraf HTTP输入插件收集纽约市Citi Bike站点的实时指标。实时站点数据可直接从Citi Bike以JSON格式获取。

要使以下示例正常工作,请配置 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特定选项。在本例中,我们使用对象子表从JSON Objects中收集数据。

JSON

path

要解析一个 JSON 对象,使用 path 选项设置一个 GJSON 路径。查询的结果应包含一个 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 Open Source is now available for alpha testing, licensed under MIT or Apache 2 licensing.

我们将发布两个产品作为测试版的一部分。

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

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