NAME

Plack::ServerTiming - Frontend for Plack::Middleware::ServerTiming

SYNOPSIS

use Plack::ServerTiming;

builder {
    enable 'ServerTiming';
    sub {
        my $env = shift;
        my $t = Plack::ServerTiming->new($env);
        sleep 1;
        $t->record_timing('miss');
        $t->record_timing(sleep => {dur => 1000, desc => 'Sleep one second...'});
        [200, ['Content-Type','text/html'], ["OK"]];
    };
};

DESCRIPTION

This module provides high level API for Plack::Middleware::ServerTiming.

METHODS

$timing = Plack::ServerTiming->new($env)

This will create a new instance of Plack::SeverTiming.

$timing->record_timing($name, {dur => $duration, desc => $description})

record_timing() adds a metric consisting of name, duration and description.

$timing->record_timing('total', {dur => 123.4});
$timing->guard($name, $description)

guard() creates a guard instance to record a duration. This will add a elapsed time until exit the scope as metric.

{
    my $g = $timing->guard('elapsed', 'sleep 1');
    sleep 1;
}
# `elapsed;dur=1000.224;desc="sleep 1"`

SEE ALSO

Plack::Middleware::ServerTiming

LICENSE

Copyright (C) Takumi Akiyama.

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

AUTHOR

Takumi Akiyama <t.akiym@gmail.com>