uber / kraken

P2P Docker registry capable of distributing TBs of data in seconds
Apache License 2.0
6.13k stars 421 forks source link

Add disk utilization percent metrics #382

Open Anton-Kalpakchiev opened 1 week ago

Anton-Kalpakchiev commented 1 week ago

Currently, when we perform cache cleanup, we emit metrics on the size of the cache. However, it's useful to know the % of the cache being used, as well. More specifically, this metric is important when Kraken runs on hosts with different disk sizes. For example, the same metric of 50GB of disk being used can mean the cache is healthy (e.g. if its cache is 1TB), but it can also mean that the cache is unhealthy (the disk is 55GB and almost full).

There's a reason we need this metric implemented on Kraken's side, instead of the metric provided by whatever infra Kraken is running on. The agent usually runs on almost all hosts, but not all. These hosts' main purpose is to serve workloads and not to run the agent on them. The agent is just a tool to facilitate these workloads. Thus, the infra might not have been designed in a way, where it's easy to get metrics for specifically only those hosts that the agent runs on. Thus the metric must be emitted on Kraken's side.