Skip to content

Stats

بلاک 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:342-344) صرف‌نظر از ورودی یک stats.Config{} با مقدار صفر برمی‌گرداند. این بلاک یک نشانگر است.
  • بدون یک پرچم سیاستِ متناظر، شمارنده‌ها وجود دارند اما در صفر باقی می‌مانند — مشکل رایج هنگامی که آمار «خراب» به نظر می‌رسد.

منبع: infra/conf/xray.go:339-344 · v1.260327.0 (d2758a0)

Core Tutorial اثر Argsment