हमारी प्रतिबद्धता
Users को साफ दिखना चाहिए कि service कौन सी telemetry collect करती है। यह page platform health monitor करने वाली हर metric को document करता है।
इस page की सारी telemetry aggregate-only है। हम telemetry keys में personal identifiers store नहीं करते।
Verification metadata
Route metadata
- Route:
/transparency/metrics/ - Last verified:
- Next review due:
- Verification scope: current metric key inventory और retention policy के विरुद्ध manual content review.
Known limitations
- Metric key inventory code के साथ manually sync रखा जाता है; quarterly reviews के लिए automated key-diff tooling planned है।
- Retention values current configuration defaults दिखाते हैं और future tenant-specific overrides को reflect न कर सकते हैं।
यह metadata quarterly audit close-out के हिस्से के रूप में update होता है।
Metric inventory
| Metric category | Personal data? | Retention | Purpose |
|---|---|---|---|
| Session lifecycle metrics | नहीं | 30 days raw, 52 weeks rollup, 24 months monthly | User experience और capacity planning |
| Redis health metrics | नहीं | 24 hours raw, 7 days hourly, 4 weeks daily | Infrastructure reliability |
| Business aggregates | नहीं | 30 days daily, 52 weeks weekly, 24 months monthly | Growth और planning |
| Frontend telemetry events | नहीं | 30 days | Error detection और feature health |
| Encryption operation metrics | नहीं | 30 days raw, 52 weeks rollup, 24 months monthly | Cryptographic reliability |
Session lifecycle metrics No personal data
हम usage patterns समझने के लिए login/logout totals और session duration ranges count करते हैं। हम यह track नहीं करते कि कौन login हुआ।
What: daily login events, logout events, और session duration distributions.
Why: authentication issues detect करना, friction reduce करना, और capacity planning improve करना.
How: daily counters और fixed duration buckets.
Retention: 30 days raw -> 52 weeks rollup -> 24 months monthly -> purge.
Buckets:
0-5min- quick checks5-30min- typical session30-60min- extended session60min+- long work session
Example keys:
telemetry:auth:login:2026-03-09 -> 247 telemetry:auth:logout:2026-03-09 -> 219 telemetry:session:duration:0-5min -> 45 telemetry:session:duration:5-30min -> 128 telemetry:session:duration:30-60min -> 39 telemetry:session:duration:60min+ -> 7
Privacy Guard: duration calculation के तुरंत बाद session hash destroy हो जाता है। Telemetry keys में user UUIDs store नहीं होते।
Volume Cap: maximum 734 keys/year.
Redis health metrics No personal data
हम Redis को infrastructure health data की तरह monitor करते हैं, user activity data की तरह नहीं।
What: memory usage, namespace by key counts, और connection stats.
Why: memory leaks detect करना, evictions prevent करना, और growth watch करना.
How: scheduled interval पर Redis INFO output parse करना.
Retention: 24 hours raw -> 7 days hourly -> 4 weeks daily -> purge.
Namespaces: max 10 tracked namespaces (hardcoded whitelist).
session:*- Active sessionslock:*- Distributed lockscache:*- Application cachetelemetry:*- Metrics storageratelimit:*- Rate limiting countersnonce:*- CSRF tokenstemp:*- Temporary dataqueue:*- Job queuesencryption:*- Wrapped keysfeature:*- Feature flags
Example keys:
telemetry:redis:memory:used_mb:2026-03-09:14 -> 247 telemetry:redis:keys:session:2026-03-09:14 -> 342 telemetry:redis:keys:lock:2026-03-09:14 -> 18
Privacy Guard: namespace counts aggregate-only हैं। Key content inspect नहीं होता।
Volume Cap: active rolling window में maximum 1,680 keys.
Business aggregate metrics No personal data
ये planning के लिए top-level platform totals हैं, individuals को profile करने के लिए नहीं।
What: total users, active accounts, average work entries.
Why: capacity planning और growth analysis.
How: database counts की daily aggregation.
Retention: 30 days daily -> 52 weeks weekly -> 24 months monthly -> purge.
Example keys:
telemetry:business:users:total:2026-03-09 -> 1247 telemetry:business:users:active:2026-03-09 -> 892 telemetry:business:work:avg_per_user:2026-03 -> 23.4
Privacy Guard: aggregate-only values. Per-user telemetry records नहीं।
Volume Cap: 1,095 keys/year.
Frontend telemetry events No personal data
Event telemetry client-side failures और feature reliability issues detect करने में मदद करती है।
What: frontend performance events, error counts, और feature usage events.
Why: client issues identify करना और product health monitor करना.
How: approved event types के लिए ही /api/telemetry/record पर POST.
Retention: 30 days (TTL increment पर enforced).
Telemetry submission limits और example event types:
- 90 events/minute per client (abuse prevention)
calendar.load.successcalendar.load.failureencryption.dek.unwrap.successencryption.dek.unwrap.failurepasskey.login.successpasskey.login.failure
Example keys:
telemetry:event:calendar.load.success:2026-03-09 -> 3421 telemetry:event:passkey.login.failure:2026-03-09 -> 17
Privacy Guard: event types allowlisted हैं। Telemetry keys में arbitrary strings या user/session identifiers नहीं।
Volume Cap: maximum 18,250 keys/year.
Encryption operation metrics No personal data
Cryptographic operations को platform reliability signals की तरह monitor किया जाता है।
What: DEK wrap/unwrap success और failure counters.
Why: cryptographic failures और misconfiguration जल्दी detect करना.
How: हर operation outcome पर success/failure counters increment होते हैं.
Retention: 30 days raw -> 52 weeks rollup -> 24 months monthly -> purge.
Example keys:
telemetry:encryption:dek:wrap:success:2026-03-09 -> 1203 telemetry:encryption:dek:wrap:failure:2026-03-09 -> 2 telemetry:encryption:dek:unwrap:success:2026-03-09 -> 5847 telemetry:encryption:dek:unwrap:failure:2026-03-09 -> 31
Privacy Guard: केवल operation counts record होते हैं। Key material, ciphertext, या personal identifiers store नहीं होते।
Volume Cap: 1,460 keys/year.
Retention and compaction pipeline
Raw data: daily counters 30 days बाद automatically expire होते हैं.
Weekly rollups: 52-week retention के लिए scheduled aggregation.
Monthly rollups: 24-month retention के लिए scheduled aggregation.
Purge: 24 months से पुरानी metrics delete होती हैं.
Compaction script: /scripts/compact-metrics.php.
Code में enforcement
Privacy constraints CI में contract tests से validate होते हैं।
MetricsPrivacyContractTest::testSessionDurationHasExactlyFourBuckets() MetricsPrivacyContractTest::testNoUserUUIDsInTelemetryKeys() MetricsPrivacyContractTest::testRedisNamespacesNeverExceedTen() MetricsPrivacyContractTest::testAllTelemetryKeysHaveTTL()
Guardrails: hardcoded namespace/event limits unbounded metric growth रोकते हैं।
Additional rate limits:
- Admin metrics queries: 100 requests/hour
- Public health checks: 600 requests/hour
Access and verification
Metrics Dashboard: /admin/metrics (authentication और admin role required).
Public Health Endpoint: /api/v1/health aggregate platform status लौटाता है.
Last Updated: March 9, 2026.