Skip to content

统计 ​

stats 块是 空对象 —— 它的唯一作用就是「存在即启用」统计子系统。没有任何可配置字段。

用法 ​

json
{
  "stats": {}
}

一旦存在 stats,统计引擎就开始收集按用户和按出站的字节计数。这些计数器可通过两种方式暴露:

  • gRPC —— 在 api 下打开 StatsService,从外部客户端调用 StatsService/GetStats。
  • HTTP / Prometheus —— 改为打开 metrics。

哪些计数器会被填充由 policy 控制:

  • policy.levels[N].statsUserUplink / statsUserDownlink / statsUserOnline 为该等级的用户启用单用户计数器。
  • policy.system.statsInboundUplink / statsInboundDownlink / statsOutboundUplink / statsOutboundDownlink 按入站 / 出站 tag 启用系统级计数器。

说明 ​

  • StatsConfig.Build(infra/conf/xray.go:376-378)始终返回零值的 stats.Config{},与输入无关。该块本质上只是一个标记。
  • 没有对应的 policy 开关时,计数器虽存在但始终为零 —— 这是统计「看起来坏掉」时的常见原因。

源码: infra/conf/xray.go:325-330 · v26.9.9 (52a412d)

由 Argsment 出品的 Core Tutorial