Catalyst::Plugin::Statsd - Log Catalyst stats to statsd
version v0.8.2
use Catalyst qw/ Statsd -Stats=1 /; use Net::Statsd::Tiny; __PACKAGE__->config( 'psgi_middleware', [ Statsd => { client => Net::Statsd::Tiny->new, }, ], ); # (or you can specify the Statsd middleware in your # application's PSGI file.)
This plugin will log Catalyst timing statistics to statsd.
__PACKAGE__->config( 'Plugin::Statsd' => { disable_stats_report => 0, }, );
disable_stats_report
Enabling stats will also log a table of statistics to the Catalyst log. If you do not want this, then set disable_stats_report to true.
Note that if you are modifying the log_stats method or using another plugin that does this, then this may interfere with that if you disable the stats report.
log_stats
This defaults to
!$c->debug
statsd_client
$c->statsd_client;
Returns the statsd client.
This is the statsd client used by Plack::Middleware::Statsd.
statsd_metric_name_filter
$c->statsd_metric_name_filter( $stat_or_name );
This method returns the name to be used for logging stats, or undef if the metric should be ignored.
undef
Only alphanumeric characters, hyphens or underscores in namespaces are accepted. All other characters are converted to dots, with consecutive dots compressed into a single dot.
If it is passed a non-arrayref, then it will stringify the argument and return that.
If it is passed an array reference, then it assumes the argument comes from Catalyst::Stats report and is converted into a suitable metric name.
You can override or modify this method to filter out which metrics you want logged, or to change the names of the metrics.
catalyst.response.time
This logs the Catalyst reponse time that is normally reported by Catalyst. However, it is probably unnecessary since Plack::Middleware::Statsd also logs response times.
catalyst.sessionid
If Catalyst::Plugin::Session or Plack::Middleware::Session is used, or anything that adds a sessionid method to the context, then the session id is added as a set, to count the number of unique sessions.
sessionid
catalyst.stats.*.time
These are metrics generated from Catalyst::Stats.
All non-word characters in the paths in an action are changed to dots, e.g. the timing for an action /foo/bar will be logged with the metric catalyst.stats.foo.bar.time.
/foo/bar
catalyst.stats.foo.bar.time
The metric name is generated by "statsd_metric_name_filter".
If you have custom profiling points, then these will be treated as top-level names in the catalyst.stats.* namespaces, e.g.
catalyst.stats.*
my $stats = $c->stats; $stats->profile( begin => 'here' ); ... $stats->profile( end => 'here' );
will be logged to statsd in the catalyst.stats.here.time namespace.
catalyst.stats.here.time
If you do not want this, then you can work around this by prefixing the block name with a controller name, e.g.
$stats->profile( begin => 'controller.here' );
When profiling your application, the size of your stats database may grow quite large.
Your database storage and retention settings should be adjusted accordingly.
Since v0.8.0, the this module requires Perl v5.14 or later.
Future releases may only support Perl versions released in the last ten years.
If you need this module on Perl v5.10, please use one of the v0.7.x versions of this module. Significant bug or security fixes may be backported to those versions.
Catalyst::Stats
Plack::Middleware::Statsd
Net::Statsd::Tiny
The development version is on github at https://github.com/robrwo/CatalystX-Statsd and may be cloned from git://github.com/robrwo/CatalystX-Statsd.git
Please report any bugs or feature requests on the bugtracker website https://github.com/robrwo/CatalystX-Statsd/issues
When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.
Robert Rothenberg <rrwo@cpan.org>
The initial development of this module was sponsored by Science Photo Library https://www.sciencephoto.com.
Slaven Rezić <slaven@rezic.de>
This software is Copyright (c) 2018-2023 by Robert Rothenberg.
This is free software, licensed under:
The Artistic License 2.0 (GPL Compatible)
To install Catalyst::Plugin::Statsd, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Catalyst::Plugin::Statsd
CPAN shell
perl -MCPAN -e shell install Catalyst::Plugin::Statsd
For more information on module installation, please visit the detailed CPAN module installation guide.