使用 Grafana 和 InfluxDB 构建家庭网络速度测试

导航至

本文最初发布在 The New Stack 上,经授权在此重发。

本教程介绍了如何使用时间序列数据来测试您的家庭网络速度。

所需材料

在开始之前,请确保您有以下内容

第一部分:InfluxDB Cloud Serverless

登录到 InfluxDB Cloud Serverless 并转到资源中心,导航到“添加数据”并选择“配置代理”。这会将您带到 Telegraf 部分。然后选择“创建配置”

Login to InfluxDB Cloud Serverless

create telegraf configuration

命名配置。如果您想的话,可以添加简短描述。通过选择“保存并测试”完成此部分。

complete telegraf configuration

接下来,打开您的终端。如果您还没有桶的API令牌,请在API令牌选项卡中创建一个。一旦您有了符合您要求的设置,请复制API令牌并将其粘贴到终端中,然后保存到文本页。此令牌在您离开此页面后将会消失,因此保存它非常重要。复制“启动Telegraf”命令,并将其粘贴到文本页中。

API token for your bucket

点击“完成”关闭窗口。

当“创建Telegraf配置”窗口关闭后,您将在屏幕的主要部分看到您刚才创建的Telegraf配置名称。单击该配置名称。在[代理]下方,您会看到interval = “20s”,因此将其更新为interval = “60s”。这会给Telegraf更长的时间来从速度测试服务器收集数据。

Edit telegraf configuration

找到包含token = $INFLUX_TOKEN的行,并用您之前复制的API令牌替换$INFLUX_TOKEN值。通过选择“保存更改”完成此步骤

locate INFLUX TOKEN

将您的文本页中的整个“启动Telegraf”命令粘贴到终端中。该命令包括telegraf -- config + URL这是启动Telegraf所需的唯一命令。下面的图片展示了成功启动的Telegraf实例的外观

successfully started Telegraf instance

第一部分最后要做的就是查看数据出现。前往数据探索器(页面左上角的图表图标)。您可以直接使用SQL查询数据(请参阅链接)。您可以通过字段或标签来组织查询。数据探索器包括下拉菜单UI,这意味着您不需要深厚的SQL知识即可执行查询。

Data Explorer

第二部分:使用Grafana配置和可视化数据

第二部分遵循此教程,其中还包括YouTube视频组件。

启动Grafana Cloud。在右上角点击“连接数据”。选择FlightSQL,然后在右上角选择“添加新数据源”。选择“通过Grafana.com安装”以安装FlightSQL

install FlightSQL

点击FlightSQL插件的设置。主机名来自InfluxDB Cloud Serverless。主机名是不包含协议的URL。

settings FlightSQL Plugin

对于端口,定义安全端口443。整个主机:端口号将看起来类似于以下内容

us-east-1-1.aws.cloud2.influxdata.com:443

下一步是定义身份验证类型。从下拉菜单中选择“令牌”,因为InfluxDB Cloud Serverless使用令牌。导航回InfluxDB Cloud Serverless,因为InfluxDB生成令牌。

在InfluxDB Cloud Serverless的主菜单中,导航到访问令牌管理 > 前往令牌。选择生成API令牌 > 全访问API令牌。如有需要,写一个描述并保存。复制令牌,因为它在关闭窗口后会消失。导航回Grafana。

一旦在Grafana中,将全访问令牌粘贴到文本框中。然后启用TLS/SSL。这完成了基本连接设置。

complete connection setup

最后一步设置是启用元数据。元数据定义了在InfluxDB Cloud Serverless中确切查询的位置。我们通过桶进行查询,这实际上是在InfluxDB中的自己的数据库。我们将使用键“bucket-name”,值将与发送家庭互联网数据的桶名称相同。

Enabling metadata

完成后,点击保存 & 测试。如果一切设置正确,将出现OK消息。

Save and test

我们在Grafana配置中的下一步是构建仪表板。导航到仪表板面板,创建一个新的仪表板。选择“添加新面板”。一旦新窗口打开,您将能够在页面中间的SQL编辑器上方看到FlightSQL数据源。Grafana帮助生成SQL,并允许自定义SQL生成。本例使用自定义SQL生成。要打开自定义SQL编辑器,请点击“编辑SQL”。

我们将使用的自定义SQL查询如下

SELECT time, download
FROM "internet_speed"
WHERE $__timeRange(time)

此查询从bucket internet_speed中选择了时间和下载字段。 $__timeRange(time)表示我们可以通过下拉菜单更新时间范围。点击面板右上角的圆形箭头可以创建或刷新图像。

building the dashboard

第三部分:数据分析

从上面的图表中可以看出,我的互联网速度大多在650-800mbs范围内。我的第一步是确定外部因素是否影响下载速度。接下来,我将把 server_id 添加到我的查询中。

要按标签查询,只需在引号内添加标签的名称。在本例中,新的查询行看起来像 SELECT time, download, "server_id"

Grafana使用一个名为Transformations的工具来按标签组织结果。点击“转换”,我们将使用的转换是“按值分区”。点击选择字段 > server_id。结果面板现在包括每个服务器的下载速度。

Data Analysis

这只是开始。还有哪些其他因素在起作用?延迟是如何影响下载的?你认为哪些标签和字段很重要?你的互联网速度达标了吗?

加入时间序列数据革命

这只是时间序列数据广阔世界的皮毛。时间序列数据无处不在,但有了 TIG堆栈,设置永远不会过于复杂,实时洞察总是可用。

要继续在我们的社区中工作,请查看我们的 社区页面,其中包括前往我们的 Slack 的链接以及更多帮助您入门的酷项目。