דלג לתוכן הראשי

פרוטוקול טלמטריה (Device Metrics)

הטלמטריה היא הלב הפועם של ניטור המכשירים. כל מכשיר שולח חבילת נתונים (Payload) לשרת בתדירות קבועה (בברירת מחדל: כל 5 דקות). הנתונים נקלטים ב-src/telemetry, מנורמלים, ונשמרים בטבלת DeviceMetrics.

מבנה הנתונים (Payload JSON)

ה-Payload המלא כולל עשרות שדות, המחולקים לקטגוריות:

{
"cpuUsage": 45.2, // אחוז שימוש
"ramUsage": 600, // RAM בשימוש (MB)
"batteryLevel": 98,
"isCharging": true,
"temperature": 38.5, // טמפרטורת מעבד/סוללה
"network": {
"type": "WIFI",
"ssid": "Synagogue-Guest",
"signalStrength": -65, // dBm
"latency": 45
},
"runningApps": ["com.synagogue.tfila", "com.google.android.youtube"],
"screen": {
"isOn": true,
"brightness": 255
}
}

מנגנון אמינות (Retry Logic)

ה-TelemetryService מיישם מנגנון Retry with Backoff מול מסד הנתונים:

  • מכיוון שהטלמטריה מייצרת עומס כתיבה גבוה (Write Heavy), במקרה של נעילת טבלה (Deadlock) או עומס רגעי ב-DB, השרת ינסה לשמור שוב את הרשומה עד 5 פעמים לפני שיוותר.
  • זה מבטיח שלא יאבדו נתונים קריטיים גם תחת עומס.

צריכת נתונים (Analytics)

ניתן לשלוף את הנתונים במספר חתכים:

  1. Raw History: היסטוריה גולמית לגרפים (CPU לאורך זמן).
  2. Aggregated: ממוצעים (למשל: "מה ממוצע הזיכרון של כל המכשירים בגרסה 2.1?").
  3. Latest: הסטטוס הנוכחי (משמש לחיווי Online/Offline מהיר).