StatsD WordPress Client

Description

For live environment no-latency massively-scalable application metric tracking and code profiling via Etsy’s StatsD + Graphite.

Tracks everything in WordPress and Multisite:

  • Logins (success, fails, logout)
  • Password resets (attempts/successes)
  • User count (guage)
  • Users (registrations, spam, ham)
  • Posting (publish, trash, delete)
  • Commenting (received, approved, trashed, spam, unspam)
  • Attachments (Add, edit, delete)
  • XML-RPC (every command individually, you can rollup)
  • Multisite blog count (guage)
  • Multiiste blog actions (new, spam, ham, archive, unarchive, delete, undelete)
  • Page generation times
  • Query count (type + time when SAVEQUERIES defined)
  • Remote HTTP requests (count, time – by host)
  • WP Cron calls
  • WP Emails
  • and more!

Requires StatsD on localhost or a server on your private network.

You can also call the $statsd global class in other plugin/theme code for instant tracking of any application metric. See API usage instructions: https://github.com/domnikl/statsd-php/blob/develop/README.md

Contribute at GitHub.

To Do

Want to implement batch collection and send of metrics via one or minimal UDP packets required based on connection time.

Screenshots

  • Example dashboard created in Graphite with data collected from this plugin.
  • Track any other application stat in your WordPress site with 1 line of code in your plugin/theme.

Installation

  1. Install StatsD on localhost or a server on your private network.
  2. If StatsD is not on localhost, define the local daemon IP in wp-config.php: define( 'STATSD_IP', 'x.x.x.x' );
  3. Install the plugin
  4. Activate or Network Activate on multisite
  5. That’s it!

See the FAQ for more advanced configuration.

FAQ

By default the parent namespace used for stats is “yourdomain_yourpath.wordpress.” where yourdomain_yourpath would be “www_domain_com_blog” if your site is http://www.domain.com/blog/. You can override the parent namespace via the define('STATSD_NAMESPACE', 'mysite.myserver'); define in wp-config.php. This one is very important, controls how it shows up in Graphite stats.
This should be segmented, left to right general to specific. All “.” trigger segments. For example:
applicationname.server like ‘wpmudev.app1’ or ‘edublogs.web4’. That allows for drilling down, but can still wrapup in graphs with ‘edublogs.
‘ etc.

Can also be run as an mu-plugin by dropping statsd.php in /wp-content/mu-plugins/.

If needed you can overide the default UDP port of 8125 via define('STATSD_PORT', xxxx); define.

If you have a very high traffic site you can lower the default 0.5 sample rate for per-pageload calls via STATSD_SAMPLE_RATE.

If you don’t want to send HTTP metrics per page URL, you can disable this via SKIP_URL_METRICS

Contribute at GitHub.

Reviews

Read all 1 review

Contributors & Developers

“StatsD WordPress Client” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

0.2

  • Ability to disable per url metrics for HTTP calls via SKIP_URL_METRICS define – props @Sophie Haskins

0.1

  • Initial Release