SuperAPI AI 工具集

configure-nightwatch

测试与质量

查看项目

更新于 10-15 12:37

技能介绍

用途

该技能用于配置 Laravel Nightwatch 的数据采集,目标是在可观测性、性能与隐私之间取得平衡。它覆盖所有事件类型的采样策略、过滤规则与脱敏方法。

主要能力

Nightwatch 通过三个阶段处理事件:

  1. 采样(Sampling):控制哪些入口点被采集,包括请求、命令和计划任务。某个入口点被采样后,其相关所有事件都会被捕获。
  2. 过滤(Filtering):在采样之后排除特定事件,如查询、缓存、邮件等。用于降低噪音与配额消耗。
  3. 脱敏(Redaction):修改已采集的数据以去除或模糊敏感信息。与过滤不同,脱敏保留事件本身,只清理其内容。

流程示意:

请求/命令/计划任务
       |
       v
   [采样?] ----否----> 丢弃整条链路
       | 是
       v
   生成事件
       |
       v
   [过滤?] ----是----> 丢弃特定事件
       | 否
       v
   [脱敏] -----------> 存储修改后的数据

使用方式

采样配置

可通过环境变量设置全局采样率:

# 默认:100% 采样(所有请求/命令都会被采集)
NIGHTWATCH_REQUEST_SAMPLE_RATE=0.1      # 推荐:10% 的请求
NIGHTWATCH_COMMAND_SAMPLE_RATE=1.0      # 采集所有命令
NIGHTWATCH_EXCEPTION_SAMPLE_RATE=1.0    # 始终采集异常

还可使用 Sample 中间件对特定路由应用不同采样率,例如对 admin 路由 100% 采样、对 API 路由 5% 采样、对关键端点始终采样、对健康检查从不采样,也可对未匹配路由降低采样。此外支持基于运行时条件(如用户角色)的动态采样,以及通过监听 CommandStarting 事件排除特定命令的采样。框架/内部命令默认被忽略,可用 Nightwatch::captureDefaultVendorCommands() 选择性采集。

过滤配置

  • 数据库查询:可用 NIGHTWATCH_IGNORE_QUERIES=true 完全关闭,或通过 Nightwatch::rejectQueries() 按 SQL 模式过滤。
  • 缓存事件:可用 NIGHTWATCH_IGNORE_CACHE_EVENTS=true 关闭,或用 Nightwatch::rejectCacheKeys() 按缓存键(支持精确匹配与正则)过滤,也可用回调过滤。
  • 邮件:可用 NIGHTWATCH_IGNORE_MAIL=true 关闭,或用 Nightwatch::rejectMail() 按条件过滤。
  • 通知:可用 NIGHTWATCH_IGNORE_NOTIFICATIONS=true 关闭,或按通知渠道过滤。
  • 出站 HTTP 请求:可用 NIGHTWATCH_IGNORE_OUTGOING_REQUESTS=true 关闭,或按 URL 过滤。
  • 队列任务:可用 Nightwatch::rejectQueuedJobs() 过滤特定任务;也可通过 Queue::before() 解耦任务采样,使其独立于父上下文采样。

脱敏配置

  • 请求:敏感请求头(Authorization、Cookie、X-XSRF-TOKEN)会自动脱敏,可通过 NIGHTWATCH_REDACT_HEADERS 自定义;请求负载默认不采集,需 NIGHTWATCH_CAPTURE_REQUEST_PAYLOAD=true 开启,并用 NIGHTWATCH_REDACT_PAYLOAD_FIELDS 指定脱敏字段;也可用 Nightwatch::redactRequests() 程序化修改 URL、IP 等。
  • 查询、缓存、命令、异常、邮件、出站请求:均提供对应的 redact* 方法(如 redactQueries、redactCacheEvents、redactCommands、redactExceptions、redactMail、redactOutgoingRequests),在回调中修改记录对象的字段以完成脱敏。

适用场景

适用于正在使用或准备接入 Laravel Nightwatch 的项目,需要在生产环境中控制数据采集量、排除低价值事件噪音,并对敏感信息进行脱敏处理的场景。采样率可用于按请求量调整采集比例,过滤可用于屏蔽高频或无关事件,脱敏用于满足隐私合规要求。

限制与说明

资料强调 Nightwatch Documentation 是所有配置选项的权威且最新的信息来源,本技能提供的是实践指导与常见模式,具体细节、环境变量与 API 行为应以官方文档为准。资料中未提供该技能的安装命令、适用版本范围及收费信息。