BodyPlus XPro

מעבד דיבאג מערכת

0 0 Version: dev
Engineering debug Engineering debug

Debug hub and investigation entry

Use this page as the main entry to engineering diagnostics. Start from the narrower debug lanes first, then drop into the full system panels only when needed.

This page stays internal. The goal is to reduce operator confusion by pushing narrower debug lanes higher than the full omnibus page.

Pick the narrowest lane

Start with Video, Exercise, QA, or Upload before opening the full hub.

Use the hub for cross-system evidence

This page is for multi-subsystem investigations and broad pipeline snapshots.

Keep operator work elsewhere

Routine control and validation actions should stay on System, Exercise, Video Test, or QA Lab.

Debug lanes
Pick the smallest diagnostic surface that matches the issue before using the full hub.
מצב דיבאג
פועל (ON)
כשדיבאג כבוי, הפאנלים הכבדים והפולינג נעצרים כדי לחסוך כוח מחשוב. אפשר להדליק לזמן קצר כשצריך לחקור בעיה, ואחר כך לכבות שוב.
🔬 מעבד דיבאג מערכת
כרטיס מרכזי לכל הפייפליין: וידאו → MPR → Payload Bridge → Engine → DB. מכאן אפשר להפעיל רענון לכל הפאנלים, להעתיק Snapshot מלא, ולהוציא צילום מסך.
תרשים זרימה — לולאת עיבוד
1. Browser / Camera — לכידת וידאו מהדפדפן או מ-MPR.
2. MPR / MJPEG — סטרים MJPEG מה-Runner או מה-Video Engine.
3. Payload Bridge — הפקת Payload, מדדים ו-SSOT.
4. Exercise Engine — ניתוח סטים, סיווג תרגיל, ניקוד.
5. Persist / DB — ניהול סטים, דוחות, SetReportManager.
כפתור רענן את כל הפאנלים מפעיל ברקע את כפתורי הרענון של כל הפאנלים (וידאו, קינמטיקה, גשר, תרגיל, DB, ענן) וגם מריץ self-test למצלמה/MPR.
איך לקרוא את המסך הזה בכלל?
  • System / Deps – מוודא שכל הספריות מותקנות ובגרסה הנכונה; חשוב במיוחד לדיבאג בענן.
  • Cloud Debug – מצב דיפלוי בענן: Env, FileSystem בקונטיינר, אינטגרציות (DB / OpenAI / Redis / Storage) וגם מצב engine/pipeline (payload).
  • Video / MJPEG / MPR Debug – דיבאג של שרשרת הווידאו: FrameBus / ingest / סטרים MJPEG / MediaPipeRunner ו‑payload.
  • Multi-Cam Sync Debug – סנכרון בין מספר מצלמות, skew, drops, וסטטוס ה‑router של multi‑cam.
  • Kinematics Debug – בודק שהקינמטיקה בריאה (landmarks, engine, bridge, SSOT, QC, View/Gate, Filters) ושהמפתחות לניקוד מכוסים.
  • Payload Bridge Debug – מצב הגשר וה-payload האחרון.
  • Exercise Debug Lab – כל הפייפליין של זיהוי תרגיל וסטים.
  • Database + Engine Debug – חיבור ל-API, מצב DB, מנוע הניקוד ו-ingest של דמו.
  • Copy Snapshot מלא – מעתיק JSON מלא של כל הפאנלים (כולל וידאו מהשרת + מצב הפאנלים ב‑UI, מעולה לשליחה ל-ChatGPT).
  • Copy Indicators – מעתיק רק את הסטטוסים הטקסטואליים (לוג מהיר של מצב המערכת).
🧩 System / Deps — ספריות וסביבת ריצה
בדיקה מרוכזת של התקנות פייתון (pip) ושל Environment בענן/לוקאל, מבוסס על /api/debug/deps + app/env_deps_libraries.py.
API: /api/debug/deps
JS: js/System/system_deps.js
איך לקרוא את System / Deps?
  • pip_name – שם החבילה כמו ב-requirements.txt.
  • import_name – איך עושים לה import בקוד (numpy / cv2 / mediapipe וכו').
  • required – אם זה True, המערכת מצפה שהספרייה תהיה מותקנת.
  • installed_version – הגרסה שמותקנת בפועל בסביבה.
  • required_spec – מה נדרש ב-requirements (למשל >=1.24,<2).
  • import_ok – האם ה-import הצליח (אם False יש בעיית התקנה או PATH).
  • version_ok – האם הגרסה המותקנת עומדת בדרישות; אם False לראות version_note.
  • version_note – הסבר קצר (למשל < min 1.24 או != required 2.3.1).
  • error – טקסט מלא של השגיאה (ModuleNotFoundError / PackageNotFoundError / ImportError).
  • בתחתית הפאנל מופיע גם Environment – גרסת פייתון, platform, cwd וכל ה-ENV.
טוען סטטוס ספריות וסביבה...
☁️ דיבאג ענן / Cloud Debug
צילום מצב של דיפלוי בענן: Environment, FileSystem בקונטיינר, אינטגרציות (DB / OpenAI / Redis / Storage), וגם מצב engine/pipeline (payload) כדי להבין אם בכלל מגיע payload טרי והאם דגלי ה-writers הגיוניים.
API: /api/system/cloud, /api/system/summary, /api/system/integrations, /api/system/fs, /version
JS: js/System/cloud_debug.js
איך לקרוא את דיבאג ענן?
  • השורה העליונה – מסכמת אם ענן/FS/אינטגרציות/engine בסטטוס OK או שיש בעיה (צבע ירוק/אדום).
  • סיכום מערכת (summary) – כולל רשימת reasons; אם יש no_payload, payload_not_recent או pipeline:... תראה את זה כאן.
  • Engine/Payload – מתורגם לשורה "מצב engine/payload": האם יש payload, האם הוא טרי (recent), והאם יש metrics/measurements.
  • Pipeline – מתורגם לשורה "Pipeline (writers / warnings)": אלו writers פעילים (PUBLISH_FROM_MPR, MAIN_PUBLISH וכו') ומה האזהרות (no_payload_writer_enabled / multiple_payload_writers_enabled / payload_push_url_unusual_path).
  • עמודת Cloud Env – מראה APP_ENV / FLASK_ENV / אזור ענן / פרוקסי / EXPECT_GPU.
  • עמודת FileSystem – מראה תיקיות חשובות בקונטיינר (tmp/logs/uploads) והאם יש הרשאות כתיבה.
  • Integrations – רשימה של DB, OpenAI, Redis, Object Storage: האם מוגדרים, ואם קיימות בדיקות חיות – האם ניתן להגיע אליהם בפועל.
  • בדיקת GPU / MediaPipe – כפתור שמריץ /api/mediapipe/selftest.
  • JSON מלא – למטה יש כפתור {} שמציג JSON מלא.
טוען דיבאג ענן...
📹 Video / MJPEG / MPR Debug
דיבאג מרוכז למערכת הווידאו: FrameBus / ingest / סטרים MJPEG / MediaPipeRunner (MPR) / payload.
מצב וידאו: לא נבדק
Stream / FrameBus: —
MPR: —
Payload / Bridge: —
ts:
איך לקרוא את Video / MPR Debug?
  • Stream / FrameBus – מצב מקור הפריימים + FrameBus.
  • MPR – מצב MediaPipeRunner (מקור, FPS, counters ושגיאות).
  • ENV – קונפיגציה רלוונטית (MPR_SOURCE, MPR_MJPEG_URL וכו').
  • Problems – רשימת בעיות שהחוקים מזהים.
  • JSON Debug – צילום מצב מלא של הקריאות /api/video/status, /api/framebus/status, /api/mpr/status, וב- CopySnapshot מלא גם /api/video/debug מהשרת.
משתמש ב-/api/video/status, /api/framebus/status, /api/mpr/status דרך video_debug.js.
Performance
CPU OK
CPU (proc): לא זמין
RSS: לא זמין
Top CPU: לא זמין
Pressure: לא זמין
raw_fps: לא זמין | frame_age_ms: לא זמין
queue_depth: לא זמין | drops_total: לא זמין
last_fused_age_ms: לא זמין | multi_view_fused_total: לא זמין
ts cpu% rss_mb top
Stream / FrameBus
// עדיין לא נטען סטטוס וידאו
MediaPipeRunner (MPR)
{}
ENV / Config (ווידאו + MPR)
{}
בעיות מזוהות (Problems)
  • עדיין לא נטען Snapshot. לאחר רענון יופיעו כאן בעיות ברמת ERROR/WARN/INFO.
מצלמות (Multi-Cam)
אם השרת מדווח על מצלמות multi-cam דרך /api/video/debug – הן יופיעו כאן.
JSON Debug (Video Snapshot)
// עדיין לא נטען /api/video/debug
🎛️ Multi‑Cam Sync Debug — סנכרון בין מצלמות
פאנל דיבאג לסינכרון Multi‑Cam: סנכרון פריימים ממספר מצלמות, skew, drops, וסטטוס ה‑router של payload.multi_cam.
מצב סנכרון: לא נבדק
API: /admin/multi_cam_debug/state · /last_fused · /flush
איך לקרוא את Multi‑Cam Sync Debug?
  • מצב סנכרון (צ'יפ עליון) – מסכם אם יש פריימים מסונכרנים, כמה drops/skew קיימים, והאם היחס תקין.
  • Views / primary – אילו מצלמות משתתפות בסינכרון, ומהי ה־primary (view בסיסי ל‑merge).
  • Config – max_skew_ms (סטיית זמן מותרת בין מצלמות) ו‑wait_timeout_ms (כמה זמן ממתינים לפני drop).
  • Frames – counters: total_push, total_fused, last_skew_ms, ועוד סטטיסטיקות.
  • FrameBus Debug – מתוך debug_extra.framebus, מראה age_ms, fps, active_provider ו‑ttl_ms של FrameBus.
  • Payload Multi‑Cam – מתוך debug_extra.payload_multi_cam, מסכם mode, views, primary_view וסטטיסטיקות router (fused_total / passthrough_total / push_total).
  • Imports – חיווי אם ה‑import של FrameBus וה‑PayloadBridge הצליחו (streamer_import / payload_bridge_import).
  • Last Fused Payload – ה‑payload המאוחד האחרון מה‑merger: meta.multi_cam + debug.multi_cam_* + measurements.
  • Flush – מחיקה של buffers + סטטיסטיקות multi‑cam, להתחיל "סשן" חדש.
Views: Views: —
Skew:
Drops / Violations:
מצב Debug:
Last emit ts:
Views / primary
Config (skew / timeout)
Frames / Skew
סטטיסטיקות Multi‑Cam (stats)
Key Value Description
— עדיין לא נטען state —
buffers per view (state.buffers)
// אין מידע buffers
JSON מלא של MultiCamSync state
// state ריק או שגוי
FrameBus Debug (debug_extra.framebus)
FrameBus: אין מידע (debug_extra.framebus לא קיים).
// framebus: null
Payload Multi‑Cam Router (debug_extra.payload_multi_cam)
Multi-Cam Payload: אין מידע מהגשר (payload_bridge או multi_cam.block לא זמינים).
// payload_multi_cam: null
Imports (FrameBus / PayloadBridge)
Imports: אין מידע (debug_extra.imports חסר).
// imports: null
Last Fused Payload + Router State
meta.multi_cam + debug.multi_cam_* + measurements (מה‑merger).
// אין פיילוד מאוחד אחרון (last_fused empty)
debug.multi_cam_metric_src (מקורות המדד לסנכרון)
// אין debug.multi_cam_metric_src בפיילוד האחרון
Router State (לצורך תאימות אחורה)
// אין router_state – כנראה MultiCamSync רץ ללא GLOBAL_MULTI_CAM
🦴 Kinematics Debug — Pose / Landmarks / Engine Inputs
בדיקה מהירה של שרשרת הקינמטיקה: Landmarks → Engine → Bridge → SSOT → QC → View/Gate → Filters.
מצב כללי: לא נבדק
Engine: —
Bridge: —
SSOT: —
Engine Bridge SSOT
run_id:
איך לקרוא את Kinematics Debug?
  • Overall pill – סיכום מצב כללי של הפייפליין.
  • Engine / Bridge / SSOT msg – טקסט קצר לכל שלב.
  • problems – רשימת בעיות שהשרת זיהה.
  • Mapping Engine ↔ Bridge – התאמת מפתחות.
  • Flow Analysis – בדיקות OK/FAIL לכל שלב.
  • View / Gate debug – למה פריים עבר / נחסם.
  • QC – דגלי איכות.
  • Filter debug – אם KINEMATICS_FILTER_DEBUG מופעל.
  • Engine keys / Aliases / Canonical – כיסוי מפתחות.
טוען את ה-pipeline מ-/api/kinematics/debug/pipeline.
הכפתורים מדברים עם kinematics_debug.js.
תקלות מזוהות לאורך הפייפליין (problems) — WARN/ERROR שנוצרים בצד השרת
כאן יופיעו WARN/ERROR שנוצרים בשרת.
JSON Debug (Kinematics Pipeline Snapshot) — צילום מצב מלא של כל הפייפליין
// עדיין לא נטען debug קינמטיקה
Mapping Engine ↔ Bridge — התאמת מפתחות בין engine לבין raw_metrics
בודק התאמה בין מפתחות המנוע לבין raw_metrics של הגשר.
לאחר רענון יופיע כאן coverage ורשימות engine_only / bridge_only.
engine_metrics: 0 · bridge_metrics: 0
Engine metrics (raw) — JSON גולמי מה‑engine לאורך הפריים
JSON גולמי מהמנוע
Flow Analysis — בדיקות שלבים — health check לכל שלב בפייפליין
לכל שלב יש רשימת בדיקות (checks) — למשל "יש metrics?", "landmarks_ok?", "coverage סביר?", "יש payload?".
שלב בדיקה OK? ערך
— עדיין לא נטען flow analysis —
Bridge raw_metrics (מתוך /api/raw_metrics/ui) — מה הגשר מעביר ל‑UI בפועל
Bridge raw_metrics (מתוך /api/raw_metrics/ui)
View / Gate debug — למה פריים עבר / נחסם מבחינת תצוגה
View / Gate debug (מצב תצוגה והחלטת gate)
מבוסס על view_debug מה-SSOT; מראה למה פריים נחשב "מותר" או "חסום".
עדיין אין נתוני view/gate.
SSOT payload (get_last_payload) — ה‑payload המאוחד (האמת הלוגית)
SSOT payload (get_last_payload)
QC — בקרת איכות קינמטיקה — דגלי איכות וסטטיסטיקה לאורך הסשן
QC לפריים הנוכחי + סטטיסטיקה מצטברת
דגלי QC מגיעים מ-compute_qc_flags בצד השרת.
סטטיסטיקה מצטברת במהלך הסשן:
עדיין אין סטטיסטיקה.
עדיין לא התקבלו דגלי QC.
Filter debug (מסננים / smoothing) — EMA / jitter / outlier clamp לכל metric
Filter debug (מסננים / smoothing)
אם KINEMATICS_FILTER_DEBUG מופעל – כאן רואים raw מול filtered.
עדיין אין filter_debug.
Engine keys inventory — כל המפתחות שה‑engine מוציא כרגע
מציג את כל המפתחות שהמנוע מגדיר לניקוד כרגע.
לאחר טעינת snapshot יופיעו כאן המפתחות.
Aliases coverage (engine ↔ aliases.yaml) — אילו מפתחות לא מכוסים באליאסים
בודק מנופים/מפתחות ללא alias או pass_through.
דורש /api/exercise/aliases פעיל.
Canonical keys (from aliases.yaml)
רשימה קבועה של כל canonical_keys.
🧠 Payload Bridge Debug — SSOT / Raw Metrics
אינדיקציה חיה לגשר ה-Payload: payload_last, סטטוס ברידג', Health של DB, ומקורות המדדים.
מצב גשר: לא נבדק
Bridge: —
Engine: —
Sources: —
DB: —
איך לקרוא את Payload Bridge Debug?
  • Overall pill – מצב כללי של הגשר.
  • Bridge / Engine / Sources / DB – טקסט מה-API.
  • Snapshot (Payload) – payload יציב.
  • Payload אחרון – מה שהגיע עכשיו.
משתמש ב-/api/payload_last, /api/payload_status ועוד.
Snapshot (Payload)
// עדיין לא נטען Snapshot
Payload אחרון (אם מובדל מה-Snapshot)
// —
💪 Exercise Debug Lab — זיהוי תרגיל וסטים
מעבד דיבאג לתרגילים: זיהוי תרגיל, YAML, מסווג, ניקוד, DB.
Exercise Debug: לא נבדק
Bridge: —
Gate metrics: —
YAML: —
Classifier: —
Score: —
DB: —
ID: Label:
איך לקרוא את Exercise Debug Lab?
  • Bridge – האם הגשר מעביר מדדים מספיקים.
  • Gate metrics – מצב שכבת gate.
  • YAML – קבצי ספריית תרגילים.
  • Classifier – תרגיל שזוהה.
  • Score – מצב ניקוד.
  • DB – דו"חות ב-DB.
שולף מ-/api/exercise/debug/pipeline.
JSON Debug (Exercise Pipeline)
// עדיין לא נטען exercise debug
🗄️ Database + Engine Debug — DB / Engine / SetReportManager
כאן סוגרים את הלופ: API, DB, מנוע ניקוד, SetReportManager ו-ingest דמו.
חיבור API: לא נבדק מצב DB: לא נבדק
מנוע ניקוד: לא נבדק סטים חיים: לא נבדק Trace ingest: אין נתונים
סיכום: עדיין לא בוצעו בדיקות
איך לקרוא את Database + Engine Debug?
  • חיבור API – זמינות ה-endpoints.
  • מצב DB – integrity checks וטבלאות.
  • מנוע ניקוד – בריאות הניקוד.
  • Seed דמו – יצירת נתונים לדוגמה.
  • Ingest דמו – שליחת JSON לגמרי.
Flow: Engine → Sets → DB → API
Engine: טרם נבדק.
SetReportManager: טרם נבדק.
DB / Persist: טרם נבדק.
API: טרם נבדק.
פעולות
מומלץ להתחיל ב‑Ping + Diag.
JSON דמו ל-ingest (ניתן לעריכה חופשית)
JSON פלט נוכחי נשלף ע"י database_debug.js
// עדיין לא נטען JSON דיבאג ל-DB