{"cluster":{"servers_online":3,"servers_total":3,"accounts":500,"accounts_per_instance":100,"max_instances_per_server":3,"capacity_used_pct":55.6,"fleet_totals":{"equity_update":5,"initial_equity":3},"supports_accounts_at_caps":1300,"scope_note":"Totals and capacity reflect the production fleet only; staging is isolated below.","limits_note":"Per-script CPU/memory: live from cAdvisor when scraped by Prometheus; otherwise compose limits × replica count (see docker/docker-compose*.yml). Autoscale CAPS mirror: Main 7, server2 3, server3 3 scalable slots per script.","cost":{"currency":"USD","fx_rate_eur_usd":1.18,"hetzner_monthly_usd":113.83,"supabase_monthly_usd":145.0,"total_monthly_usd":258.83,"hetzner_per_account_usd":0.2277,"supabase_per_account_usd":0.29,"total_per_account_usd":0.5177,"hetzner_note":"Production al-managed + core servers from Hetzner Cloud API (EUR gross prices), converted at fx_rate_eur_usd. Staging excluded.","supabase_note":"Tier sized for 2.0 vCPU at 250 accounts per vCPU (~70% CPU rule). Override via SUPABASE_TIERS_JSON / ACCOUNTS_PER_DB_VCPU_70PCT env vars."},"db_sizing":{"accounts_per_vcpu_70pct":250,"required_vcpu":2.0,"tier_name":"Medium (+2)","tier_vcpu":2.0,"tier_monthly_usd":145.0,"headroom_accounts":0},"server_type_catalog":[{"server_type":"cpx21","role":"main","total_vcpu":3,"total_mem_mb":4096,"fixed_cpu":6.85,"fixed_mem_mb":8512,"available_cpu":0.0,"available_mem_mb":0,"fits":{"equity_update":{"cpu_bound":0,"mem_bound":0,"max":0},"th_ph_ss":{"cpu_bound":0,"mem_bound":0,"max":0}},"bottleneck":{"equity_update":"tie","th_ph_ss":"tie"}},{"server_type":"cpx31","role":"main","total_vcpu":4,"total_mem_mb":8192,"fixed_cpu":6.85,"fixed_mem_mb":8512,"available_cpu":0.0,"available_mem_mb":0,"fits":{"equity_update":{"cpu_bound":0,"mem_bound":0,"max":0},"th_ph_ss":{"cpu_bound":0,"mem_bound":0,"max":0}},"bottleneck":{"equity_update":"tie","th_ph_ss":"tie"}},{"server_type":"cpx41","role":"main","total_vcpu":8,"total_mem_mb":16384,"fixed_cpu":6.85,"fixed_mem_mb":8512,"available_cpu":1.15,"available_mem_mb":7872,"fits":{"equity_update":{"cpu_bound":1,"mem_bound":1,"max":1},"th_ph_ss":{"cpu_bound":1,"mem_bound":3,"max":1}},"bottleneck":{"equity_update":"tie","th_ph_ss":"cpu"}},{"server_type":"cpx51","role":"main","total_vcpu":16,"total_mem_mb":32768,"fixed_cpu":6.85,"fixed_mem_mb":8512,"available_cpu":9.15,"available_mem_mb":24256,"fits":{"equity_update":{"cpu_bound":9,"mem_bound":5,"max":5},"th_ph_ss":{"cpu_bound":9,"mem_bound":11,"max":9}},"bottleneck":{"equity_update":"mem","th_ph_ss":"cpu"}},{"server_type":"ccx13","role":"main","total_vcpu":2,"total_mem_mb":8192,"fixed_cpu":6.85,"fixed_mem_mb":8512,"available_cpu":0.0,"available_mem_mb":0,"fits":{"equity_update":{"cpu_bound":0,"mem_bound":0,"max":0},"th_ph_ss":{"cpu_bound":0,"mem_bound":0,"max":0}},"bottleneck":{"equity_update":"tie","th_ph_ss":"tie"}},{"server_type":"ccx23","role":"main","total_vcpu":4,"total_mem_mb":16384,"fixed_cpu":6.85,"fixed_mem_mb":8512,"available_cpu":0.0,"available_mem_mb":7872,"fits":{"equity_update":{"cpu_bound":0,"mem_bound":1,"max":0},"th_ph_ss":{"cpu_bound":0,"mem_bound":3,"max":0}},"bottleneck":{"equity_update":"cpu","th_ph_ss":"cpu"}},{"server_type":"ccx33","role":"main","total_vcpu":8,"total_mem_mb":32768,"fixed_cpu":6.85,"fixed_mem_mb":8512,"available_cpu":1.15,"available_mem_mb":24256,"fits":{"equity_update":{"cpu_bound":1,"mem_bound":5,"max":1},"th_ph_ss":{"cpu_bound":1,"mem_bound":11,"max":1}},"bottleneck":{"equity_update":"cpu","th_ph_ss":"cpu"}},{"server_type":"cpx21","role":"core","total_vcpu":3,"total_mem_mb":4096,"fixed_cpu":3.35,"fixed_mem_mb":5440,"available_cpu":0.0,"available_mem_mb":0,"fits":{"equity_update":{"cpu_bound":0,"mem_bound":0,"max":0},"th_ph_ss":{"cpu_bound":0,"mem_bound":0,"max":0}},"bottleneck":{"equity_update":"tie","th_ph_ss":"tie"}},{"server_type":"cpx31","role":"core","total_vcpu":4,"total_mem_mb":8192,"fixed_cpu":3.35,"fixed_mem_mb":5440,"available_cpu":0.65,"available_mem_mb":2752,"fits":{"equity_update":{"cpu_bound":0,"mem_bound":0,"max":0},"th_ph_ss":{"cpu_bound":0,"mem_bound":1,"max":0}},"bottleneck":{"equity_update":"tie","th_ph_ss":"cpu"}},{"server_type":"cpx41","role":"core","total_vcpu":8,"total_mem_mb":16384,"fixed_cpu":3.35,"fixed_mem_mb":5440,"available_cpu":4.65,"available_mem_mb":10944,"fits":{"equity_update":{"cpu_bound":4,"mem_bound":2,"max":2},"th_ph_ss":{"cpu_bound":4,"mem_bound":5,"max":4}},"bottleneck":{"equity_update":"mem","th_ph_ss":"cpu"}},{"server_type":"cpx51","role":"core","total_vcpu":16,"total_mem_mb":32768,"fixed_cpu":3.35,"fixed_mem_mb":5440,"available_cpu":12.65,"available_mem_mb":27328,"fits":{"equity_update":{"cpu_bound":12,"mem_bound":6,"max":6},"th_ph_ss":{"cpu_bound":12,"mem_bound":13,"max":12}},"bottleneck":{"equity_update":"mem","th_ph_ss":"cpu"}},{"server_type":"ccx13","role":"core","total_vcpu":2,"total_mem_mb":8192,"fixed_cpu":3.35,"fixed_mem_mb":5440,"available_cpu":0.0,"available_mem_mb":2752,"fits":{"equity_update":{"cpu_bound":0,"mem_bound":0,"max":0},"th_ph_ss":{"cpu_bound":0,"mem_bound":1,"max":0}},"bottleneck":{"equity_update":"tie","th_ph_ss":"cpu"}},{"server_type":"ccx23","role":"core","total_vcpu":4,"total_mem_mb":16384,"fixed_cpu":3.35,"fixed_mem_mb":5440,"available_cpu":0.65,"available_mem_mb":10944,"fits":{"equity_update":{"cpu_bound":0,"mem_bound":2,"max":0},"th_ph_ss":{"cpu_bound":0,"mem_bound":5,"max":0}},"bottleneck":{"equity_update":"cpu","th_ph_ss":"cpu"}},{"server_type":"ccx33","role":"core","total_vcpu":8,"total_mem_mb":32768,"fixed_cpu":3.35,"fixed_mem_mb":5440,"available_cpu":4.65,"available_mem_mb":27328,"fits":{"equity_update":{"cpu_bound":4,"mem_bound":6,"max":4},"th_ph_ss":{"cpu_bound":4,"mem_bound":13,"max":4}},"bottleneck":{"equity_update":"cpu","th_ph_ss":"cpu"}}],"scaling_projection":[{"accounts":500,"required_replicas":5,"extra_servers_needed":0,"hetzner_monthly_usd":113.83,"db_required_vcpu":2.0,"db_tier_name":"Medium (+2)","db_tier_vcpu":2.0,"db_tier_monthly_usd":145.0,"total_monthly_usd":258.83,"cost_per_account_usd":0.5177},{"accounts":1000,"required_replicas":10,"extra_servers_needed":0,"hetzner_monthly_usd":113.83,"db_required_vcpu":4.0,"db_tier_name":"Large (+4)","db_tier_vcpu":4.0,"db_tier_monthly_usd":245.0,"total_monthly_usd":358.83,"cost_per_account_usd":0.3588},{"accounts":2500,"required_replicas":25,"extra_servers_needed":4,"hetzner_monthly_usd":231.79,"db_required_vcpu":10.0,"db_tier_name":"2XL (+16)","db_tier_vcpu":16.0,"db_tier_monthly_usd":855.0,"total_monthly_usd":1086.79,"cost_per_account_usd":0.4347},{"accounts":5000,"required_replicas":50,"extra_servers_needed":13,"hetzner_monthly_usd":497.2,"db_required_vcpu":20.0,"db_tier_name":"4XL (+32)","db_tier_vcpu":32.0,"db_tier_monthly_usd":1635.0,"total_monthly_usd":2132.2,"cost_per_account_usd":0.4264},{"accounts":10000,"required_replicas":100,"extra_servers_needed":29,"hetzner_monthly_usd":969.04,"db_required_vcpu":40.0,"db_tier_name":"4XL (+32)","db_tier_vcpu":32.0,"db_tier_monthly_usd":1635.0,"total_monthly_usd":2604.04,"cost_per_account_usd":0.2604},{"accounts":25000,"required_replicas":250,"extra_servers_needed":79,"hetzner_monthly_usd":2443.54,"db_required_vcpu":100.0,"db_tier_name":"4XL (+32)","db_tier_vcpu":32.0,"db_tier_monthly_usd":1635.0,"total_monthly_usd":4078.54,"cost_per_account_usd":0.1631},{"accounts":50000,"required_replicas":500,"extra_servers_needed":163,"hetzner_monthly_usd":4920.7,"db_required_vcpu":200.0,"db_tier_name":"4XL (+32)","db_tier_vcpu":32.0,"db_tier_monthly_usd":1635.0,"total_monthly_usd":6555.7,"cost_per_account_usd":0.1311},{"accounts":100000,"required_replicas":1000,"extra_servers_needed":329,"hetzner_monthly_usd":9816.04,"db_required_vcpu":400.0,"db_tier_name":"4XL (+32)","db_tier_vcpu":32.0,"db_tier_monthly_usd":1635.0,"total_monthly_usd":11451.04,"cost_per_account_usd":0.1145}],"scaling_assumptions":{"extra_worker_type":"cpx31","extra_worker_location":"ash","extra_worker_monthly_usd":29.49,"extra_worker_replica_cap":3}},"servers":[{"name":"server1","display_name":"Main Server","ipv4":"178.156.222.252","is_main":true,"is_staging":false,"managed":false,"server_type":"cpx41","location":"ash","hetzner_status":"unknown","up":1.0,"status":"operational","load1":2.28,"load_per_cpu":0.28,"cpus":8,"cpu_busy_pct":29.4,"mem_total_gb":15.2,"mem_used_pct":33.6,"uptime_seconds":13270561,"instances":{"equity_update":{"count":3,"cpu_use_cores":null,"cpu_limit_cores":3.0,"mem_use_mb":null,"mem_limit_mb":12288.0,"cpu_limit_per_task":1.0,"mem_limit_mb_per_task":4096.0,"source":"configured","pressure_warn":false,"cpu_pressure_pct":null,"mem_pressure_pct":null},"initial_equity":{"count":1,"cpu_use_cores":null,"cpu_limit_cores":2.0,"mem_use_mb":null,"mem_limit_mb":4096.0,"cpu_limit_per_task":2.0,"mem_limit_mb_per_task":4096.0,"source":"configured","pressure_warn":false,"cpu_pressure_pct":null,"mem_pressure_pct":null},"new_central_ph":{"count":1,"cpu_use_cores":null,"cpu_limit_cores":0.5,"mem_use_mb":null,"mem_limit_mb":512.0,"cpu_limit_per_task":0.5,"mem_limit_mb_per_task":512.0,"source":"configured","pressure_warn":false,"cpu_pressure_pct":null,"mem_pressure_pct":null},"validate_credentials":{"count":1,"cpu_use_cores":null,"cpu_limit_cores":0.5,"mem_use_mb":null,"mem_limit_mb":512.0,"cpu_limit_per_task":0.5,"mem_limit_mb_per_task":512.0,"source":"configured","pressure_warn":false,"cpu_pressure_pct":null,"mem_pressure_pct":null},"benchmarks":{"count":1,"cpu_use_cores":null,"cpu_limit_cores":2.0,"mem_use_mb":null,"mem_limit_mb":2048.0,"cpu_limit_per_task":2.0,"mem_limit_mb_per_task":2048.0,"source":"configured","pressure_warn":false,"cpu_pressure_pct":null,"mem_pressure_pct":null},"credbackup":{"count":1,"cpu_use_cores":null,"cpu_limit_cores":0.5,"mem_use_mb":null,"mem_limit_mb":256.0,"cpu_limit_per_task":0.5,"mem_limit_mb_per_task":256.0,"source":"configured","pressure_warn":false,"cpu_pressure_pct":null,"mem_pressure_pct":null},"unlockaccounts":{"count":1,"cpu_use_cores":null,"cpu_limit_cores":0.5,"mem_use_mb":null,"mem_limit_mb":256.0,"cpu_limit_per_task":0.5,"mem_limit_mb_per_task":256.0,"source":"configured","pressure_warn":false,"cpu_pressure_pct":null,"mem_pressure_pct":null}},"max_scalable_per_script":7,"supports_accounts_at_cap":700,"monthly_eur":46.49,"monthly_usd":54.86,"packing":{"server_type":"cpx41","role":"main","total_vcpu":8,"total_mem_mb":16384,"fixed_cpu":6.85,"fixed_mem_mb":8512,"available_cpu":1.15,"available_mem_mb":7872,"fits":{"equity_update":{"cpu_bound":1,"mem_bound":1,"max":1},"th_ph_ss":{"cpu_bound":1,"mem_bound":3,"max":1}},"bottleneck":{"equity_update":"tie","th_ph_ss":"cpu"}}},{"name":"server3","display_name":"server3","ipv4":"178.156.183.8","is_main":false,"is_staging":false,"managed":false,"server_type":"cpx31","location":"ash","hetzner_status":"unknown","up":1.0,"status":"operational","load1":1.0,"load_per_cpu":0.25,"cpus":4,"cpu_busy_pct":25.2,"mem_total_gb":7.6,"mem_used_pct":34.2,"uptime_seconds":3060590,"instances":{"equity_update":{"count":1,"cpu_use_cores":null,"cpu_limit_cores":1.0,"mem_use_mb":null,"mem_limit_mb":4096.0,"cpu_limit_per_task":1.0,"mem_limit_mb_per_task":4096.0,"source":"configured","pressure_warn":false,"cpu_pressure_pct":null,"mem_pressure_pct":null},"initial_equity":{"count":1,"cpu_use_cores":null,"cpu_limit_cores":2.0,"mem_use_mb":null,"mem_limit_mb":4096.0,"cpu_limit_per_task":2.0,"mem_limit_mb_per_task":4096.0,"source":"configured","pressure_warn":false,"cpu_pressure_pct":null,"mem_pressure_pct":null}},"max_scalable_per_script":3,"supports_accounts_at_cap":300,"monthly_eur":24.99,"monthly_usd":29.49,"packing":{"server_type":"cpx31","role":"core","total_vcpu":4,"total_mem_mb":8192,"fixed_cpu":3.35,"fixed_mem_mb":5440,"available_cpu":0.65,"available_mem_mb":2752,"fits":{"equity_update":{"cpu_bound":0,"mem_bound":0,"max":0},"th_ph_ss":{"cpu_bound":0,"mem_bound":1,"max":0}},"bottleneck":{"equity_update":"tie","th_ph_ss":"cpu"}}},{"name":"server2","display_name":"server2","ipv4":"178.156.220.8","is_main":false,"is_staging":false,"managed":false,"server_type":"cpx31","location":"ash","hetzner_status":"unknown","up":1.0,"status":"operational","load1":0.98,"load_per_cpu":0.24,"cpus":4,"cpu_busy_pct":25.2,"mem_total_gb":7.6,"mem_used_pct":26.8,"uptime_seconds":13270530,"instances":{"equity_update":{"count":1,"cpu_use_cores":null,"cpu_limit_cores":1.0,"mem_use_mb":null,"mem_limit_mb":4096.0,"cpu_limit_per_task":1.0,"mem_limit_mb_per_task":4096.0,"source":"configured","pressure_warn":false,"cpu_pressure_pct":null,"mem_pressure_pct":null},"initial_equity":{"count":1,"cpu_use_cores":null,"cpu_limit_cores":2.0,"mem_use_mb":null,"mem_limit_mb":4096.0,"cpu_limit_per_task":2.0,"mem_limit_mb_per_task":4096.0,"source":"configured","pressure_warn":false,"cpu_pressure_pct":null,"mem_pressure_pct":null}},"max_scalable_per_script":3,"supports_accounts_at_cap":300,"monthly_eur":24.99,"monthly_usd":29.49,"packing":{"server_type":"cpx31","role":"core","total_vcpu":4,"total_mem_mb":8192,"fixed_cpu":3.35,"fixed_mem_mb":5440,"available_cpu":0.65,"available_mem_mb":2752,"fits":{"equity_update":{"cpu_bound":0,"mem_bound":0,"max":0},"th_ph_ss":{"cpu_bound":0,"mem_bound":1,"max":0}},"bottleneck":{"equity_update":"tie","th_ph_ss":"cpu"}}},{"name":"al-staging","display_name":"Staging Server","ipv4":"178.105.70.83","is_main":false,"is_staging":true,"managed":true,"server_type":"ccx13","location":"fsn1","hetzner_status":"running","up":1.0,"status":"operational","load1":0.0,"load_per_cpu":0.0,"cpus":2,"cpu_busy_pct":0.5,"mem_total_gb":7.6,"mem_used_pct":22.9,"uptime_seconds":1745369,"instances":{"equity_update":{"count":1,"cpu_use_cores":null,"cpu_limit_cores":1.0,"mem_use_mb":null,"mem_limit_mb":4096.0,"cpu_limit_per_task":1.0,"mem_limit_mb_per_task":4096.0,"source":"configured","pressure_warn":false,"cpu_pressure_pct":null,"mem_pressure_pct":null},"initial_equity":{"count":1,"cpu_use_cores":null,"cpu_limit_cores":2.0,"mem_use_mb":null,"mem_limit_mb":4096.0,"cpu_limit_per_task":2.0,"mem_limit_mb_per_task":4096.0,"source":"configured","pressure_warn":false,"cpu_pressure_pct":null,"mem_pressure_pct":null},"new_central_ph":{"count":1,"cpu_use_cores":null,"cpu_limit_cores":0.5,"mem_use_mb":null,"mem_limit_mb":512.0,"cpu_limit_per_task":0.5,"mem_limit_mb_per_task":512.0,"source":"configured","pressure_warn":false,"cpu_pressure_pct":null,"mem_pressure_pct":null},"validate_credentials":{"count":1,"cpu_use_cores":null,"cpu_limit_cores":0.5,"mem_use_mb":null,"mem_limit_mb":512.0,"cpu_limit_per_task":0.5,"mem_limit_mb_per_task":512.0,"source":"configured","pressure_warn":false,"cpu_pressure_pct":null,"mem_pressure_pct":null},"benchmarks":{"count":1,"cpu_use_cores":null,"cpu_limit_cores":2.0,"mem_use_mb":null,"mem_limit_mb":2048.0,"cpu_limit_per_task":2.0,"mem_limit_mb_per_task":2048.0,"source":"configured","pressure_warn":false,"cpu_pressure_pct":null,"mem_pressure_pct":null},"credbackup":{"count":1,"cpu_use_cores":null,"cpu_limit_cores":0.5,"mem_use_mb":null,"mem_limit_mb":256.0,"cpu_limit_per_task":0.5,"mem_limit_mb_per_task":256.0,"source":"configured","pressure_warn":false,"cpu_pressure_pct":null,"mem_pressure_pct":null},"unlockaccounts":{"count":1,"cpu_use_cores":null,"cpu_limit_cores":0.5,"mem_use_mb":null,"mem_limit_mb":256.0,"cpu_limit_per_task":0.5,"mem_limit_mb_per_task":256.0,"source":"configured","pressure_warn":false,"cpu_pressure_pct":null,"mem_pressure_pct":null}},"max_scalable_per_script":3,"supports_accounts_at_cap":300,"monthly_eur":18.49,"monthly_usd":21.82,"packing":{"server_type":"ccx13","role":"staging","total_vcpu":2,"total_mem_mb":8192,"fixed_cpu":3.35,"fixed_mem_mb":5440,"available_cpu":0.0,"available_mem_mb":2752,"fits":{"equity_update":{"cpu_bound":0,"mem_bound":0,"max":0},"th_ph_ss":{"cpu_bound":0,"mem_bound":1,"max":0}},"bottleneck":{"equity_update":"tie","th_ph_ss":"cpu"}}}]}