انتقل إلى المحتوى
النوعإمكان جديد
المرحلةفوز سريع
مستوى الصعوبةبسيط
المهمةمراقبة خدمة
لـفرق التطوير
لـDevOps والبنية التحتية
الخدماتPipe
لماذا Hoodyأصيل لـ HTTP
لماذا Hoodyمتعدّد المستخدمين افتراضياً
النوعإمكان جديد
المرحلةفوز سريع
مستوى الصعوبةبسيط
المهمةمراقبة خدمة
لـفرق التطوير
لـDevOps والبنية التحتية
الخدماتPipe
لماذا Hoodyأصيل لـ HTTP
لماذا Hoodyمتعدّد المستخدمين افتراضياً
النوعإمكان جديد
المرحلةفوز سريع
مستوى الصعوبةبسيط
المهمةمراقبة خدمة
لـفرق التطوير
لـDevOps والبنية التحتية
الخدماتPipe
لماذا Hoodyأصيل لـ HTTP
لماذا Hoodyمتعدّد المستخدمين افتراضياً
النوعإمكان جديد
المرحلةفوز سريع
مستوى الصعوبةبسيط
المهمةمراقبة خدمة
لـفرق التطوير
لـDevOps والبنية التحتية
الخدماتPipe
لماذا Hoodyأصيل لـ HTTP
لماذا Hoodyمتعدّد المستخدمين افتراضياً
PIPE · ?PROGRESS · SSE

شريط تقدّم يستطيع مديرك مشاهدته دون انضمام

تُشغّل هجرة من ثماني ساعات. خمسة أشخاص يريدون حالةً دون استهلاك خانة مستقبِل أو مقاطعة البثّ. أضف ?progress إلى رابط الأنبوب. كل من يفتحه يحصل على لوحة HTML مباشرة — البايتات المنقولة، السرعة الحاليّة، الزمن المتبقّي، انتقالات الحالة. الهجرة تعمل بأقصى سرعة بصرف النظر عن عدد العيون التي تشاهد.

اقرأ توثيق Pipe progress

كيف يصبح مُعامل استعلام لوحةً مباشرة

?progress قراءة منفصلة على مسار الأنبوب تُصغي إلى حالة النقل دون المطالبة بخانة مستقبِل. الهجرة لا تلاحظها. المتصفّح يرى لوحة HTML؛ curl يرى تغذية SSE نظيفة.

خط زمني للمشاهدينصفر مقاعد استقبال
T+0 min
BOSS OPENS URL

تلصق رابط الـ pipe مع ?progress في متصفح هاتفها. تظهر لوحة HTML فوراً — state: waiting، 0% — بلا تثبيت، بلا تسجيل دخول، دون استهلاك أي receiver slot.

T+22 min
STREAM IS LIVE

يدفع SSE حدث state: streaming. يقفز شريط التقدم إلى 22%، تتصاعد الـ bytes، ويستقر معدل MB/s عند 118. تحدّث اللوحة نفسها كل 250 ms دون أي إعادة تحميل للصفحة.

T+4 h
BOSS GOES TO BED

تغلق التبويب. ينقطع اتصالها كمشاهِدة. الـ migration لا يلاحظ — لم يكن يوماً في مسار البيانات. يواصل الـ sender ومستقبله الحقيقي الوحيد العمل.

T+8 h
WAKES TO 100%

تعيد فتح الـ URL عند الفجر. تعرض اللوحة حدث done: 7.6 GB منقولة، 8h 2m، بلا أخطاء. الحالة على الخادم تنجو من إعادة التحميل — المتأخرون يرون دائماً السطر الأخير.

T+8h 4m
SENDS THE ACK

تعيد توجيه الـ URL إلى Slack الفريق. يفتحه ثلاثة مهندسين فيرون نفس حالة done. لا thread حالة لإغلاقه، لا لوحة Grafana لإلغاء تمييزها. URL واحد، خمسة شهود، صفر مقاطعات.

spectate.sh
# 1. المرسل — ترحيل ثماني ساعات. نفس الحال دائماً.
tar czf - /var/lib/postgres | curl -T - "$PIPE/api/v1/pipe/migration"

# 2. المتلقي — العميل الوحيد الذي يهم للضغط العكسي.
curl "$PIPE/api/v1/pipe/migration" | tar xzf - -C /restore

# 3. الرئيسة تفتح الرابط على هاتفها. لوحة معلومات HTML. بلا إعداد.
# => https://pipe.hoody.com/api/v1/pipe/migration?progress

# 4. تريد SSE لروبوت Slack؟ نفس الرابط، قبول مختلف.
curl -N -H "Accept: text/event-stream" \
  "$PIPE/api/v1/pipe/migration?progress" \
  | grep -E '^event: (progress|state|done)'
# event: state    \n data: ["state":"streaming","receivers":1]
# event: progress \n data: ["bytes":5046464512,"mbps":118,"etaSec":840]
# event: done     \n data: ["bytes":8160000000,"durationSec":28800]

ثلاثة أنواع أحداث SSE. state للانتقالات (idle → waiting → streaming → complete)، progress كل 250 ms أثناء تدفّق البايتات (bytesTransferred، السرعة، الزمن المتبقّي)، done مرّة واحدة في النهاية بإحصاءات نهائيّة. حتى خمسون متفرّجاً لكل مسار، TTL الاتّصال ثلاثون دقيقة، بقاء ثلاثين ثانية بعد النقل ليرى المتأخّرون سطر النجاح.

ثلاثة جماهير، رابط واحد

نفس نقطة نهاية ?progress تخدم تبويب متصفّح وأنبوب curl وصفحة حالة تستطلع في الخلفيّة. لا أحد منهم يُبطئ النقل.

مشاهدة الهجرة هي رابطها الخاصّ. الهجرة لا تلاحظ.

0 خانات مستقبِل مُستخدَمةحتى 50 متفرّجاً لكل مسار
هجرةمرسِل واحد، مستقبِل واحد، عرض نطاق كامل
متفرّجون12 عيناً على لوحة المدير، 0 ضغط عكسي
  • لا قناة Slack تتفقّدها
  • لا لوحة Grafana توصلها
  • لا نقطة نهاية تقدّم تكتبها

ما يستبدله هذا

كل فريق لديه طريقة للإجابة عن «إلى أين وصلت؟». معظم تلك الطرق تُكلّف خدمةً تشغّلها أو لوحة توصلها أو قناة محادثة تتفقّدها. مُعامل استعلام على رابط الأنبوب لا يُكلّف شيئاً من ذلك.

  • تحديثات قناة Slack #migrationsإنسان يكتب نِسَباً مئويّةً كل خمس دقائق
  • لوحات Grafanaمُصدِّر، مسح Prometheus، لوحة لصيانتها
  • نقاط نهاية تقدّم مُخصّصةمسار مُخصّص، مخطّط مُخصّص، خطأ احتفاظ مُخصّص
  • Tmux-share عبر SSHوصول حصن لمشاهدة رقم يتحرّك
  • لوحات مقاييس Datadogوكيل لكل مُضيف وتسعير لكل مقياس لنقلٍ واحد
  • ‹هل وصلنا بعد› pingsخمسة زملاء يسألون نفس السؤال على خيوط مختلفة

أرسل الرابط. توقّف عن إرسال التحديثات.

اقرأ دليل Pipe API

اقرأ حالات أخرى