=== StatsD WordPress Client ===
Contributors: uglyrobot
Tags: statsd, stats, metrics, graphite, multisite, monitoring
Requires at least: 3.7
Tested up to: 5.5
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 ==
1. Install StatsD on localhost or a server on your private network.
1. If StatsD is not on localhost, define the local daemon IP in wp-config.php: `define( 'STATSD_IP', 'x.x.x.x' );`
1. Install the plugin
1. Activate or Network Activate on multisite
1. That's it!
See the FAQ for more advanced configuration.
== Screenshots ==
1. Example dashboard created in Graphite with data collected from this plugin.
2. 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