Skip to content

Observatory

بلوک observatory تأخیر را برای مجموعه‌ای از خروجی‌ها با ارسال دوره‌ای یک درخواست HTTP پروب از طریق هر یک اندازه‌گیری می‌کند. نتایج به strategy: leastPing متعادل‌کنندهٔ بار خورانده می‌شوند تا همیشه از سریع‌ترین خروجی قابل دسترسی استفاده کند.

گزینه‌ها

فیلدنوعپیش‌فرضمقادیر مجازتوضیحات
subjectSelector[]string[]<outbound tag prefix>برچسب‌های خروجی برای پروب. هر مدخل یک پیشوند است؛ هر خروجی که برچسب آن با یکی از رشته‌های فهرست‌شده آغاز می‌شود پروب می‌شود.
probeURLstring(required)<URL>URL که ناظر روی هر خروجی پروب‌شده واکشی می‌کند. تأخیر به‌صورت سر-به-سر روی این درخواست اندازه‌گیری می‌شود.
probeIntervalduration.Duration10m<duration>صبر بین پروب‌ها برای همان خروجی. رشته‌های مدت‌زمان به سبک Go مانند "30s", "5m" را می‌پذیرد.
enableConcurrencyboolfalsetrue | falseپروب همهٔ خروجی‌های انتخاب‌شده به‌صورت همزمان به‌جای متوالی.

منبع: infra/conf/observatory.go:12-17 · ثابت‌شده در v1.260327.0 (d2758a0)

مثال

json
{
  "outbounds": [
    { "tag": "proxy-jp", "protocol": "vless" },
    { "tag": "proxy-us", "protocol": "vless" }
  ],
  "observatory": {
    "subjectSelector": ["proxy-"],
    "probeURL": "http://www.google.com/generate_204",
    "probeInterval": "30s",
    "enableConcurrency": true
  },
  "routing": {
    "balancers": [
      { "tag": "balancer", "selector": ["proxy-"], "strategy": { "type": "leastPing" } }
    ]
  }
}

نکات

  • انتخابگر یک تطبیق پیشوندی است — "proxy-" شامل "proxy-jp", "proxy-us" و غیره می‌شود. برای پروب همهٔ خروجی‌ها از رشتهٔ خالی استفاده کنید (به‌ندرت مطلوب).
  • برای پروب همزمان سریع‌تر با آگاهی از round-trip در HTTP/2 به burstObservatory مراجعه کنید.

منبع: infra/conf/observatory.go:12-17 · v1.260327.0 (d2758a0)

Core Tutorial اثر Argsment