There are a number of metrics that Bosun collects or that might be forwarded from scollector. In a more general question where is the explanation of the metrics that Bosun collects? And then (I have not gotten to that part of the code yet) how do I create my own namespaces and is there a best practice for that? (I personally have janked up a graphite servers)
The model is something like system.subsystem.subsystem.metric_thing
. We try to limit the number of subsystems to keep the metric name reasonably brief. We aim to keep tag keys to no more than 4 or so, a consistent aggregation scheme between them, and also limit the number of values (as all this impacts OpenTSDB query speed).
We have now formal process for "reserving" namespace. If your collector is for a system that will be useful to other people, we encourage pull requests for additional collectors (see https://github.com/bosun-monitor/bosun/blob/master/cmd/scollector/collectors/memcached_unix.go as an example).
linux.cpu is linux specific, and has tags for each type of CPU time:
It also has a max value of 100 * numOfCores.
os.cpu has no breakdowns within a host, and has a value range of 0-100. It also covers both Linux and Windows (which is the general idea behind the os.namespace).