Metrics::Any::Adapter(3)

NAME
"Metrics::Any::Adapter" - set the "Metrics::Any" adapter for the program

SYNOPSIS
In a program or top-level program-like module:

   use Metrics::Any::Adapter 'Prometheus';

DESCRIPTION
The "use" statement which loads this module sets the adapter module for Metrics::Any to report metrics generated by an modules the program uses.

The first value passed should be a string giving the name of an adapter module, which will be expected under the "Metrics::Any::Adapter::"-prefix. This module will be loaded and set as the adapter to use. Any additional arguments will be passed to the constructor of the adapter instance.

   use Metrics::Any::Adapter Custom => "another arg";

   # implies
   $adapter = Metrics::Any::Adapter::Custom->new( "another arg" );

ENVIRONMENT

  METRICS_ANY_ADAPTER
Since version 0.04.

Sets the default adapter type to use if the program has not otherwise requested one.

Normally this is set to "Null", which loads Metrics::Any::Adapter::Null. By overriding this to a different value, a default adapter can be loaded without modifying the program. This may be useful for example, when running unit tests:

   $ METRICS_ANY_ADAPTER=Stderr ./Build test

Additional arguments can be specified after a colon, separated by commas or equals signs.

   $ METRICS_ANY_ADAPTER=File:path=metrics.log ./program.pl

Note that if a program requests a specific adapter that will override this variable.

A limited attempt is made at supporting nested arguments wrapped in square brackets, to allow basic operation of the Metrics::Any::Adapter::Tee adapter via this variable to itself pass arguments into child adapters:

   $ METRICS_ANY_ADAPTER=Tee:Prometheus,[File:path=metrics.log] perl ...

This should be considered a best-effort scenario useful for short-term testing and debugging. For more complex requirements in your script or program, it is better to use the import arguments directly as then any perl data structures can be passed around.

AUTHOR
Paul Evans <leonerd@leonerd.org.uk>