wordpress-statsd
wordpress-statsd copied to clipboard
WordPress plugin for no-latency massively-scalable application metric tracking and code profiling via Etsy's StatsD + Graphite.
=== StatsD WordPress Client === Contributors: uglyrobot Tags: statsd, stats, metrics, graphite, multisite, monitoring Requires at least: 3.7 Tested up to: 4.7 Stable tag: 0.2 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html
For no-latency massively-scalable WP application metric tracking and code profiling via Etsy's StatsD + Graphite.
== 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.
== Installation ==
- Install StatsD on localhost or a server on your private network.
- If StatsD is not on localhost, define the local daemon IP in wp-config.php:
define( 'STATSD_IP', 'x.x.x.x' ); - Install the plugin
- Activate or Network Activate on multisite
- That's it!
See the FAQ for more advanced configuration.
== 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.
== Frequently Asked Questions ==
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.
== To Do == Want to implement batch collection and send of metrics via one or minimal UDP packets required based on connection time.
== Changelog ==
= 0.2 =
- Ability to disable per url metrics for HTTP calls via SKIP_URL_METRICS define - props @Sophie Haskins
= 0.1 =
- Initial Release