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 https://grafana.org`_, or set up alerts with that data in `bosun http://bosun.org`_.
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