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 system
  • runtime.goroutines - number of goroutines running
  • runtime.memory.allocated - allocated memory in bytes
  • runtime.memory.mallocs - number of mallocs
  • runtime.memory.frees - number of times memory’s been freed
  • runtime.memory.heap - size of heap memory in bytes
  • runtime.memory.stack - size of stack memory in bytes
  • runtime.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 second
  • runtime.gc.pause_per_tick - pauses per interval sending metrics to statsd (currently 10 seconds)
  • runtime.gc.num_gc - number of garbage collections
  • runtime.gc.gc_per_sec - gc per second
  • runtime.gc.gc_per_tick - gc per statsd tick (as above, every 10 secodns)
  • runtime.gc.pause - timing of how long each gc pause lasts
  • api.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 be api.timing.cookbooks.put) - timing of API endpoint requests
  • client.run.started - Count of started chef-client runs
  • client.run.success - Count of successful chef-client runs
  • client.run.failure - Count of failed chef-client runs
  • client.run.run_time - Timing of how long
  • client.run.total_resource_count - Total resources in a run
  • client.run.updated_resources - Total updated resources in a run
  • search.in_mem - timing of in-memory searches
  • search.pg - timing of Postgres-based searches