调试 Grafana Alloy
按照以下步骤调试 Alloy 问题
- 使用 Alloy UI 来调试问题。
- 如果 Alloy UI 不能帮助调试问题,可以检查日志。
Alloy UI
Alloy 包含一个嵌入式 UI,可以通过 Alloy HTTP 服务器查看,该服务器默认监听 https://:12345
。
注意
出于安全原因,在非容器化平台上安装的 Alloy 默认监听
localhost
。此默认设置可防止网络上的其他机器查看 UI。要在非容器化平台上将 UI 暴露给网络上的其他机器,请参阅您安装 Alloy 的文档。
如果您正在进行自定义安装的 Alloy,请参阅
alloy run
命令的文档,了解如何更改 HTTP 监听地址,并在运行 Alloy 时传递适当的标志。
主页

主页显示配置文件中定义的组件及其健康状况的表格。
点击表格中某行上的查看以导航到该组件的组件详情页面。
点击 Alloy 标志返回主页。
图表页面
实验性:这是一个 [实验性][] 功能。实验性功能可能频繁发生重大更改,并且可能被移除而无等效替代品。

图表页面显示配置文件中定义的组件的图表视图。点击图表中的组件会导航到该组件的组件详情页面。
您可以点击并拖动组件以移动它们。
要访问模块的图表页面,请点击模块详情页面上的图表按钮。
支持 [实时调试][#live-debugging-page] 的组件输出的数据量显示在组件的传出边缘上。数据根据 window
参数刷新。
组件详情页面

组件详情页面显示每个组件的以下信息
- 组件的健康状况以及说明健康状况的消息。
- 组件当前评估的参数。
- 组件当前的导出项。
- 如果组件有调试信息,则显示组件当前的调试信息。
您也可以从此处转到组件文档或其对应的实时调试页面。
注意
标记为秘密的值被混淆,显示为文本
(secret)
。
集群页面

集群页面显示每个集群节点的以下信息
- 节点的名称。
- 节点的通告地址。
- 节点当前的状态(查看者/参与者/正在终止)。
- 提供 UI 的本地节点。
实时调试页面

实时调试提供组件调试数据的实时流。您可以从相应的组件详情页面访问此页面。
注意
实时调试默认禁用,以避免意外显示敏感的遥测数据。要启用实时调试,请配置
livedebugging
块。
实时调试允许您执行以下操作
- 暂停和清除数据流。
- 采样数据并禁用自动滚动以处理高负载。
- 使用关键字搜索数据。
- 将整个数据流复制到剪贴板。
调试数据的格式和内容因组件类型而异。
注意
实时调试尚不支持所有组件。
支持的组件
loki.process
loki.relabel
loki.secretfilter
otelcol.connector.*
otelcol.processor.*
otelcol.receiver.*
prometheus.remote_write
prometheus.relabel
discovery.*
prometheus.scrape
使用 UI 调试
使用 UI 调试的方法
- 确保没有组件报告不健康。
- 确保出现异常的组件的参数和导出项看起来正确。
- 确保实时调试数据符合您的预期。
检查日志
日志也可以帮助调试 Alloy 的问题。
为了减少日志噪音,许多组件将调试信息隐藏在调试级别的日志行后面。建议您在调试 Alloy 问题时配置 logging
块以显示调试级别的日志行。
Alloy 日志的位置取决于其部署方式。请参阅 logging
块页面,了解如何查找您系统的日志。
调试集群问题
在使用集群时,检查以下症状来调试问题。
- 集群不收敛:集群对等节点没有收敛到对其对等节点状态的相同视图。这很可能是由于集群节点之间的网络连接问题。使用每个运行的对等节点的 Alloy UI 来了解哪些节点未被正确识别。
- 集群脑裂:集群对等节点彼此不知道,认为自己是唯一存在的节点。同样,检查网络连接问题。检查用于加入节点的地址或 DNS 名称格式是否正确且可访问。
- 配置漂移:集群假定所有节点都在大致相同的时间使用相同的配置文件运行。检查日志以查找重新加载配置文件的问题以及图表页面以验证更改是否已应用。
- 节点名称冲突:集群假定所有节点具有唯一的名称。名称冲突的节点将被拒绝,不会加入集群。查看集群 UI 页面,其中列出了当前对等节点及其名称,并检查日志中报告的任何名称冲突事件。
- 节点卡在终止状态:节点尝试正常关闭并将其状态设置为 Terminating,但尚未完全消失。检查集群页面以查看对等节点的状态,并验证正在终止的 Alloy 已关闭。
注意
某些看似是集群问题的问题,实际上可能是其他问题的症状,例如,抓取或服务发现问题可能导致 Alloy 实例的指标丢失,从而被误解为节点未加入集群。