Skip to content

Статистика ​

Блок stats — это пустой объект: его единственное назначение — включать подсистему статистики самим фактом своего присутствия. Настраиваемых полей нет.

Использование ​

json
{
  "stats": {}
}

Когда stats присутствует, движок статистики начинает собирать счётчики байтов по пользователям и по исходящим. Затем эти счётчики доступны двумя способами:

  • gRPC — включите StatsService в блоке api и вызывайте StatsService/GetStats из внешнего клиента.
  • HTTP / Prometheus — вместо этого включите metrics.

Какие счётчики заполняются, определяет policy:

  • policy.levels[N].statsUserUplink / statsUserDownlink / statsUserOnline включают счётчики по пользователям для пользователей данного уровня.
  • policy.system.statsInboundUplink / statsInboundDownlink / statsOutboundUplink / statsOutboundDownlink включают общесистемные счётчики по тегам входящих и исходящих.

Примечания ​

  • StatsConfig.Build (infra/conf/xray.go:376-378) возвращает нулевое значение stats.Config{} независимо от входных данных. Блок — просто маркер.
  • Без соответствующего флага в policy счётчики существуют, но остаются нулевыми — частая причина «сломанной» на вид статистики.

Исходный код: infra/conf/xray.go:325-330 · v26.9.9 (52a412d)

Core Tutorial от Argsment