使用 Grafana 和 InfluxDB 构建家庭网络速度测试
作者 Jessica Wachtel / 产品
2023年10月4日
导航至
本文最初发布在 The New Stack 上,经授权在此重发。
本教程介绍了如何使用时间序列数据来测试您的家庭网络速度。
所需材料
在开始之前,请确保您有以下内容
第一部分:InfluxDB Cloud Serverless
登录到 InfluxDB Cloud Serverless 并转到资源中心,导航到“添加数据”并选择“配置代理”。这会将您带到 Telegraf 部分。然后选择“创建配置”
命名配置。如果您想的话,可以添加简短描述。通过选择“保存并测试”完成此部分。
接下来,打开您的终端。如果您还没有桶的API令牌,请在API令牌选项卡中创建一个。一旦您有了符合您要求的设置,请复制API令牌并将其粘贴到终端中,然后保存到文本页。此令牌在您离开此页面后将会消失,因此保存它非常重要。复制“启动Telegraf”命令,并将其粘贴到文本页中。
点击“完成”关闭窗口。
当“创建Telegraf配置”窗口关闭后,您将在屏幕的主要部分看到您刚才创建的Telegraf配置名称。单击该配置名称。在[代理]下方,您会看到interval = “20s”,因此将其更新为interval = “60s”。这会给Telegraf更长的时间来从速度测试服务器收集数据。
找到包含token = $INFLUX_TOKEN
的行,并用您之前复制的API令牌替换$INFLUX_TOKEN值。通过选择“保存更改”完成此步骤
将您的文本页中的整个“启动Telegraf”命令粘贴到终端中。该命令包括telegraf -- config + URL
这是启动Telegraf所需的唯一命令。下面的图片展示了成功启动的Telegraf实例的外观
第一部分最后要做的就是查看数据出现。前往数据探索器(页面左上角的图表图标)。您可以直接使用SQL查询数据(请参阅链接)。您可以通过字段或标签来组织查询。数据探索器包括下拉菜单UI,这意味着您不需要深厚的SQL知识即可执行查询。
第二部分:使用Grafana配置和可视化数据
第二部分遵循此教程,其中还包括YouTube视频组件。
启动Grafana Cloud。在右上角点击“连接数据”。选择FlightSQL,然后在右上角选择“添加新数据源”。选择“通过Grafana.com安装”以安装FlightSQL
点击FlightSQL插件的设置。主机名来自InfluxDB Cloud Serverless。主机名是不包含协议的URL。
对于端口,定义安全端口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。这完成了基本连接设置。
最后一步设置是启用元数据。元数据定义了在InfluxDB Cloud Serverless中确切查询的位置。我们通过桶进行查询,这实际上是在InfluxDB中的自己的数据库。我们将使用键“bucket-name”,值将与发送家庭互联网数据的桶名称相同。
完成后,点击保存 & 测试。如果一切设置正确,将出现OK消息。
我们在Grafana配置中的下一步是构建仪表板。导航到仪表板面板,创建一个新的仪表板。选择“添加新面板”。一旦新窗口打开,您将能够在页面中间的SQL编辑器上方看到FlightSQL数据源。Grafana帮助生成SQL,并允许自定义SQL生成。本例使用自定义SQL生成。要打开自定义SQL编辑器,请点击“编辑SQL”。
我们将使用的自定义SQL查询如下
SELECT time, download
FROM "internet_speed"
WHERE $__timeRange(time)
此查询从bucket internet_speed
中选择了时间和下载字段。 $__timeRange(time)
表示我们可以通过下拉菜单更新时间范围。点击面板右上角的圆形箭头可以创建或刷新图像。
第三部分:数据分析
从上面的图表中可以看出,我的互联网速度大多在650-800mbs范围内。我的第一步是确定外部因素是否影响下载速度。接下来,我将把 server_id
添加到我的查询中。
要按标签查询,只需在引号内添加标签的名称。在本例中,新的查询行看起来像 SELECT time, download, "server_id"
。
Grafana使用一个名为Transformations的工具来按标签组织结果。点击“转换”,我们将使用的转换是“按值分区”。点击选择字段 > server_id。结果面板现在包括每个服务器的下载速度。
这只是开始。还有哪些其他因素在起作用?延迟是如何影响下载的?你认为哪些标签和字段很重要?你的互联网速度达标了吗?
加入时间序列数据革命
这只是时间序列数据广阔世界的皮毛。时间序列数据无处不在,但有了 TIG堆栈,设置永远不会过于复杂,实时洞察总是可用。