The Supervisor is currently a bit of an operational black box, which complicates both the operation of any non-trivial Habitat installation, as well as our efforts to improve the Supervisor.
Chef engineering appears to be moving toward Prometheus as a metrics platform-of-choice. We even had rudimentary support for Prometheus in the Supervisor in the past, but it was removed because the implementation wasn't fully thought out.
Here is an initial list of metrics that could be useful to expose:
Figuring out how to surface basic memory/CPU/RPC/etc info from the Launcher would be interesting, as well, but represents the additional wrinkle of it being a separate process from the Supervisor.
Some interesting resources that could help:
It might be nice to keep tabs on file descriptors via something like getdtablesize so we can ensure we don't introduce leaks for long running Supervisors.
Another good source of metrics inspiration is etcd's: https://coreos.com/etcd/docs/latest/metrics.html
We've found that the etcd_disk_ and etcd_network_ metrics have been priceless in diagnosing dodgy customer computing environments for chef-backend.
Another potentially interesting thing would be to record how long elections take from initiation to resolution.
Another possible metric idea: number of ignored rumors (by type). This could give an idea how much time and network traffic we devote to spreading old rumors.
More metric ideas!
Most helpful comment
Another good source of metrics inspiration is etcd's: https://coreos.com/etcd/docs/latest/metrics.html
We've found that the
etcd_disk_andetcd_network_metrics have been priceless in diagnosing dodgy customer computing environments for chef-backend.