# 将分析事件流式传输到 Amazon S3 (/zh/analytics/streaming)

<!-- agent-signals: reading_time_min: 2 · est_tokens: 1393 · updated: 2026-09-23 -->
Related: [分析助手对话](/zh/analytics/assistant.md), [将分析导出为 CSV](/zh/analytics/export.md), [分析文档搜索](/zh/analytics/search.md), [分析文档流量](/zh/analytics/traffic.md), [分析用户参与](/zh/analytics/user-engagements.md)

<Info>
  分析功能需要 [Pro 或 Enterprise 套餐](https://mintlify.com/pricing?ref=analytics)。
  分析流式传输仅在 [Enterprise 套餐](https://mintlify.com/pricing?ref=analytics-streaming)中可用。
</Info>

将分析事件近实时地流式传输到 Amazon S3,可在不等待 CSV 导出的情况下将事件发送到您的数据仓库或下游分析管道。

组织管理员可以添加多个目标地址、选择要发送的事件类别,并选择要从哪些部署进行流式传输。分析流式传输采用包含模式:在您至少选择一个类别和一个部署之前,不会流式传输任何事件。相同的类别和部署选择将应用于所有目标地址。

<div id="add-a-destination">
  ## 添加目标地址 [#添加目标地址]
</div>

1. 导航到 dashboard 中的 [Streaming](https://app.mintlify.com/settings/organization/streaming) 页面。
2. 在 **Stream configuration** 部分,选择 **Configure**。
3. 选择 **Add destination**。
4. 输入可选的标签,然后提供 Amazon S3 存储桶、AWS 区域、访问密钥 ID 和秘密访问密钥。可选地,输入 Mintlify 将添加到每个对象键开头的前缀。
5. 选择 **Add destination**。

<Accordion title="准备 Amazon S3 凭据">
  创建一个 AWS Identity and Access Management (IAM) 用户,其访问密钥的策略允许写入目标存储桶。Mintlify 不支持角色代入或需要会话令牌的临时凭据。至少需要授予目标存储桶和您计划使用的键前缀上的 `s3:PutObject` 权限。例如:

  ```json
  {
    "Version": "2012-10-17",
    "Statement": [
      {
        "Effect": "Allow",
        "Action": ["s3:PutObject"],
        "Resource": "arn:aws:s3:::your-bucket-name/analytics/*"
      }
    ]
  }
  ```

  添加目标地址时,请使用该 IAM 用户的访问密钥 ID 和秘密访问密钥。键前缀是可选的。Mintlify 会将其添加到每个对象键的开头。
</Accordion>

要停止向某个目标地址流式传输,请打开流式传输配置,选择目标地址旁边的 <Icon icon="<svg xmlns=&#x22;http://www.w3.org/2000/svg&#x22; viewBox=&#x22;0 0 24 24&#x22; fill=&#x22;none&#x22;><path d=&#x22;M19.5 5.5L18.8803 15.5251C18.7219 18.0864 18.6428 19.3671 18.0008 20.2879C17.6833 20.7431 17.2747 21.1273 16.8007 21.416C15.8421 22 14.559 22 11.9927 22C9.42312 22 8.1383 22 7.17905 21.4149C6.7048 21.1257 6.296 20.7408 5.97868 20.2848C5.33688 19.3626 5.25945 18.0801 5.10461 15.5152L4.5 5.5&#x22; stroke=&#x22;currentColor&#x22; stroke-linecap=&#x22;round&#x22; stroke-width=&#x22;1.5&#x22;/><path d=&#x22;M3 5.5H21M16.0557 5.5L15.3731 4.09173C14.9196 3.15626 14.6928 2.68852 14.3017 2.39681C14.215 2.3321 14.1231 2.27454 14.027 2.2247C13.5939 2 13.0741 2 12.0345 2C10.9688 2 10.436 2 9.99568 2.23412C9.8981 2.28601 9.80498 2.3459 9.71729 2.41317C9.32164 2.7167 9.10063 3.20155 8.65861 4.17126L8.05292 5.5&#x22; stroke=&#x22;currentColor&#x22; stroke-linecap=&#x22;round&#x22; stroke-width=&#x22;1.5&#x22;/><path d=&#x22;M9.5 16.5L9.5 10.5&#x22; stroke=&#x22;currentColor&#x22; stroke-linecap=&#x22;round&#x22; stroke-width=&#x22;1.5&#x22;/><path d=&#x22;M14.5 16.5L14.5 10.5&#x22; stroke=&#x22;currentColor&#x22; stroke-linecap=&#x22;round&#x22; stroke-width=&#x22;1.5&#x22;/></svg>" /> 移除图标,然后选择 **Remove** 进行确认。

<div id="select-streamed-categories">
  ## 选择流式传输的类别 [#选择流式传输的类别]
</div>

1. 导航到 dashboard 中的 [Streaming](https://app.mintlify.com/settings/organization/streaming) 页面。

2. 在 **Stream configuration** 部分,选择 **Configure**。

3. 在类别表格中,选择您想要发送的类别。

   | 类别                 | 示例                                     |
   | ------------------ | -------------------------------------- |
   | Page views         | 页面和 Markdown 浏览事件。                     |
   | Navigation         | 导航项点击、导航行动号召点击以及版本切换。                  |
   | Search             | 搜索查询、结果点击、搜索关闭和搜索比较。                   |
   | Page components    | 展开、折叠、代码块和 API playground 交互。          |
   | Feedback           | 点赞、点踩和详细反馈提交。                          |
   | AI Assistant       | 助手对话、来源、建议、反馈和错误。                      |
   | Context menu & MCP | 上下文菜单操作、MCP 链接复制、MCP 服务器安装以及 MCP 工具调用。 |

   示例是对各类别的概述。使用流式传输的 `eventType` 值来识别确切事件。

4. 选择 **Save**。

<div id="select-streamed-deployments">
  ## 选择流式传输的部署 [#选择流式传输的部署]
</div>

选择组织中的哪些部署发送事件。dashboard 按子域列出每个部署。如果您创建了新的部署,请返回流式传输配置并选择它。新部署不会自动开始流式传输事件。

1. 导航到 dashboard 中的 [Streaming](https://app.mintlify.com/settings/organization/streaming) 页面。
2. 在 **Stream configuration** 部分,选择 **Configure**。
3. 在部署表格中,选择您希望从中发送事件的部署。
4. 选择 **Save**。

在您至少选择一个类别和一个部署之前,不会流式传输任何事件。

<div id="understand-streamed-data">
  ## 理解流式传输的数据 [#理解流式传输的数据]
</div>

Mintlify 会以换行符分隔的 JSON(`.jsonl`)对象写入您的存储桶。Mintlify 根据 UTC 时间戳生成对象名称。如果您配置了键前缀,Mintlify 会将对象写入该前缀下。

每一行包含一个事件信封,其中含有 `eventType` 和 `payload`。`eventType` 是事件名称,例如 `docs.content.view`。`payload` 以 JSON 对象或 JSON 编码字符串的形式包含分析事件。如果 `payload` 是字符串,请在加载到数据仓库之前将其解析为 JSON。

<Accordion title="流式传输事件示例">
  ```json
  {
    "eventType": "docs.content.view",
    "payload": {
      "event_id": "4b91fdbc-4677-4e03-b51b-5f2da41c8654",
      "subdomain": "docs",
      "user_id": "",
      "anon_id": "anon_01JZ8W6QKEJ6ECG1T7QK2S5PZ2",
      "session_id": "session_01JZ8W8CS5JC8T18HXH8ES7Z5M",
      "created_at": "2026-07-22T23:21:41.063Z",
      "event": "docs.content.view",
      "path": "/quickstart",
      "referrer": "https://www.example.com/",
      "user_agent": "Mozilla/5.0",
      "ip": "203.0.113.10",
      "properties": {}
    }
  }
  ```
</Accordion>

事件 payload 包含以下字段:

| 字段           | 描述                                 |
| ------------ | ---------------------------------- |
| `event_id`   | 用于标识事件的 UUID。加载数据时可作为去重键。          |
| `subdomain`  | 生成该事件的部署子域。                        |
| `user_id`    | 已认证用户的 ID(如果可用)。                   |
| `anon_id`    | 匿名访客 ID(如果可用)。                     |
| `session_id` | 访客或助手会话 ID(如果可用)。                  |
| `created_at` | 事件发生时的 ISO 8601 时间戳。               |
| `event`      | 事件名称。与信封中的 `eventType` 相同。         |
| `path`       | 事件发生的文档路径。                         |
| `referrer`   | 引荐 URL(如果可用)。                      |
| `user_agent` | 浏览器或客户端的 user-agent 字符串。           |
| `ip`         | 访客 IP 地址。                          |
| `properties` | 特定事件的数据,以 JSON 对象或 JSON 编码字符串形式表示。 |

配置更改最多可能需要一分钟才能生效。

<Warning>
  流式传输的事件可能包含个人数据,包括 IP 地址、用户与会话标识符、助手查询与响应,以及反馈评论或联系方式。请为您的组织应用适当的访问控制、留存策略和其他数据处理要求。
</Warning>
