[{"data":1,"prerenderedAt":427},["ShallowReactive",2],{"navigation_docs":3,"section-navigation-docs":130,"-docs-metrics":164,"-docs-metrics-surround":334,"doc-previews":339},[4,8,50,54,58,62,66,70,74,78,82,86,90,94,98,102,106,110,114,118,122,126],{"title":5,"path":6,"stem":7},"Quickstart","\u002Fdocs\u002Fquickstart","docs\u002F01.quickstart",{"title":9,"path":10,"stem":11,"children":12},"Guides","\u002Fdocs\u002Fguides","docs\u002F02.guides\u002Findex",[13,14,18,22,26,30,34,38,42,46],{"title":9,"path":10,"stem":11},{"title":15,"path":16,"stem":17},"Next.js","\u002Fdocs\u002Fguides\u002Fnextjs","docs\u002F02.guides\u002F1.nextjs",{"title":19,"path":20,"stem":21},"Nuxt","\u002Fdocs\u002Fguides\u002Fnuxt","docs\u002F02.guides\u002F2.nuxt",{"title":23,"path":24,"stem":25},"SvelteKit","\u002Fdocs\u002Fguides\u002Fsveltekit","docs\u002F02.guides\u002F3.sveltekit",{"title":27,"path":28,"stem":29},"Astro","\u002Fdocs\u002Fguides\u002Fastro","docs\u002F02.guides\u002F4.astro",{"title":31,"path":32,"stem":33},"Express","\u002Fdocs\u002Fguides\u002Fexpress","docs\u002F02.guides\u002F5.express",{"title":35,"path":36,"stem":37},"FastAPI","\u002Fdocs\u002Fguides\u002Ffastapi","docs\u002F02.guides\u002F6.fastapi",{"title":39,"path":40,"stem":41},"Django","\u002Fdocs\u002Fguides\u002Fdjango","docs\u002F02.guides\u002F7.django",{"title":43,"path":44,"stem":45},"Laravel","\u002Fdocs\u002Fguides\u002Flaravel","docs\u002F02.guides\u002F8.laravel",{"title":47,"path":48,"stem":49},"Go","\u002Fdocs\u002Fguides\u002Fgo","docs\u002F02.guides\u002F9.go",{"title":51,"path":52,"stem":53},"Services","\u002Fdocs\u002Fservices","docs\u002F03.services",{"title":55,"path":56,"stem":57},"Deployments","\u002Fdocs\u002Fdeployments","docs\u002F04.deployments",{"title":59,"path":60,"stem":61},"Builds","\u002Fdocs\u002Fbuilds","docs\u002F05.builds",{"title":63,"path":64,"stem":65},"Variables","\u002Fdocs\u002Fvariables","docs\u002F06.variables",{"title":67,"path":68,"stem":69},"Domains","\u002Fdocs\u002Fdomains","docs\u002F07.domains",{"title":71,"path":72,"stem":73},"PostgreSQL","\u002Fdocs\u002Fpostgres","docs\u002F08.postgres",{"title":75,"path":76,"stem":77},"Object storage","\u002Fdocs\u002Fobject-storage","docs\u002F09.object-storage",{"title":79,"path":80,"stem":81},"Volumes","\u002Fdocs\u002Fvolumes","docs\u002F10.volumes",{"title":83,"path":84,"stem":85},"Key-value store","\u002Fdocs\u002Fredis","docs\u002F11.redis",{"title":87,"path":88,"stem":89},"Workspaces","\u002Fdocs\u002Fworkspaces","docs\u002F12.workspaces",{"title":91,"path":92,"stem":93},"Projects","\u002Fdocs\u002Fprojects","docs\u002F13.projects",{"title":95,"path":96,"stem":97},"Environments","\u002Fdocs\u002Fenvironments","docs\u002F14.environments",{"title":99,"path":100,"stem":101},"Eject","\u002Fdocs\u002Feject","docs\u002F15.eject",{"title":103,"path":104,"stem":105},"API","\u002Fdocs\u002Fapi","docs\u002F16.api",{"title":107,"path":108,"stem":109},"CLI","\u002Fdocs\u002Fcli","docs\u002F17.cli",{"title":111,"path":112,"stem":113},"Claude Plugin & MCP","\u002Fdocs\u002Fclaude-plugin","docs\u002F18.claude-plugin",{"title":115,"path":116,"stem":117},"Metrics","\u002Fdocs\u002Fmetrics","docs\u002F19.metrics",{"title":119,"path":120,"stem":121},"Logs","\u002Fdocs\u002Flogs","docs\u002F20.logs",{"title":123,"path":124,"stem":125},"Billing","\u002Fdocs\u002Fbilling","docs\u002F21.billing",{"title":127,"path":128,"stem":129},"Self-hosting","\u002Fdocs\u002Fself-hosting","docs\u002F22.self-hosting",[131,132,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163],{"title":5,"path":6,"stem":7},{"title":9,"path":10,"stem":11,"children":133},[134,135,136,137,138,139,140,141,142,143],{"title":9,"path":10,"stem":11},{"title":15,"path":16,"stem":17},{"title":19,"path":20,"stem":21},{"title":23,"path":24,"stem":25},{"title":27,"path":28,"stem":29},{"title":31,"path":32,"stem":33},{"title":35,"path":36,"stem":37},{"title":39,"path":40,"stem":41},{"title":43,"path":44,"stem":45},{"title":47,"path":48,"stem":49},{"title":51,"path":52,"stem":53},{"title":55,"path":56,"stem":57},{"title":59,"path":60,"stem":61},{"title":63,"path":64,"stem":65},{"title":67,"path":68,"stem":69},{"title":71,"path":72,"stem":73},{"title":75,"path":76,"stem":77},{"title":79,"path":80,"stem":81},{"title":83,"path":84,"stem":85},{"title":87,"path":88,"stem":89},{"title":91,"path":92,"stem":93},{"title":95,"path":96,"stem":97},{"title":99,"path":100,"stem":101},{"title":103,"path":104,"stem":105},{"title":107,"path":108,"stem":109},{"title":111,"path":112,"stem":113},{"title":115,"path":116,"stem":117},{"title":119,"path":120,"stem":121},{"title":123,"path":124,"stem":125},{"title":127,"path":128,"stem":129},{"id":165,"title":115,"body":166,"description":327,"extension":328,"links":329,"meta":330,"navigation":331,"path":116,"seo":332,"stem":117,"__hash__":333},"docs\u002Fdocs\u002F19.metrics.md",{"type":167,"value":168,"toc":319},"minimark",[169,186,191,198,205,211,223,233,236,240,246,252,257,260,269,281,285,292,295,299],[170,171,172,173,177,178,181,182,185],"p",{},"Lucity keeps track of how much CPU and memory each ",[174,175,176],"a",{"href":52},"service"," uses, what each ",[174,179,180],{"href":72},"database"," is doing, and how full each ",[174,183,184],{"href":80},"volume"," is.",[187,188,190],"h2",{"id":189},"service-metrics","Service metrics",[170,192,193,194,197],{},"Open a service on the canvas and switch to the ",[195,196,115],"strong",{}," tab. It charts CPU and memory over the last hour, 6 hours, 24 hours, 7 days or 30 days.",[170,199,200],{},[201,202],"img",{"alt":203,"src":204},"The Metrics tab of a service, charting CPU and memory over the last 30 days","\u002Fimg\u002Fdocs\u002Fmetrics\u002Fservice-metrics.png",[170,206,207],{},[208,209,210],"em",{},"CPU and memory over 30 days. The dashed vertical lines mark deployments.",[170,212,213,214,217,218,222],{},"The large number above each chart is the current usage, next to the most the service can use, which is its CPU or memory limit times the number of replicas. The dashed line along the top of the chart marks that limit, and ",[195,215,216],{},"Edit limit"," opens the service settings to change it. ",[174,219,221],{"href":220},"\u002Fdocs\u002Fservices#cpu-and-memory","CPU and memory"," explains what happens when a service reaches it.",[170,224,225,228,229,232],{},[195,226,227],{},"Total"," adds up all replicas of the service, while ",[195,230,231],{},"Per replica"," gives each replica its own line. Every deployment is marked with a dashed vertical line, so you can tell whether a change moved the numbers. Hovering over a chart moves a cursor across both charts, and the numbers switch to their values at that moment.",[170,234,235],{},"CPU is measured in cores, and anything below one core is shown in thousandths, so 250m is a quarter of a core. Metrics show up a minute or two after a service starts, and the charts refresh every 30 seconds.",[187,237,239],{"id":238},"database-metrics","Database metrics",[170,241,242,243,245],{},"Open a database and switch to the ",[195,244,115],{}," tab. CPU and memory sit on top, charted against the limits of the database, with a grid below them for storage, connections, transactions and rows read and written per second, the cache hit ratio, deadlocks, and how far the replica trails the primary.",[170,247,248],{},[201,249],{"alt":250,"src":251},"The Metrics tab of a database, with CPU and memory on top and PostgreSQL activity below","\u002Fimg\u002Fdocs\u002Fmetrics\u002Fdatabase-metrics.png",[170,253,254],{},[208,255,256],{},"CPU and memory against their limits, and what PostgreSQL is doing below them.",[170,258,259],{},"Every number is the current value, and the line under it puts it in context, such as the peak over the selected range or when the last deadlock happened. Hovering over any chart moves a cursor across all of them, and every number switches to its value at that moment.",[170,261,262,264,265,268],{},[195,263,227],{}," adds up both instances, while ",[195,266,267],{},"Per instance"," gives each one its own line, labeled with whether it is the primary or the replica right now. A cache hit ratio close to 100% means almost every read is answered from memory, so a ratio that keeps dropping usually means the database needs more memory.",[170,270,271,272,275,276,280],{},"Below the charts, ",[195,273,274],{},"Top queries"," lists the statements that took the most time in total, with their share of that time, how often they ran, how long they took on average and how many rows they returned. Values in a statement are replaced by placeholders such as ",[277,278,279],"code",{},"$1",", so every call of the same query counts together. Open a row to read the whole statement and copy it. The list counts from the time shown next to its title and starts over when the primary changes.",[187,282,284],{"id":283},"volume-usage","Volume usage",[170,286,287,288,291],{},"Open a volume and switch to the ",[195,289,290],{},"Usage"," tab to see how much of the disk is in use, as a percentage of its size and charted over the same time ranges.",[170,293,294],{},"On the canvas, a mounted volume is attached under its service and fills from left to right as the disk fills up. Usage is only recorded while the volume is mounted.",[187,296,298],{"id":297},"next-steps","Next steps",[300,301,302,308,314],"ul",{},[303,304,305,307],"li",{},[174,306,51],{"href":220}," for changing CPU, memory and replicas",[303,309,310,313],{},[174,311,79],{"href":312},"\u002Fdocs\u002Fvolumes#size"," for growing a volume that is filling up",[303,315,316,318],{},[174,317,119],{"href":120}," for what a service prints while it runs",{"title":320,"searchDepth":321,"depth":321,"links":322},"",2,[323,324,325,326],{"id":189,"depth":321,"text":190},{"id":238,"depth":321,"text":239},{"id":283,"depth":321,"text":284},{"id":297,"depth":321,"text":298},"CPU and memory for every service, activity for every database, and disk usage for every volume.","md",null,{},true,{"title":115,"description":327},"LuJgogI4xcEV2E0C2UZ0zHFqHaAXspe7wvkfSOO8jck",[335,337],{"title":111,"path":112,"stem":113,"description":336,"children":-1},"Deploy and manage your services from Claude Code, Codex, Cursor or any other MCP client.",{"title":119,"path":120,"stem":121,"description":338,"children":-1},"What your services print while they run, and the output of every deployment step.",[340,343,345,348,351,354,357,360,363,366,369,372,375,377,379,381,383,385,387,389,391,393,395,397,399,401,403,405,406,407,408,410,412,415,419,423],{"path":6,"title":341,"description":342},"Deploy your first service","Deploy an app to Lucity, put it on a public domain, and connect a PostgreSQL database and an object storage bucket in about fifteen minutes.",{"path":344,"title":9,"description":329},"\u002Fdocs\u002Fguides\u002F.navigation",{"path":16,"title":346,"description":347},"Deploy a Next.js app","Deploy a Next.js app on Lucity, with a database, environment variables that behave, and no Dockerfile.",{"path":20,"title":349,"description":350},"Deploy a Nuxt app","Deploy a Nuxt app on Lucity. Nitro output, runtime config, and a database, with no preset to pick.",{"path":24,"title":352,"description":353},"Deploy a SvelteKit app","Deploy a SvelteKit app on Lucity. One adapter change stands between a fresh project and a running service.",{"path":28,"title":355,"description":356},"Deploy an Astro site","Deploy an Astro site on Lucity, static by default and server rendered when you add an adapter.",{"path":32,"title":358,"description":359},"Deploy an Express API","Deploy an Express API on Lucity. Three requirements, none of them platform-specific.",{"path":36,"title":361,"description":362},"Deploy a FastAPI service","Deploy a FastAPI service on Lucity. Detection is picky about layout, and the fix is one setting.",{"path":40,"title":364,"description":365},"Deploy a Django project","Deploy a Django project on Lucity, with migrations that run themselves and static files that do not.",{"path":44,"title":367,"description":368},"Deploy a Laravel application","Deploy a Laravel application on Lucity, with migrations, caches and a queue worker, and no server to configure.",{"path":48,"title":370,"description":371},"Deploy a Go service","Deploy a Go service on Lucity. Compiled in the build, shipped as a binary, nothing else in the image.",{"path":10,"title":373,"description":374},"Deploy your framework","Deploy guides for the frameworks people actually ship: Next.js, Nuxt, SvelteKit, Astro, Express, FastAPI, Django, Laravel, and Go.",{"path":52,"title":51,"description":376},"Services are the deployable units of a project: what they are, how they are configured, and how they scale.",{"path":56,"title":55,"description":378},"How a deployment goes live on Lucity, and the ways to trigger one.",{"path":60,"title":59,"description":380},"How Lucity turns your source code into a container image.",{"path":64,"title":63,"description":382},"Configuration for your services: service variables, shared variables, and dynamic variables.",{"path":68,"title":67,"description":384},"Put a service on the internet. Use a platform hostname for quick tests, or a domain you own.",{"path":72,"title":71,"description":386},"Managed PostgreSQL databases, replicated and backed up, connected to your services without copying credentials.",{"path":76,"title":75,"description":388},"S3-compatible buckets for uploads, exports and anything else your service needs to keep.",{"path":80,"title":79,"description":390},"Persistent disks for services that need to keep state on the filesystem.",{"path":84,"title":83,"description":392},"A Redis®-compatible key-value store for caching, sessions and queues.",{"path":88,"title":87,"description":394},"Workspaces represent your organization in Lucity, with their own members, isolation and billing.",{"path":92,"title":91,"description":396},"Projects group services, databases and the environments they run in.",{"path":96,"title":95,"description":398},"Development, staging, production: isolated copies of the same application.",{"path":100,"title":99,"description":400},"Download a project as a Helm chart and run it on a Kubernetes cluster of your own.",{"path":104,"title":103,"description":402},"The GraphQL API behind the dashboard, with an interactive playground.",{"path":108,"title":107,"description":404},"Deploy and manage your services from a terminal or a CI pipeline.",{"path":112,"title":111,"description":336},{"path":116,"title":115,"description":327},{"path":120,"title":119,"description":338},{"path":124,"title":123,"description":409},"Plans, resource usage, the free trial, and what happens when a payment fails.",{"path":128,"title":127,"description":411},"Run the whole platform on a Kubernetes cluster you own, using the same two Helm charts we run ourselves.",{"path":413,"title":414,"description":329},"\u002Flegal\u002F.navigation","Legal",{"path":416,"title":417,"description":418},"\u002Flegal\u002Fdata-processing-agreement","Data Processing Agreement","How Lucity processes personal data on your behalf.",{"path":420,"title":421,"description":422},"\u002Flegal\u002Fprivacy-policy","Privacy Policy","How Lucity handles your data.",{"path":424,"title":425,"description":426},"\u002Flegal\u002Fterms-of-use","Terms of Use","Terms governing your use of Lucity.",1793630525753]