We recommend monitoring your Coder deployment to track compute cost, performance, uptime, and deployment stability. Because Coder is deployed onto Kubernetes, you can monitor your developer workspaces as you would any other server workload.
One of the most important metrics to track is the CPU and memory usage/utilization of the underlying Kubernetes node. Excessive node resource contention can result in the throttling of developer environments, while excessive underutilization suggests that you may be spending more on your cloud environment than necessary.
There are several tools available to you to balance the tradeoff between environment performance and cloud cost. Read more about this on compute resources.
Coder comes with a set of Kubernetes labels that allow monitoring tools to map cluster resources to Coder's product-level resource identifiers. For example, the following chart tracks the CPU/Memory Limit Utilization of each environment container and labels them with the username and environment name identifiers:
These views can help you track which users may require larger CPU allocations, enabling greater "burst-ability" under peak loads. However, remember that using a CPU/memory provision rate greater than 1:1 may result in users being throttled below their CPU limit if the underlying Kubernetes Node experiences CPU contention.
Monitoring the Coder control plane can help you maintain high uptime. For example, the following charts provide high-level insight into the state of the Coder API server: