Platform metrikleri şeffaflığı

Bu sayfa PayCal’ın hangi telemetriyi topladığını, neden topladığını ve ne zaman sildiğini gösterir.

Taahhüdümüz

Kullanıcılar bir servisin tam olarak hangi telemetriyi topladığını görebilmelidir. Bu sayfa platform sağlığını izlemek için kullanılan her metriği belgeler.

Bu sayfadaki tüm telemetri yalnızca aggregatettir. Telemetri anahtarlarında kişisel tanımlayıcı saklamayız.

Doğrulama metadata

Route metadata

  • Route: /transparency/metrics/
  • Son doğrulama:
  • Sonraki review:
  • Doğrulama kapsamı: mevcut metric key inventory ve retention policy ile manuel content review.

Bilinen sınırlamalar

  • Metric key inventory kodla manuel olarak senkron tutulur; quarterly reviews için otomatik key-diff tooling planlanmıştır.
  • Retention değerleri mevcut configuration defaults yansıtır ve gelecekteki tenant-specific overrides yansıtmayabilir.

Bu metadata üç aylık audit close-out kapsamında güncellenir.

Metrik envanteri

Metrik kategorisi Kişisel veri? Saklama Amaç
Session lifecycle metrikleri Hayır 30 gün raw, 52 hafta rollup, 24 ay monthly Kullanıcı deneyimi ve kapasite planlama
Redis health metrikleri Hayır 24 saat raw, 7 gün hourly, 4 hafta daily Altyapı güvenilirliği
Business aggregates Hayır 30 gün daily, 52 hafta weekly, 24 ay monthly Büyüme ve planlama
Frontend telemetry events Hayır 30 gün Hata tespiti ve feature health
Encryption operation metrikleri Hayır 30 gün raw, 52 hafta rollup, 24 ay monthly Kriptografik güvenilirlik

Session lifecycle metrikleri Kişisel veri yok

Kullanım örüntülerini anlamak için login/logout toplamları ve session duration aralıklarını sayarız. Kimin login olduğunu takip etmeyiz.

Ne: daily login events, logout events ve session duration distributions.

Neden: authentication issues tespit etmek, friction azaltmak ve capacity planning iyileştirmek.

Nasıl: daily counters ve fixed duration buckets.

Saklama: 30 gün raw -> 52 hafta rollup -> 24 ay monthly -> purge.

Buckets:

  • 0-5min - hızlı kontroller
  • 5-30min - tipik session
  • 30-60min - extended session
  • 60min+ - uzun work session

Örnek anahtarlar:

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: session hash duration calculation sonrası hemen yok edilir. Telemetry keys içinde user UUID saklanmaz.

Volume Cap: maksimum 734 keys/year.

Redis health metrikleri Kişisel veri yok

Redis’i user activity data olarak değil infrastructure health data olarak izleriz.

Ne: memory usage, namespace bazlı key counts ve connection stats.

Neden: memory leaks tespit etmek, evictions önlemek ve growth izlemek.

Nasıl: scheduled interval ile Redis INFO output parse edilir.

Saklama: 24 saat raw -> 7 gün hourly -> 4 hafta daily -> purge.

Namespaces: max 10 tracked namespaces (hardcoded whitelist).

  • session:* - Active sessions
  • lock:* - Distributed locks
  • cache:* - Application cache
  • telemetry:* - Metrics storage
  • ratelimit:* - Rate limiting counters
  • nonce:* - CSRF tokens
  • temp:* - Temporary data
  • queue:* - Job queues
  • encryption:* - Wrapped keys
  • feature:* - Feature flags

Örnek anahtarlar:

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 sadece aggregate edilir. Key content inspect edilmez.

Volume Cap: active rolling window içinde maksimum 1.680 keys.

Business aggregate metrikleri Kişisel veri yok

Bunlar bireyleri profile etmek için değil planlama için kullanılan platform toplamlarıdır.

Ne: total users, active accounts, average work entries.

Neden: capacity planning ve growth analysis.

Nasıl: database counts günlük aggregate edilir.

Saklama: 30 gün daily -> 52 hafta weekly -> 24 ay monthly -> purge.

Örnek anahtarlar:

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: sadece aggregate values. Per-user telemetry records yok.

Volume Cap: 1.095 keys/year.

Frontend telemetry events Kişisel veri yok

Event telemetry client-side failures ve feature reliability issues tespit etmeye yardım eder.

Ne: frontend performance events, error counts ve feature usage events.

Neden: client issues belirlemek ve product health izlemek.

Nasıl: sadece approved event types için /api/telemetry/record POST.

Saklama: 30 gün (TTL increment üzerinde enforced).

Telemetry submission limits ve example event types:

  • 90 events/minute per client (abuse prevention)
  • calendar.load.success
  • calendar.load.failure
  • encryption.dek.unwrap.success
  • encryption.dek.unwrap.failure
  • passkey.login.success
  • passkey.login.failure

Örnek anahtarlar:

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 içinde arbitrary strings veya user/session identifiers yok.

Volume Cap: maksimum 18.250 keys/year.

Encryption operation metrikleri Kişisel veri yok

Cryptographic operations platform reliability signals olarak izlenir.

Ne: DEK wrap/unwrap success ve failure counters.

Neden: cryptographic failures ve misconfiguration hızlı tespit edilir.

Nasıl: her operation outcome için success/failure counters increment edilir.

Saklama: 30 gün raw -> 52 hafta rollup -> 24 ay monthly -> purge.

Örnek anahtarlar:

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: sadece operation counts kaydedilir. Key material, ciphertext veya personal identifiers saklanmaz.

Volume Cap: 1.460 keys/year.

Retention and compaction pipeline

Raw data: daily counters 30 gün sonra otomatik expire olur.

Weekly rollups: 52-week retention için scheduled aggregation.

Monthly rollups: 24-month retention için scheduled aggregation.

Purge: 24 aydan eski metrics silinir.

Compaction script: /scripts/compact-metrics.php.

Code içinde enforcement

Privacy constraints CI içinde contract tests ile doğrulanır.

MetricsPrivacyContractTest::testSessionDurationHasExactlyFourBuckets()
MetricsPrivacyContractTest::testNoUserUUIDsInTelemetryKeys()
MetricsPrivacyContractTest::testRedisNamespacesNeverExceedTen()
MetricsPrivacyContractTest::testAllTelemetryKeysHaveTTL()

Guardrails: hardcoded namespace/event limits sınırsız metric growth engeller.

Ek rate limits:

  • Admin metrics queries: 100 requests/hour
  • Public health checks: 600 requests/hour

Access and verification

Metrics Dashboard: /admin/metrics (authentication ve admin role gerekir).

Public Health Endpoint: /api/v1/health aggregate platform status döndürür.

Last Updated: 9 Mart 2026.