NAME

Mail::Milter::Authentication::Metric - Class for metrics generation

VERSION

version 3.20241024

DESCRIPTION

Handle metrics collection and production for prometheus

CONSTRUCTOR

new()

my $object = Mail::Milter::Authentication::Metric->new();

Create a new Mail::Milter::Authentication::Metric object This object is used to store, modify, and report metrics.

METHODS

set_handler($handler)

Set a reference to the current handler

handle_exception($exception)

If we have a handler, then pass any exception to that handlers exception handling

prom()

Return the prom object if available

set_versions( $server )

Setup version metrics

get_timeout()

Returns the current value of timeout for metrics operations.

clean_label($text)

Given a string, return a version of that string which is safe to use as a metrics label.

count($args)

Increment the metric for the given counter Called from the base handler, do not call directly. $server is the current handler object

count_id - the name of the metric to act on

labels - hashref of labels to apply

server - the current server object

count - number to increment by (defaults to 1)

set($args)

Set the metric for the given counter Called from the base handler, do not call directly. $server is the current handler object

count_id - the name of the metric to act on

labels - hashref of labels to apply

server - the current server object

count - number to increment by (defaults to 1)

send( $server )

Send metrics to the parent server process.

register_metrics( $hash )

Register a new set of metric types and help texts. Called from the parent process in the setup phase.

Expects a hashref of metric description, keyed on metric name.

re_register_metric()

Re-register currently registered metrics to ensure backend metadata is correct

parent_metric_update( $server )

Called in the parent process to periodically update some metrics

child_handler( $server )

Handle a metrics or http request in the child process.

LOGGING METHODS

dbgout( $key, $value, $priority )

Pass arguments along to the dbgout method of the handler if we have one or log via the Mail::Milter::Authentication object if we do not.

AUTHOR

Marc Bradshaw <marc@marcbradshaw.net>

COPYRIGHT AND LICENSE

This software is copyright (c) 2020 by Marc Bradshaw.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.