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:379-381) возвращает нулевое значение stats.Config{} независимо от входных данных. Блок — просто маркер.
  • Без соответствующего флага в policy счётчики существуют, но остаются нулевыми — частая причина «сломанной» на вид статистики.

Исходный код: infra/conf/xray.go:353-358 · v26.7.28 (5ca6f4b)

Core Tutorial от Argsment