פרוטוקול טלמטריה (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)
ניתן לשלוף את הנתונים במספר חתכים:
- Raw History: היסטוריה גולמית לגרפים (CPU לאורך זמן).
- Aggregated: ממוצעים (למשל: "מה ממוצע הזיכרון של כל המכשירים בגרסה 2.1?").
- Latest: הסטטוס הנוכחי (משמש לחיווי Online/Offline מהיר).