Metrics::Any::Adapter::Routable - configurable routing of reported metrics
Metrics::Any::Adapter::Routable
use Metrics::Any::Adapter 'Routable', targets => [ [ "important", "Statsd" ], [ "default", "Prometheus" ], [ ["default", "debug"], "File", path => "metrics.log" ], ], packages => { "My::Application" => "important", "Net::Async::HTTP" => "debug", "IO::Async::*" => "debug", # wildcard matches # anything else will be assigned "default" };
This Metrics::Any adapter type acts as a proxy for a set of multiple other adapters, allowing an application to configure which adapter (or adapters) to send particular metrics into.
Routing of metrics is done by a "category" name. Each reported metric is assigned into a category, which is a string. Each configured adapter declares an interest in one or more category names. Reported metrics are then routed only to those adapters which declared an interest in the category.
Primarily the category names are set by the packages configuration argument. Additionally, this can be overridden by any individual metric when it is constructed by providing a category parameter to the make_* method which created it.
packages
category
make_*
The following additional arguments are recognised
targets => [ [ $category, $type, ], [ $category, $type, @args ], [ [ @categories ], $type, @args ], ... ],
A reference to an array containing a list of targets. Each target consists of a category name (or reference array containing a list of categories), a type name, and an optional set of constructor arguments, all stored in its own array reference.
These targets will all be constructed and stored by the adapter.
packages => { $package => $category, ... }
A reference to a hash associating a category name with a reporting package. Any metrics registered by the given package will be associated with the given category name.
A pattern can also be specified with a trailing ::* wildcard; this will match any package name within the given namespace. Longer matches will take precedence over shorter ones.
::*
Any reported metric that does not otherwise have a category configured will be assigned the category default.
default
Paul Evans <leonerd@leonerd.org.uk>
To install Metrics::Any::Adapter::Routable, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Metrics::Any::Adapter::Routable
CPAN shell
perl -MCPAN -e shell install Metrics::Any::Adapter::Routable
For more information on module installation, please visit the detailed CPAN module installation guide.