Metrics¶
Starting with goiardi v0.10.4, goiardi can export metrics about itself via statsd. In turn, statsd can feed these metrics into a time series database like graphite. Once in graphite, one could visualize the data with something like grafana, or set up alerts with that data in bosun.
At this time, goiardi exports via statsd metrics covering the runtime (memory usage, garbage collection, goroutines), API timing, information about chef-client runs, the number of nodes, and search timing.
The available metrics via statsd currently are:
node.count
- number of nodes currently in the systemruntime.goroutines
- number of goroutines runningruntime.memory.allocated
- allocated memory in bytesruntime.memory.mallocs
- number of mallocsruntime.memory.frees
- number of times memory’s been freedruntime.memory.heap
- size of heap memory in bytesruntime.memory.stack
- size of stack memory in bytesruntime.gc.total_pause
- how many nanoseconds goiardi has paused for garbage collection the whole time the process has been running.runtime.gc.pause_per_sec
- pauses per secondruntime.gc.pause_per_tick
- pauses per interval sending metrics to statsd (currently 10 seconds)runtime.gc.num_gc
- number of garbage collectionsruntime.gc.gc_per_sec
- gc per secondruntime.gc.gc_per_tick
- gc per statsd tick (as above, every 10 secodns)runtime.gc.pause
- timing of how long each gc pause lastsapi.timing.%s.%s
, where “%s.%s
” is the first part of the api endpoint path and the HTTP method (so, for example, a PUT to cookbooks would beapi.timing.cookbooks.put
) - timing of API endpoint requestsclient.run.started
- Count of started chef-client runsclient.run.success
- Count of successful chef-client runsclient.run.failure
- Count of failed chef-client runsclient.run.run_time
- Timing of how longclient.run.total_resource_count
- Total resources in a runclient.run.updated_resources
- Total updated resources in a runsearch.in_mem
- timing of in-memory searchessearch.pg
- timing of Postgres-based searches