<a name="observe"></a>

# 观测流量

本页帮助标准版用户选择监控页面，并了解各项数据的范围。具体检查步骤见[常见操作](https://doona.daeuniverse.org/zh-CN/common-tasks.md)；精简版请参阅 [doona lite](https://doona.daeuniverse.org/zh-CN/lite.md)。

| 想了解什么 | 查看哪里 |
| --- | --- |
| 当前流量和引擎状态 | [活动](https://doona.daeuniverse.org/zh-CN/observe.md#activity) |
| 后端版本、警告或缺少的功能 | [系统状态](https://doona.daeuniverse.org/zh-CN/observe.md#overview) |
| 当前连接的路由 | [连接](https://doona.daeuniverse.org/zh-CN/observe.md#connections) |
| 已记录的路由决策 | [分流](https://doona.daeuniverse.org/zh-CN/observe.md#flows) |
| DNS 应答、缓存或解析历史 | [DNS](https://doona.daeuniverse.org/zh-CN/observe.md#dns) |
| 引擎消息 | [日志](https://doona.daeuniverse.org/zh-CN/observe.md#logs) |
| 配置与运行状态事件 | [事件](https://doona.daeuniverse.org/zh-CN/observe.md#events) |

<a name="activity"></a>

## 活动

**活动**包含流量、连接、延迟和系统卡片。设置尚未完成时，**开始使用**提供剩余任务的入口，可按[教程](https://doona.daeuniverse.org/zh-CN/tutorial.md)完成设置。

每一步在满足对应条件时自动完成：

- 已有订阅或代理节点。
- 已选择路由方式。
- 某个组选中的代理节点已有成功的延迟结果。

完成全部步骤或关闭卡片后，卡片会隐藏，当前浏览器会记住此状态。

![活动仪表盘](https://doona.daeuniverse.org/screenshots/zh-CN/activity-light.webp)

| 卡片或控件 | 如何解读 |
| --- | --- |
| **出站模式**和**全局出站** | 按[切换模式](https://doona.daeuniverse.org/zh-CN/common-tasks.md#global-mode)的步骤修改。 |
| **下载**和**上传** | 打开连接页面的流量视图。先阅读统计范围提示，再判断数值是否代表网关总量。 |
| **活动连接** | 打开连接列表。 |
| **延迟** | 跟踪策略组所选节点的延迟。 |
| **CPU 使用率** | 打开系统状态。 |
| 设备和域名排行 | 统计后端返回的连接样本。 |
| 通知 | 合并相同通知，并显示重复次数。 |

历史数据或指标不可用时，检查[运行状态条件](https://doona.daeuniverse.org/zh-CN/feature-requirements.md#req-runtime-status)及[历史记录条件](https://doona.daeuniverse.org/zh-CN/feature-requirements.md#req-traffic-history)。

点击**延迟**可在节点页面打开对应节点。**自动**跟踪活动连接最多的策略组；手动选择会保存在当前浏览器，且只影响这张卡片。

CPU 和延迟趋势需要两个样本。延迟测试失败会留下缺口，更改选择会重新开始记录该趋势。运行状态读取失败时，变淡的数值保留上一次成功读取的结果。

通知角标统计合并后的不同通知数，不累计重复次数。**事件流就绪**仅保留在事件页面。不指向特定记录、原因为 `recording_changed` 的流程缺口表示记录历史的边界，不一定代表丢失了记录。

启动页可在[外观](https://doona.daeuniverse.org/zh-CN/config-and-settings.md#settings-page)中修改；其中的**活动卡片显示趋势图**控制活动卡片的趋势显示。

通过**编辑仪表盘**添加、移动、调整大小或移除卡片。**完成**保存布局。如需放弃修改，点击**取消**并确认。布局存储受[浏览器条件](https://doona.daeuniverse.org/zh-CN/feature-requirements.md#req-browser-settings)限制。

每种组件最多放置三份。可选尺寸因组件而异，调整一张卡片不会改变相邻卡片的大小。移除卡片后，只要编辑器仍打开，就可使用**撤销**。

组件库提供**订阅额度**、**出站失败**、**节点可用性**和**DNS 延迟**。内存可显示为图表或带数值的**迷你折线图**卡片。宽图表会在旁边显示峰值和平均值。仪表盘与浮动面板共用的组件库见[组件](https://doona.daeuniverse.org/zh-CN/features.md#widgets)。

![仪表盘编辑器](https://doona.daeuniverse.org/screenshots/zh-CN/dashboard-settings.webp)

<a name="overview"></a>

## 系统状态

功能不可用时，先在**系统状态**检查后端。

页首显示引擎状态、**配置版本**、**运行时间**、**CPU 使用率**和**上次重载**。配置版本表示当前生效的配置修订，不是 `generation` 编号。

| 区域 | 检查内容 |
| --- | --- |
| **引擎** | 引擎版本、构建、API 和实例信息。还显示启动时间、配置生效时间及**基本**或**完整可观测**配置档。 |
| **流量计数** | 计数起始时间和覆盖范围，以及上传、下载和连接数量。TCP 与 UDP 分别计数，速率间隔表示测量周期。 |
| **内存** | 后端报告的进程与 cgroup 内存。cgroup 计量条将用量与非零上限比较；上限为零或未提供时，不显示计量条。 |
| **数据路径** | 内核挂载检查及降级警告，包括状态数据库故障。包括程序、hook 和 map 检查，以及挂载列表。 |
| **后端能力** | 后端声明提供的功能。选择一项可打开对应页面。 |
| **未开启的功能** | 各项限制的原因，以及帮助或设置入口。仅在存在限制时显示。 |

点击**导出状态 JSON**可保存后端报告的状态。字段或操作缺失时，检查[状态功能条件](https://doona.daeuniverse.org/zh-CN/feature-requirements.md#req-runtime-status)及[重载、暂停和恢复条件](https://doona.daeuniverse.org/zh-CN/feature-requirements.md#req-reload-suspend)。

状态卡片加载时会用占位内容保留空间。加载提示显示进度指示，计量组件向辅助技术提供名称和数值文本。

![系统状态](https://doona.daeuniverse.org/screenshots/zh-CN/system-status-meters.webp)

<a name="connections"></a>

## 连接

**连接**默认打开**流量**。选择**列表**可查看单条连接；指向具体连接或筛选列表的链接会直接打开此标签页。

![流量视图](https://doona.daeuniverse.org/screenshots/zh-CN/connections-traffic.webp)

点击图中的数据点或列表行可查看连接详情。后端提供信息时，详情会显示出站、链和命中规则。按[出站排查步骤](https://doona.daeuniverse.org/zh-CN/common-tasks.md#why-outbound)可打开规则或执行追踪。

![连接列表](https://doona.daeuniverse.org/screenshots/zh-CN/connections-list.webp)

筛选也会搜索出站、链和规则。**导出 CSV**导出筛选后的列表。列表为空时，先阅读截断或可见范围提示；[连接条件](https://doona.daeuniverse.org/zh-CN/feature-requirements.md#req-connections)说明了覆盖范围及哪些连接可以关闭。

连接没有可用地址或域名时，该行的添加规则图标不可用。支持相应操作时，**更多操作**还提供**编辑命中规则的出站设置**、**查看流程**、**仅显示此设备**和**关闭连接**。

仅按设备和网络筛选时，**全部关闭**会关闭所有匹配的活动连接，包括确认后新开的连接。如果还按出站、规则或文本筛选，或列表被截断、超出批量操作上限，则只关闭列出的 ID。内核直连连接会被跳过。

<a name="flows"></a>

## 分流

**分流**在**总览**和**记录**中展示已记录的流程，依赖[流程记录功能](https://doona.daeuniverse.org/zh-CN/feature-requirements.md#req-flows)。

![分流图](https://doona.daeuniverse.org/screenshots/zh-CN/routing.webp)

在**总览**中选择一条路径，再点击显示流程数量的按钮，打开对应记录。在**记录**中选择一行可查看路由追踪；追踪不完整时，先阅读原因。关联连接仍存在时，**查看连接**可打开该连接。

点击**清除路径筛选**可取消固定路径。要从流程记录创建规则，使用记录行上的添加规则图标；详情面板中没有此图标。

**记录设置**打开记录控制项，其范围和有效期见[运行时修改](https://doona.daeuniverse.org/zh-CN/what-doona-can-change.md#change-runtime)。

<a name="dns"></a>

## DNS

可用标签页取决于后端的[查询](https://doona.daeuniverse.org/zh-CN/feature-requirements.md#req-dns-query)、[缓存](https://doona.daeuniverse.org/zh-CN/feature-requirements.md#req-dns-cache)和[记录](https://doona.daeuniverse.org/zh-CN/feature-requirements.md#req-dns-log)能力。

![DNS 统计](https://doona.daeuniverse.org/screenshots/zh-CN/dns.webp)

| 标签页 | 数据与操作 |
| --- | --- |
| **统计** | 汇总最新一页解析记录和缓存信息。点击排行中的域名可筛选记录。 |
| **解析记录** | 选择一行查看已记录的请求与应答。**导出 CSV**仅导出已加载的记录，不包含完整历史。 |
| **缓存** | 按名称和记录类型筛选缓存条目。**显示已到期**包含已到期条目。删除匹配项或清空缓存前，先阅读确认内容。 |
| **查询** | 执行诊断查询，步骤见[查询域名](https://doona.daeuniverse.org/zh-CN/common-tasks.md#dns-resolution)。这些查询不会出现在解析记录中。 |

从**解析记录**创建规则时，使用行上的添加规则图标，为完整域名创建 DNS 请求规则。DNS 规则不可用时，会改为打开路由规则。选择**域名后缀**可包含子域名。

缓存支持完整域名、后缀、关键词和正则表达式筛选，并可同时限制记录类型。关键词匹配任意位置，例如 `cdn` 可匹配 `cdn.example.com`；后缀 `cdn` 仅匹配 `cdn` 和以 `.cdn` 结尾的域名。

后端不支持删除时，仍可筛选。**清除筛选**会重置条件，并移除页面 URL 中的域名筛选。

缓存报告仅存于内存时，重启会清空条目。删除匹配项时，确认内容显示匹配数量；按名称删除时，显示域名和记录类型；**清除全部缓存**无法撤销。**没有缓存条目**表示缓存为空，**没有符合的缓存条目**则表示当前筛选条件没有匹配项。

![包含已到期条目的 DNS 缓存](https://doona.daeuniverse.org/screenshots/zh-CN/dns-cache-expired.webp)

<a name="logs"></a>

## 日志

**日志**显示引擎日志。收不到记录时，先检查[日志记录条件](https://doona.daeuniverse.org/zh-CN/feature-requirements.md#req-logs)。

![引擎日志](https://doona.daeuniverse.org/screenshots/zh-CN/logs.webp)

用**级别**和**模块**筛选日志流。**暂停**暂停画面更新，期间缓冲区仅保留页面上限内的最新记录。**清空**清空本页记录，**导出**下载已接收的记录，**复制记录**以与**导出**相同的格式复制单行记录。

低于引擎记录级别的选项会标为未记录。要更改引擎级别，打开**记录设置**；选择更低的显示筛选级别无法找回未记录的消息。

缺口标记表示重新连接后有部分记录无法重播。记录开始前的启动消息须从[服务日志](https://doona.daeuniverse.org/zh-CN/service-management.md)查看。

<a name="events"></a>

## 事件

**事件**显示后端事件，最新事件在前。事件流不可用时，检查[事件条件](https://doona.daeuniverse.org/zh-CN/feature-requirements.md#req-events)。

**种类**初始为**排除运行状态更新**。选择**所有种类**或指定种类，再选择一行查看详情和相关链接。**导出 JSON**导出当前显示的事件，**复制记录**按导出格式复制单个事件，不包含外层数组。

列表显示**时间**、**种类**和**摘要**。工具栏显示连接状态、事件保留上限，以及可用时的**可从上次位置续传**提示。配置可用时，**配置生效**提供**查看配置**；**流程记录丢失**可提供**查看流程记录**和**记录设置**。

重新连接后，可重播仍保留的事件。缺口标记表示更早的事件已无法重播。
