The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Plack::Middleware::TimeStats - Plack Timing Statistics Middleware

SYNOPSIS

    use Plack::Builder;

    builder {
        enable "TimeStats";

        sub {
            my $env = shift;
            $env->{"psgix.timestats"}->profile("foo");
            [ 200, [], ["OK"] ]
        };
    };

DESCRIPTION

Plack::Middleware::TimeStats is the Plack middleware for getting a timing statistics.

This module provides the default, put a timing statistics to STDERR at the end of request, like below.

    .--------+-----------+---------.
    | Action | Time      | %       |
    +--------+-----------+---------+
    | /      | 0.000574s | 100.00% |
    |  - foo | 0.000452s | 78.75%  |
    '--------+-----------+---------'

HOW TO GET A STATS IN YOUR APP

You can get a timing profile by $env-{"psgix.timestats"}>. It's a Devel::TimeStats object. So you call profile method with an action string, then stack a timing stats.

    $env->{"psgix.timestats"}->profile("foo");

Check more methods in document of Devel::TimeStats.

MIDDLEWARE OPTIONS

This module has few options.

callback : code reference

Default is to output a stats result to STDERR.

psgix : string

The key of psgix extension. Default is psgix.timestats. You can NOT specify prefix psgix.. It is required.

    enable "TimeStats";                     # 'psgix.timestats'
    enable "TimeStats", psgix => 'mystats'; # 'psgix.mystats'

option : hash reference

option passes through to Devel::TimeStats's constructor.

action : code reference

Default is PATH_INFO. You can set this option as code reference.

METHODS

call
prepare_app

REPOSITORY

Plack::Middleware::TimeStats is hosted on github <http://github.com/bayashi/Plack-Middleware-TimeStats>

AUTHOR

Dai Okabayashi <bayashi@cpan.org>

SEE ALSO

Devel::TimeStats

LICENSE

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