BatchPulse BatchPulse v1.0 · Live
חי · בודק זמינות הפעל ריצה
Automation · Bulk HTTP Orchestration

תזמרו אלפי בקשות HTTP כמו אופרטור אחד.

BatchPulse הופך כל endpoint לפעולה רב־שורתית: הגדירו תבנית, חברו וריאבלים פר־שורה, ותנו לסקדולר לדאוג ל־rate-limit, retry, ו־p95 latency tracking — בזמן אמת, עם backend פייתון אמיתי שרץ ב־zbang-api.

SSRF guard
RPS throttling
Exponential retry
Postgres persistence
live monitor — זמני תגובה אחרונים —
הצלחות שגיאות p95 ms
בקשות נשלחו
אחוז הצלחה
%
p95 latency
ms
חציון: ms · ממוצע: ms
ריצות פעילות
סה"כ batches:
Console · Live operations

קונסולת תזמור — batches & runs

כל batch הוא תבנית רב־שימושית. כל run יורה אותה עם CSV־של־וריאבלים, ומחזיר לוג שורה־אחר־שורה.

Batches
Recent runs
RunBatchסטטוסשורותהצלחהp95
פרטי שורה
בחרו run

בחרו run כדי לראות כל שורה — קוד, latency, וגוף תגובה.

Composer · Template engine

קומפוזר — תבנית + וריאבלים = ריצה

תבנית URL/headers/body עם {{ var }} בסגנון Jinja. תצוגה מקדימה חיה לפני שיגור.

תצוגה רנדרת את התבנית — לא משגרת בקשה.
Rendered request ממתין…
// תוצאה תופיע כאן אחרי לחיצה על "תצוגה מקדימה"
URL כתיבה
method
resolved vars
Analytics · Live aggregations

אנליטיקה — latency timeline & status mix

הגרפים נטענים ישירות מ-/api/batchpulse/analytics. אין mock — אלו ריצות אמיתיות מהמסד.

Latency timeline

ממוצע ו־p95 לאורך 18 ריצות אחרונות

avg p95

Status code mix

חלוקה לפי קוד HTTP במאות ה-200/300/400/500

Throughput per run

שורות שעובדו לפי ריצה

Health rings

תקציר ביצועים

Settings · Workspace policy

הגדרות — מדיניות, הגנת SSRF, ניטור

השדות נשמרים בפועל ב-batchpulse_settings ומשפיעים מיידית על הסקדולר.

BatchPulse חוסם אוטומטית כתובות IP פנימיות (10.x, 172.16-31, 192.168.x, 127.x) ואת ה-metadata service של AWS/GCP.

Stack · How it's built

סטאק — שש שכבות, שום magic

הכל קוד אמיתי שרץ עכשיו על השרת. אפשר לקרוא לכל endpoint ידנית.

FastAPI router

10 endpoints תחת /api/batchpulse — CRUD לתבניות, יצירת ריצות, שאילתות אנליטיקה, הגדרות.

routers/batchpulse.py

PostgreSQL · 4 טבלאות

batches, runs, rows, settings — עם FKs מדורגים ו־cascade delete.

models.py

Async scheduler

לולאה אסינכרונית ב־asyncio שבוחנת ריצות בתור כל 5 שניות ומפיצה למשימות מקבילות.

services/batchpulse.py

SSRF hardening

חסימת private IPs, metadata endpoints, ורשימה מותאמת אישית — לפני כל שיגור.

_host_is_blocked

Retry + backoff

retry פר־שורה עם exponential backoff עד 5 ניסיונות, ניתן להגדרה לכל batch בנפרד.

execute_row()

Live analytics

p50/p95 חיים, code breakdown, timeline של ריצות — מחושב אד־הוק על SQL ועובר ל־client.

compute_analytics()