DEX Configuration Reference

Summary

Default configuration thresholds in the DEX platform

Body

Configuration Quick Reference

This table shows current default values from dex-config-example.json and recommended ranges for tuning.

Sampling Intervals

Source Default Recommended Range Notes
background.count 60s 30-120s Process count; moderate sampling sufficient
background.pressure 60s 30-120s Composite resource metric; moderate sampling sufficient
cpu.usage 20s 10-60s Lower for real-time monitoring; higher to reduce overhead
cpu.temperature 60s 30-120s Hardware sensors have low overhead
cpu.thermal.throttle 20s 10-60s Track throttle state during load
cpu.thermal.events 60s 30-120s Event counts; moderate sampling sufficient
memory.usage 60s 30-120s Memory changes slowly; 60s is sufficient
memory.pressure 20s 10-60s More volatile than usage; frequent sampling recommended
battery.capacity 1800s (30m) 900-3600s Health changes very slowly
battery.cycle 43200s (12h) 3600-86400s Cycle count changes rarely
disk.usage.system 3600s (1h) 600-7200s Space changes slowly
disk.usage.data 3600s (1h) 600-7200s Space changes slowly
disk.health.system 600s (10m) 300-3600s SMART data is relatively stable
disk.health.data 600s (10m) 300-3600s SMART data is relatively stable
disk.pressure 20s 10-60s I/O pressure is volatile
network.dns 60s 30-120s DNS latency probes; moderate sampling sufficient
network.usage 20s 10-60s Bandwidth utilization fluctuates
network.pressure 600s (10m) 60-1800s Includes active probes; higher to reduce network traffic
process.memory 60s 30-120s Per-process overhead; balance granularity vs cost
process.cpu 10s 5-30s CPU attribution needs frequent sampling
process.disk 30s 15-60s Per-process disk I/O attribution
process.startup 10s 5-30s Tracks active process startups; backs off when idle
process.crash 3600s (1h) 300-7200s Scans crash directories
agent.load 60s 30-120s Reuses process enumeration; minimal additional cost
agent.total 60s 30-120s Same accumulation pass as agent.load
call.engaged 30s 15-60s Reads cached av state pushed by host; cheap
call.audio event - Receiver-only; host pushes per-window underrun counts
call.pressure 30s 15-60s Mic-gated; per active call, ~1s relay capture + probe burst off the work pool
startup.time 20s 10-60s Only active during boot
startup.abnormal event - Event-driven, not periodic
startup.crash startup - Runs once at startup
sleep.failures event - Event-driven on sleep/wake transitions
sleep.health event - Event-driven; scheduled after wake
sleep.wakedelay event - Event-driven on wake (macOS/Windows only)
feedback.unsolicited event - User-initiated
feedback.hardware event - User-initiated
feedback.triggered event - User-initiated
feedback.remediation event - User-initiated (post-remediation check-in)
health.score 300s (5m) 60-600s Composite over input histories; sample at or above the inputs' bucket size
test.bipolar 20s 10-60s Testing only
test.wave 20s 10-60s Testing only
test.file 10s 5-60s Testing only; disabled by default

 

History Settings

Source Default Duration Default Bucket Recommended Duration Recommended Bucket
background.count 86400s (24h) 1800s (30m) 24h-7d 300-1800s
background.pressure 86400s (24h) 300s (5m) 24h-7d 60-300s
cpu.usage 86400s (24h) 60s 24h-7d 60-300s
cpu.temperature 86400s (24h) 300s (5m) 24h-7d 300-900s
cpu.thermal.throttle 86400s (24h) 60s 24h-7d 60-300s
cpu.thermal.events 86400s (24h) 3600s (1h) 24h-7d 1-6h
memory.usage 86400s (24h) 120s (2m) 24h-7d 60-300s
memory.pressure 86400s (24h) 60s 24h-7d 60-300s
battery.capacity 8640000s (100d) 14400s (4h) 30-100d 4-24h
battery.cycle 8640000s (100d) 86400s (1d) 30-100d 1d
disk.usage.system 864000s (10d) 14400s (4h) 7-30d 1-6h
disk.usage.data 864000s (10d) 14400s (4h) 7-30d 1-6h
disk.health.system 86400s (24h) 3600s (1h) 7-30d 1-6h
disk.health.data 86400s (24h) 3600s (1h) 7-30d 1-6h
disk.pressure 86400s (24h) 60s 24h-7d 60-300s
network.dns 86400s (24h) 300s (5m) 24h-7d 60-300s
network.usage 86400s (24h) 60s 24h-7d 60-300s
network.pressure 86400s (24h) 3600s (1h) 24h-7d 15m-1h
process.memory 14400s (4h) 120s (2m) 4-24h 30-120s
process.cpu 14400s (4h) 30s 4-24h 15-60s
process.disk 14400s (4h) 120s (2m) 4-24h 30-120s
process.startup 86400s (24h) 3600s (1h) 24h-7d 1-4h
process.crash 864000s (10d) 7200s (2h) 7-30d 1-6h
agent.load 86400s (24h) 300s (5m) 24h-7d 1-15m
agent.total 86400s (24h) 300s (5m) 24h-7d 1-15m
call.engaged 86400s (24h) 300s (5m) 24h-7d 1-15m
call.audio 86400s (24h) 300s (5m) 24h-7d 1-15m
call.pressure 86400s (24h) 300s (5m) 24h-7d 1-15m
startup.abnormal 8640000s (100d) 86400s (1d) 30-100d 1d
startup.crash 8640000s (100d) 86400s (1d) 30-100d 1d
startup.time 8640000s (100d) 86400s (1d) 30-100d 1d
sleep.failures 604800s (7d) 86400s (1d) 7-30d 1d
sleep.health 604800s (7d) 86400s (1d) 7-30d 1d
sleep.wakedelay 604800s (7d) 86400s (1d) 7-30d 1d
health.score 604800s (7d) 3600s (1h) 7-30d 1-6h
test.bipolar 86400s (24h) 60s 24h 60s
test.wave 86400s (24h) 60s 24h 60s
test.file 86400s (24h) 60s 24h 60s

 

Trigger and Reset Thresholds

Source Default Trigger Default Reset Recommended Trigger Recommended Reset
background.count calibrated +50% for 10m calibrated -20% for 5m calibrated calibrated
background.pressure >50% for 10m <20% for 5m 40-70% for 5-15m 20-30% below trigger
cpu.usage >75% for 15m <70% for 10m 70-90% for 5-30m 5-15% below trigger
cpu.temperature >90°C for 10m <70°C for 10m 80-95°C for 5-15m 10-20°C below trigger
cpu.thermal.throttle >25% for 5m <10% for 5m 20-50% for 3-10m 10-20% below trigger
cpu.thermal.events >2/hour <1/hour 1-5 per bucket 50% of trigger
memory.usage >75% for 5m <70% for 5m 70-90% for 3-10m 5-10% below trigger
memory.pressure >75 for 5m <65 for 5m 60-85 for 3-10m 10-20 below trigger
battery.capacity <50% >65% 40-60% 10-20% above trigger
battery.cycle none none >500-1000 <trigger-100
disk.usage.system >90% for 12h <85% 85-95% for 1-24h 5-10% below trigger
disk.usage.data >90% for 12h <85% 85-95% for 1-24h 5-10% below trigger
disk.health.system <70% >80% 50-80% 10-20% above trigger
disk.health.data <70% >80% 50-80% 10-20% above trigger
disk.pressure >70% for 5m <50% for 5m 60-80% for 3-10m 15-25% below trigger
network.dns >75 for 5m <50 for 5m 60-85 for 3-10m 15-25 below trigger
network.usage >75% for 5m <65% for 5m 70-90% for 3-10m 10-20% below trigger
network.pressure >75 for 5m <65 for 5m 60-85 for 3-10m 10-20 below trigger
process.memory >2000 for 5m <1000 for 5m 1000-5000 for 3-10m 50% of trigger
process.cpu >10% for 2m <5% for 1m 5-20% for 1-5m 50% of trigger
process.disk >1000 for 5m <500 for 1m 500-2000 for 3-10m 50% of trigger
process.startup >60s <30s 30-120s 50% of trigger
process.crash >4 <2 2-10 per bucket 50% of trigger
agent.load >30 for 15m (crit >60 for 10m) <15 for 5m 20-50 for 5-30m 5-15 below trigger
agent.total >50 for 15m (crit >80 for 10m) <30 for 5m 40-70 for 5-30m 10-20 below trigger
call.engaged none none optional — observational n/a
call.audio >10 per bucket (crit >50) <5 per bucket 5-20 per bucket 50% of trigger
call.pressure >60 for 2m (crit >85 for 1m) <45 for 2m 45-70 for 1-5m 15 below trigger
startup.abnormal >4/day <2/day 2-5 per bucket 50% of trigger
startup.crash >4/day <2/day 1-3 per bucket 50% of trigger
startup.time >300s <300s 120-600s same as trigger
sleep.failures none none >2/week <1/week
sleep.health <70% >85% 50-80% 10-20% above trigger
sleep.wakedelay >30s <15s 20-60s 50% of trigger
health.score <55 for 1h (crit <30 for 30m) >65 for 30m 40-60 / 20-35 5-15 above trigger
test.bipolar >100 for 5m <100 for 5m testing testing
test.wave calibrated calibrated testing testing
test.file >75 for 15m (crit >92 for 10m) <70 for 10m testing testing

 

History Accumulation Types

Source Type Meaning
background.count maximize Keep highest process count per bucket
background.pressure maximize Keep highest composite score per bucket
cpu.usage maximize Keep highest value per bucket
cpu.temperature maximize Keep highest temperature per bucket
cpu.thermal.throttle maximize Keep highest throttle level per bucket
cpu.thermal.events accumulate Sum events; stats return rate
memory.usage maximize Keep highest usage per bucket
memory.pressure maximize Keep highest pressure per bucket
battery.capacity minimize Keep lowest (worst) health per bucket
battery.cycle maximize Keep highest cycle count
disk.usage.system maximize Keep highest usage per bucket
disk.usage.data maximize Keep highest usage per bucket
disk.health.system minimize Keep lowest (worst) health per bucket
disk.health.data minimize Keep lowest (worst) health per bucket
disk.pressure maximize Keep highest pressure per bucket
network.dns maximize Keep highest DNS pressure per bucket
network.usage maximize Keep highest utilization per bucket
network.pressure maximize Keep highest pressure per bucket
process.memory maximize Keep highest score per bucket
process.cpu maximize Keep highest usage per bucket
process.disk maximize Keep highest I/O rate per bucket
process.startup maximize Keep longest startup time per bucket
process.crash accumulate Sum crashes; stats return rate
agent.load maximize Keep highest per-group load per bucket (multi-history per category)
agent.total maximize Keep highest combined stack load per bucket
call.engaged maximize Keep peak engagement per bucket (or accumulate for meeting-load analytics)
call.audio accumulate Sum underrun counts per bucket; stats return total
call.pressure maximize Keep the worst per-app pressure per bucket (multi-history per app)
startup.abnormal accumulate Sum abnormal starts; stats return rate
startup.crash accumulate Sum crashes; stats return rate
startup.time maximum Keep longest startup time
sleep.failures accumulate Sum failures; stats return rate
sleep.health minimize Keep lowest (worst) health per bucket
sleep.wakedelay maximize Keep longest wake time per bucket
feedback.unsolicited / .hardware / .triggered - No history tracking
feedback.remediation - No history tracking (events submitted as discrete points)
health.score minimize Keep lowest (worst) composite score per bucket
test.bipolar maximize Keep highest value per bucket
test.wave maximize Keep highest value per bucket
test.file maximize Keep highest value per bucket

 

Tuning Guidelines

Sampling Interval:

  • Lower values = more granular data, higher CPU/memory cost
  • Higher values = less data, lower overhead
  • Rule of thumb: sample at 1/3 to 1/2 the persistence time for good trigger detection

History Duration:

  • Match to reporting/analysis needs (daily reports = 24h+, weekly = 7d+)
  • Longer history = more memory usage
  • Battery/disk health benefit from longer history (trends over weeks/months)

Bucket Size:

  • Smaller buckets = finer granularity, more memory
  • Larger buckets = coarser data, less memory
  • Rule of thumb: bucket size >= 2× sample interval

Trigger Threshold:

  • Set based on what constitutes "problematic" for your environment
  • Lower thresholds = more sensitive (more alerts)
  • Higher thresholds = less sensitive (fewer alerts, may miss issues)

Trigger Persistence:

  • Prevents alerts from transient spikes
  • Shorter = more responsive, more false positives
  • Longer = fewer false positives, may miss brief but real issues
  • Rule of thumb: 3-10× sample interval

Reset Threshold:

  • Should be meaningfully different from trigger to prevent oscillation
  • Typically 10-20% "better" than trigger threshold
  • For "above" triggers: reset below trigger
  • For "below" triggers: reset above trigger

Details

Details

Article ID: 172809
Created
Wed 9/2/26 3:22 PM