Mojolicious-Plugin-Prometheus v1.1.1 Perl 5 v5.28.0 RC2 amd64-freebsd
- Status
- Fail
- From
- Slaven Rezić (SREZIC)
- Dist
-
Mojolicious-Plugin-Prometheus v1.1.1
- Platform
- Perl 5 v5.28.0 RC2 amd64-freebsd
- Date
- 2018-06-14 06:23:04
- ID
- 655de74c-6f9b-11e8-86db-94946ded026c
This distribution has been tested as part of the CPAN Testers
project, supporting the Perl programming language. See
http://wiki.cpantesters.org/ for more information or email
questions to cpan-testers-discuss@perl.org
--
Dear Vidar Tyldum,
This is a computer-generated report for Mojolicious-Plugin-Prometheus-1.1.1
on perl 5.28.0, created by CPAN-Reporter-1.2018.
Thank you for uploading your work to CPAN. However, there was a problem
testing your distribution.
If you think this report is invalid, please consult the CPAN Testers Wiki
for suggestions on how to avoid getting FAIL reports for missing library
or binary dependencies, unsupported operating systems, and so on:
http://wiki.cpantesters.org/wiki/CPANAuthorNotes
Sections of this report:
* Tester comments
* Program output
* Prerequisites
* Environment and other context
------------------------------
TESTER COMMENTS
------------------------------
Additional comments from tester:
none provided
------------------------------
PROGRAM OUTPUT
------------------------------
Output from './Build test':
t/00_compile.t ...... ok
# Failed test '200 OK'
# at t/basic.t line 25.
# got: '500'
# expected: '200'
# Failed test 'Content-Type is similar'
# at t/basic.t line 25.
# 'text/html;charset=UTF-8'
# doesn't match '(?^:^text/plain)'
# Failed test 'content is similar'
# at t/basic.t line 25.
# '<!DOCTYPE html>
# <!-- Request ID: c274e5f5 -->
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 0.5em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-brand {
# display: inline-block;
# padding-left: 50px;
# padding-top: 4px;
# }
# #mojobar-links {
# display: inline;
# float: right;
# height: 60px;
# margin-top: 0.8em;
# padding-right: 50px;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <a href="https://mojolicious.org" id="mojobar-brand">
# <picture>
# <img src="/mojo/logo-white.png"
# srcset="/mojo/logo-white-2x.png 2x">
# </picture>
# </a> <div id="mojobar-links">
# <a href="https://mojolicious.org/perldoc">Documentation</a>
# <a href="https://chat.mibbit.com/?channel=%23mojo&server=irc.perl.org">Chat</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer(handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">Can't call method "collect" on an undefined value at /usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Net/Prometheus.pm line 279.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">274</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">275</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $collectors = $self->{collectors};</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">276</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">277</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my %samples_by_name;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">278</td>
# <td class="value wide">
# <pre><code class="prettyprint"> foreach my $collector ( @{ $collectors } ) {</code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">279</td>
# <td class="value wide">
# <pre><code class="prettyprint"> push @{ $samples_by_name{ $_->fullname } }, $_ for $collector->collect;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">280</td>
# <td class="value wide">
# <pre><code class="prettyprint"> }</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">281</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">282</td>
# <td class="value wide">
# <pre><code class="prettyprint"> return map {</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">283</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my @results = @{ $samples_by_name{ $_ } };</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">284</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $first = $results[0];</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Net/Prometheus.pm:279</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Net/Prometheus.pm:329</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/cpansand/.cpan/build/2018061412/Mojolicious-Plugin-Prometheus-1.1.1-0/blib/lib/Mojolicious/Plugin/Prometheus.pm:88</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious.pm:147</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Routes.pm:89</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Routes.pm:96</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Routes.pm:37</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Routes.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious.pm:148</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious.pm:212</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious.pm:212</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious.pm:154</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Server/Daemon.pm:152</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Server/Daemon.pm:126</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/IOLoop/Stream/HTTPServer.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/IOLoop/Stream/HTTPServer.pm:101</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/IOLoop/Stream/HTTPServer.pm:17</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/IOLoop.pm:140</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/UserAgent.pm:67</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Test/Mojo.pm:381</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Test/Mojo.pm:328</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Test/Mojo.pm:121</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/basic.t:25</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Request ID:</td>
# <td class="striped value wide"><pre>c274e5f5</pre></td>
# </tr>
#
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/metrics</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:15705</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# "cb" => sub { "DUMMY" },
# "prometheus.start_time" => [
# 1529013657,
# 580054
# ]
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:15705</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.28.0 (freebsd)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.84 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/cpansand/.cpan/build/2018061412/Mojolicious-Plugin-Prometheus-1.1.1-0/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# "/home/cpansand/.cpan/build/2018061412/Mojolicious-Plugin-Prometheus-1.1.1-0/t/templates"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# "main"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# "/home/cpansand/.cpan/build/2018061412/Mojolicious-Plugin-Prometheus-1.1.1-0/t/public"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# "main"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# "/home/cpansand/.cpan/build/2018061412/Mojolicious-Plugin-Prometheus-1.1.1-0/blib/arch",
# "/home/cpansand/.cpan/build/2018061412/Mojolicious-Plugin-Prometheus-1.1.1-0/blib/lib",
# "/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/amd64-freebsd",
# "/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0",
# "/usr/perl5.28.0-RC2p/lib/5.28.0/amd64-freebsd",
# "/usr/perl5.28.0-RC2p/lib/5.28.0",
# "."
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>basic</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/basic.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/usr/perl5.28.0-RC2p/bin/perl</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>62505</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Thu Jun 14 15:00:57 2018</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="https://mojolicious.org">
# <picture>
# <img src="/mojo/logo-black.png"
# srcset="/mojo/logo-black-2x.png 2x"
# alt="Mojolicious logo">
# </picture>
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:http_request_duration_seconds_count\{worker="\d+",method="GET"\} 1)'
# Looks like you failed 3 tests of 10.
t/basic.t ...........
Dubious, test returned 3 (wstat 768, 0x300)
Failed 3/10 subtests
# Failed test '200 OK'
# at t/custom.t line 21.
# got: '500'
# expected: '200'
# Failed test 'Content-Type is similar'
# at t/custom.t line 21.
# 'text/html;charset=UTF-8'
# doesn't match '(?^:^text/plain)'
# Failed test 'content is similar'
# at t/custom.t line 21.
# '<!DOCTYPE html>
# <!-- Request ID: 518ad2f5 -->
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 0.5em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-brand {
# display: inline-block;
# padding-left: 50px;
# padding-top: 4px;
# }
# #mojobar-links {
# display: inline;
# float: right;
# height: 60px;
# margin-top: 0.8em;
# padding-right: 50px;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <a href="https://mojolicious.org" id="mojobar-brand">
# <picture>
# <img src="/mojo/logo-white.png"
# srcset="/mojo/logo-white-2x.png 2x">
# </picture>
# </a> <div id="mojobar-links">
# <a href="https://mojolicious.org/perldoc">Documentation</a>
# <a href="https://chat.mibbit.com/?channel=%23mojo&server=irc.perl.org">Chat</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer(handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">Can't call method "collect" on an undefined value at /usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Net/Prometheus.pm line 279.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">274</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">275</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $collectors = $self->{collectors};</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">276</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">277</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my %samples_by_name;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">278</td>
# <td class="value wide">
# <pre><code class="prettyprint"> foreach my $collector ( @{ $collectors } ) {</code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">279</td>
# <td class="value wide">
# <pre><code class="prettyprint"> push @{ $samples_by_name{ $_->fullname } }, $_ for $collector->collect;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">280</td>
# <td class="value wide">
# <pre><code class="prettyprint"> }</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">281</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">282</td>
# <td class="value wide">
# <pre><code class="prettyprint"> return map {</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">283</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my @results = @{ $samples_by_name{ $_ } };</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">284</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $first = $results[0];</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Net/Prometheus.pm:279</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Net/Prometheus.pm:329</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/cpansand/.cpan/build/2018061412/Mojolicious-Plugin-Prometheus-1.1.1-0/blib/lib/Mojolicious/Plugin/Prometheus.pm:88</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious.pm:147</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Routes.pm:89</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Routes.pm:96</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Routes.pm:37</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Routes.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious.pm:148</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious.pm:212</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious.pm:212</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious.pm:154</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Server/Daemon.pm:152</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Server/Daemon.pm:126</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/IOLoop/Stream/HTTPServer.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/IOLoop/Stream/HTTPServer.pm:101</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/IOLoop/Stream/HTTPServer.pm:17</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/IOLoop.pm:140</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/UserAgent.pm:67</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Test/Mojo.pm:381</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Test/Mojo.pm:328</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Test/Mojo.pm:121</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/custom.t:21</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Request ID:</td>
# <td class="striped value wide"><pre>518ad2f5</pre></td>
# </tr>
#
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/metrics</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:34271</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# "cb" => sub { "DUMMY" },
# "prometheus.start_time" => [
# 1529013658,
# 217190
# ]
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:34271</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.28.0 (freebsd)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.84 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/cpansand/.cpan/build/2018061412/Mojolicious-Plugin-Prometheus-1.1.1-0/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# "/home/cpansand/.cpan/build/2018061412/Mojolicious-Plugin-Prometheus-1.1.1-0/t/templates"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# "main"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# "/home/cpansand/.cpan/build/2018061412/Mojolicious-Plugin-Prometheus-1.1.1-0/t/public"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# "main"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# "/home/cpansand/.cpan/build/2018061412/Mojolicious-Plugin-Prometheus-1.1.1-0/blib/arch",
# "/home/cpansand/.cpan/build/2018061412/Mojolicious-Plugin-Prometheus-1.1.1-0/blib/lib",
# "/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/amd64-freebsd",
# "/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0",
# "/usr/perl5.28.0-RC2p/lib/5.28.0/amd64-freebsd",
# "/usr/perl5.28.0-RC2p/lib/5.28.0",
# "."
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>custom</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/custom.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/usr/perl5.28.0-RC2p/bin/perl</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>62509</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Thu Jun 14 15:00:58 2018</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="https://mojolicious.org">
# <picture>
# <img src="/mojo/logo-black.png"
# srcset="/mojo/logo-black-2x.png 2x"
# alt="Mojolicious logo">
# </picture>
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:test_counter 5)'
# Looks like you failed 3 tests of 4.
t/custom.t ..........
Dubious, test returned 3 (wstat 768, 0x300)
Failed 3/4 subtests
# Failed test '200 OK'
# at t/custom_buckets.t line 18.
# got: '500'
# expected: '200'
# Failed test 'Content-Type is similar'
# at t/custom_buckets.t line 18.
# 'text/html;charset=UTF-8'
# doesn't match '(?^:^text/plain)'
# Failed test 'content is similar'
# at t/custom_buckets.t line 18.
# '<!DOCTYPE html>
# <!-- Request ID: 8ed9a867 -->
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 0.5em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-brand {
# display: inline-block;
# padding-left: 50px;
# padding-top: 4px;
# }
# #mojobar-links {
# display: inline;
# float: right;
# height: 60px;
# margin-top: 0.8em;
# padding-right: 50px;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <a href="https://mojolicious.org" id="mojobar-brand">
# <picture>
# <img src="/mojo/logo-white.png"
# srcset="/mojo/logo-white-2x.png 2x">
# </picture>
# </a> <div id="mojobar-links">
# <a href="https://mojolicious.org/perldoc">Documentation</a>
# <a href="https://chat.mibbit.com/?channel=%23mojo&server=irc.perl.org">Chat</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer(handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">Can't call method "collect" on an undefined value at /usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Net/Prometheus.pm line 279.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">274</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">275</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $collectors = $self->{collectors};</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">276</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">277</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my %samples_by_name;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">278</td>
# <td class="value wide">
# <pre><code class="prettyprint"> foreach my $collector ( @{ $collectors } ) {</code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">279</td>
# <td class="value wide">
# <pre><code class="prettyprint"> push @{ $samples_by_name{ $_->fullname } }, $_ for $collector->collect;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">280</td>
# <td class="value wide">
# <pre><code class="prettyprint"> }</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">281</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">282</td>
# <td class="value wide">
# <pre><code class="prettyprint"> return map {</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">283</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my @results = @{ $samples_by_name{ $_ } };</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">284</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $first = $results[0];</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Net/Prometheus.pm:279</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Net/Prometheus.pm:329</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/cpansand/.cpan/build/2018061412/Mojolicious-Plugin-Prometheus-1.1.1-0/blib/lib/Mojolicious/Plugin/Prometheus.pm:88</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious.pm:147</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Routes.pm:89</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Routes.pm:96</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Routes.pm:37</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Routes.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious.pm:148</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious.pm:212</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious.pm:212</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious.pm:154</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Server/Daemon.pm:152</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Server/Daemon.pm:126</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/IOLoop/Stream/HTTPServer.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/IOLoop/Stream/HTTPServer.pm:101</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/IOLoop/Stream/HTTPServer.pm:17</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/IOLoop.pm:140</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/UserAgent.pm:67</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Test/Mojo.pm:381</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Test/Mojo.pm:328</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Test/Mojo.pm:121</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/custom_buckets.t:18</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Request ID:</td>
# <td class="striped value wide"><pre>8ed9a867</pre></td>
# </tr>
#
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/metrics</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:12155</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# "cb" => sub { "DUMMY" },
# "prometheus.start_time" => [
# 1529013658,
# 658491
# ]
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:12155</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.28.0 (freebsd)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.84 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/cpansand/.cpan/build/2018061412/Mojolicious-Plugin-Prometheus-1.1.1-0/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# "/home/cpansand/.cpan/build/2018061412/Mojolicious-Plugin-Prometheus-1.1.1-0/t/templates"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# "main"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# "/home/cpansand/.cpan/build/2018061412/Mojolicious-Plugin-Prometheus-1.1.1-0/t/public"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# "main"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# "/home/cpansand/.cpan/build/2018061412/Mojolicious-Plugin-Prometheus-1.1.1-0/blib/arch",
# "/home/cpansand/.cpan/build/2018061412/Mojolicious-Plugin-Prometheus-1.1.1-0/blib/lib",
# "/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/amd64-freebsd",
# "/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0",
# "/usr/perl5.28.0-RC2p/lib/5.28.0/amd64-freebsd",
# "/usr/perl5.28.0-RC2p/lib/5.28.0",
# "."
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>custom_buckets</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/custom_buckets.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/usr/perl5.28.0-RC2p/bin/perl</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>62513</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Thu Jun 14 15:00:58 2018</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="https://mojolicious.org">
# <picture>
# <img src="/mojo/logo-black.png"
# srcset="/mojo/logo-black-2x.png 2x"
# alt="Mojolicious logo">
# </picture>
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:http_request_size_bytes_count\{worker="\d+",method="GET"\} 2)'
# Looks like you failed 3 tests of 7.
t/custom_buckets.t ..
Dubious, test returned 3 (wstat 768, 0x300)
Failed 3/7 subtests
# Failed test '200 OK'
# at t/custom_group.t line 11.
# got: '500'
# expected: '200'
# Failed test 'Content-Type is similar'
# at t/custom_group.t line 11.
# 'text/html;charset=UTF-8'
# doesn't match '(?^:^text/plain)'
# Failed test 'content is similar'
# at t/custom_group.t line 11.
# '<!DOCTYPE html>
# <!-- Request ID: adcfc245 -->
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 0.5em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-brand {
# display: inline-block;
# padding-left: 50px;
# padding-top: 4px;
# }
# #mojobar-links {
# display: inline;
# float: right;
# height: 60px;
# margin-top: 0.8em;
# padding-right: 50px;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <a href="https://mojolicious.org" id="mojobar-brand">
# <picture>
# <img src="/mojo/logo-white.png"
# srcset="/mojo/logo-white-2x.png 2x">
# </picture>
# </a> <div id="mojobar-links">
# <a href="https://mojolicious.org/perldoc">Documentation</a>
# <a href="https://chat.mibbit.com/?channel=%23mojo&server=irc.perl.org">Chat</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer(handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">Can't call method "collect" on an undefined value at /usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Net/Prometheus.pm line 279.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">274</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">275</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $collectors = $self->{collectors};</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">276</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">277</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my %samples_by_name;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">278</td>
# <td class="value wide">
# <pre><code class="prettyprint"> foreach my $collector ( @{ $collectors } ) {</code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">279</td>
# <td class="value wide">
# <pre><code class="prettyprint"> push @{ $samples_by_name{ $_->fullname } }, $_ for $collector->collect;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">280</td>
# <td class="value wide">
# <pre><code class="prettyprint"> }</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">281</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">282</td>
# <td class="value wide">
# <pre><code class="prettyprint"> return map {</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">283</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my @results = @{ $samples_by_name{ $_ } };</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">284</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $first = $results[0];</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Net/Prometheus.pm:279</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Net/Prometheus.pm:329</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/cpansand/.cpan/build/2018061412/Mojolicious-Plugin-Prometheus-1.1.1-0/blib/lib/Mojolicious/Plugin/Prometheus.pm:88</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious.pm:147</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Routes.pm:89</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Routes.pm:96</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Routes.pm:37</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Routes.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious.pm:148</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious.pm:212</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious.pm:212</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious.pm:154</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Server/Daemon.pm:152</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Server/Daemon.pm:126</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/IOLoop/Stream/HTTPServer.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/IOLoop/Stream/HTTPServer.pm:101</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/IOLoop/Stream/HTTPServer.pm:17</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/IOLoop.pm:140</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/UserAgent.pm:67</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Test/Mojo.pm:381</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Test/Mojo.pm:328</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Test/Mojo.pm:121</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/custom_group.t:11</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Request ID:</td>
# <td class="striped value wide"><pre>adcfc245</pre></td>
# </tr>
#
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/metrics</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:43440</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# "cb" => sub { "DUMMY" },
# "prometheus.start_time" => [
# 1529013659,
# 108427
# ]
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:43440</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.28.0 (freebsd)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.84 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/cpansand/.cpan/build/2018061412/Mojolicious-Plugin-Prometheus-1.1.1-0/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# "/home/cpansand/.cpan/build/2018061412/Mojolicious-Plugin-Prometheus-1.1.1-0/t/templates"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# "main"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# "/home/cpansand/.cpan/build/2018061412/Mojolicious-Plugin-Prometheus-1.1.1-0/t/public"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# "main"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# "/home/cpansand/.cpan/build/2018061412/Mojolicious-Plugin-Prometheus-1.1.1-0/blib/arch",
# "/home/cpansand/.cpan/build/2018061412/Mojolicious-Plugin-Prometheus-1.1.1-0/blib/lib",
# "/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/amd64-freebsd",
# "/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0",
# "/usr/perl5.28.0-RC2p/lib/5.28.0/amd64-freebsd",
# "/usr/perl5.28.0-RC2p/lib/5.28.0",
# "."
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>custom_group</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/custom_group.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/usr/perl5.28.0-RC2p/bin/perl</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>62517</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Thu Jun 14 15:00:59 2018</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="https://mojolicious.org">
# <picture>
# <img src="/mojo/logo-black.png"
# srcset="/mojo/logo-black-2x.png 2x"
# alt="Mojolicious logo">
# </picture>
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:mojolicious_http_request_duration_seconds)'
# Looks like you failed 3 tests of 4.
t/custom_group.t ....
Dubious, test returned 3 (wstat 768, 0x300)
Failed 3/4 subtests
# Failed test '200 OK'
# at t/custom_path.t line 11.
# got: '500'
# expected: '200'
# Failed test 'Content-Type is similar'
# at t/custom_path.t line 11.
# 'text/html;charset=UTF-8'
# doesn't match '(?^:^text/plain)'
# Failed test 'content is similar'
# at t/custom_path.t line 11.
# '<!DOCTYPE html>
# <!-- Request ID: 93442478 -->
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 0.5em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-brand {
# display: inline-block;
# padding-left: 50px;
# padding-top: 4px;
# }
# #mojobar-links {
# display: inline;
# float: right;
# height: 60px;
# margin-top: 0.8em;
# padding-right: 50px;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <a href="https://mojolicious.org" id="mojobar-brand">
# <picture>
# <img src="/mojo/logo-white.png"
# srcset="/mojo/logo-white-2x.png 2x">
# </picture>
# </a> <div id="mojobar-links">
# <a href="https://mojolicious.org/perldoc">Documentation</a>
# <a href="https://chat.mibbit.com/?channel=%23mojo&server=irc.perl.org">Chat</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer(handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">Can't call method "collect" on an undefined value at /usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Net/Prometheus.pm line 279.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">274</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">275</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $collectors = $self->{collectors};</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">276</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">277</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my %samples_by_name;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">278</td>
# <td class="value wide">
# <pre><code class="prettyprint"> foreach my $collector ( @{ $collectors } ) {</code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">279</td>
# <td class="value wide">
# <pre><code class="prettyprint"> push @{ $samples_by_name{ $_->fullname } }, $_ for $collector->collect;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">280</td>
# <td class="value wide">
# <pre><code class="prettyprint"> }</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">281</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">282</td>
# <td class="value wide">
# <pre><code class="prettyprint"> return map {</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">283</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my @results = @{ $samples_by_name{ $_ } };</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">284</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $first = $results[0];</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Net/Prometheus.pm:279</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Net/Prometheus.pm:329</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/cpansand/.cpan/build/2018061412/Mojolicious-Plugin-Prometheus-1.1.1-0/blib/lib/Mojolicious/Plugin/Prometheus.pm:88</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious.pm:147</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Routes.pm:89</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Routes.pm:96</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Routes.pm:37</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Routes.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious.pm:148</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious.pm:212</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious.pm:212</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious.pm:154</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Server/Daemon.pm:152</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Server/Daemon.pm:126</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/IOLoop/Stream/HTTPServer.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/IOLoop/Stream/HTTPServer.pm:101</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/IOLoop/Stream/HTTPServer.pm:17</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/IOLoop.pm:140</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/UserAgent.pm:67</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Test/Mojo.pm:381</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Test/Mojo.pm:328</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Test/Mojo.pm:121</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/custom_path.t:11</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Request ID:</td>
# <td class="striped value wide"><pre>93442478</pre></td>
# </tr>
#
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/vidar</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:22566</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# "cb" => sub { "DUMMY" },
# "prometheus.start_time" => [
# 1529013659,
# 546095
# ]
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:22566</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.28.0 (freebsd)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.84 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/cpansand/.cpan/build/2018061412/Mojolicious-Plugin-Prometheus-1.1.1-0/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# "/home/cpansand/.cpan/build/2018061412/Mojolicious-Plugin-Prometheus-1.1.1-0/t/templates"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# "main"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# "/home/cpansand/.cpan/build/2018061412/Mojolicious-Plugin-Prometheus-1.1.1-0/t/public"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# "main"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# "/home/cpansand/.cpan/build/2018061412/Mojolicious-Plugin-Prometheus-1.1.1-0/blib/arch",
# "/home/cpansand/.cpan/build/2018061412/Mojolicious-Plugin-Prometheus-1.1.1-0/blib/lib",
# "/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/amd64-freebsd",
# "/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0",
# "/usr/perl5.28.0-RC2p/lib/5.28.0/amd64-freebsd",
# "/usr/perl5.28.0-RC2p/lib/5.28.0",
# "."
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>custom_path</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/custom_path.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/usr/perl5.28.0-RC2p/bin/perl</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>62521</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Thu Jun 14 15:00:59 2018</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="https://mojolicious.org">
# <picture>
# <img src="/mojo/logo-black.png"
# srcset="/mojo/logo-black-2x.png 2x"
# alt="Mojolicious logo">
# </picture>
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:http_request_duration_seconds)'
# Looks like you failed 3 tests of 4.
t/custom_path.t .....
Dubious, test returned 3 (wstat 768, 0x300)
Failed 3/4 subtests
# Failed test '200 OK'
# at t/defaults.t line 28.
# got: '500'
# expected: '200'
# Failed test 'Content-Type is similar'
# at t/defaults.t line 28.
# 'text/html;charset=UTF-8'
# doesn't match '(?^:^text/plain)'
# Failed test 'content is similar'
# at t/defaults.t line 28.
# '<!DOCTYPE html>
# <!-- Request ID: cdaa67a1 -->
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 0.5em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-brand {
# display: inline-block;
# padding-left: 50px;
# padding-top: 4px;
# }
# #mojobar-links {
# display: inline;
# float: right;
# height: 60px;
# margin-top: 0.8em;
# padding-right: 50px;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <a href="https://mojolicious.org" id="mojobar-brand">
# <picture>
# <img src="/mojo/logo-white.png"
# srcset="/mojo/logo-white-2x.png 2x">
# </picture>
# </a> <div id="mojobar-links">
# <a href="https://mojolicious.org/perldoc">Documentation</a>
# <a href="https://chat.mibbit.com/?channel=%23mojo&server=irc.perl.org">Chat</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer(handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">Can't call method "collect" on an undefined value at /usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Net/Prometheus.pm line 279.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">274</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">275</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $collectors = $self->{collectors};</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">276</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">277</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my %samples_by_name;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">278</td>
# <td class="value wide">
# <pre><code class="prettyprint"> foreach my $collector ( @{ $collectors } ) {</code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">279</td>
# <td class="value wide">
# <pre><code class="prettyprint"> push @{ $samples_by_name{ $_->fullname } }, $_ for $collector->collect;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">280</td>
# <td class="value wide">
# <pre><code class="prettyprint"> }</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">281</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">282</td>
# <td class="value wide">
# <pre><code class="prettyprint"> return map {</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">283</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my @results = @{ $samples_by_name{ $_ } };</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">284</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $first = $results[0];</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Net/Prometheus.pm:279</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Net/Prometheus.pm:329</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/cpansand/.cpan/build/2018061412/Mojolicious-Plugin-Prometheus-1.1.1-0/blib/lib/Mojolicious/Plugin/Prometheus.pm:88</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious.pm:147</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Routes.pm:89</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Routes.pm:96</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Routes.pm:37</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Routes.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious.pm:148</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious.pm:212</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious.pm:212</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious.pm:154</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Server/Daemon.pm:152</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Server/Daemon.pm:126</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/IOLoop/Stream/HTTPServer.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/IOLoop/Stream/HTTPServer.pm:101</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/IOLoop/Stream/HTTPServer.pm:17</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/IOLoop.pm:140</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/UserAgent.pm:67</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Test/Mojo.pm:381</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Test/Mojo.pm:328</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Test/Mojo.pm:121</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/defaults.t:28</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Request ID:</td>
# <td class="striped value wide"><pre>cdaa67a1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/metrics</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:20758</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# "cb" => sub { "DUMMY" },
# "prometheus.start_time" => [
# 1529013665,
# 942445
# ]
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:20758</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.28.0 (freebsd)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.84 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/cpansand/.cpan/build/2018061412/Mojolicious-Plugin-Prometheus-1.1.1-0/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# "/home/cpansand/.cpan/build/2018061412/Mojolicious-Plugin-Prometheus-1.1.1-0/t/templates"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# "main"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# "/home/cpansand/.cpan/build/2018061412/Mojolicious-Plugin-Prometheus-1.1.1-0/t/public"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# "main"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# "/home/cpansand/.cpan/build/2018061412/Mojolicious-Plugin-Prometheus-1.1.1-0/blib/arch",
# "/home/cpansand/.cpan/build/2018061412/Mojolicious-Plugin-Prometheus-1.1.1-0/blib/lib",
# "/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/amd64-freebsd",
# "/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0",
# "/usr/perl5.28.0-RC2p/lib/5.28.0/amd64-freebsd",
# "/usr/perl5.28.0-RC2p/lib/5.28.0",
# "."
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>defaults</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/defaults.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/usr/perl5.28.0-RC2p/bin/perl</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>62525</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Thu Jun 14 15:01:05 2018</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="https://mojolicious.org">
# <picture>
# <img src="/mojo/logo-black.png"
# srcset="/mojo/logo-black-2x.png 2x"
# alt="Mojolicious logo">
# </picture>
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:http_requests_total\{worker="\d+",method="GET",code="200"\} 100)'
# Failed test '200 OK'
# at t/defaults.t line 31.
# got: '500'
# expected: '200'
# Failed test 'Content-Type is similar'
# at t/defaults.t line 31.
# 'text/html;charset=UTF-8'
# doesn't match '(?^:^text/plain)'
# Failed test 'content is similar'
# at t/defaults.t line 31.
# '<!DOCTYPE html>
# <!-- Request ID: 973c0316 -->
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 0.5em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-brand {
# display: inline-block;
# padding-left: 50px;
# padding-top: 4px;
# }
# #mojobar-links {
# display: inline;
# float: right;
# height: 60px;
# margin-top: 0.8em;
# padding-right: 50px;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <a href="https://mojolicious.org" id="mojobar-brand">
# <picture>
# <img src="/mojo/logo-white.png"
# srcset="/mojo/logo-white-2x.png 2x">
# </picture>
# </a> <div id="mojobar-links">
# <a href="https://mojolicious.org/perldoc">Documentation</a>
# <a href="https://chat.mibbit.com/?channel=%23mojo&server=irc.perl.org">Chat</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer(handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">Can't call method "collect" on an undefined value at /usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Net/Prometheus.pm line 279.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">274</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">275</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $collectors = $self->{collectors};</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">276</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">277</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my %samples_by_name;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">278</td>
# <td class="value wide">
# <pre><code class="prettyprint"> foreach my $collector ( @{ $collectors } ) {</code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">279</td>
# <td class="value wide">
# <pre><code class="prettyprint"> push @{ $samples_by_name{ $_->fullname } }, $_ for $collector->collect;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">280</td>
# <td class="value wide">
# <pre><code class="prettyprint"> }</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">281</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">282</td>
# <td class="value wide">
# <pre><code class="prettyprint"> return map {</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">283</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my @results = @{ $samples_by_name{ $_ } };</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">284</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $first = $results[0];</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Net/Prometheus.pm:279</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Net/Prometheus.pm:329</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/cpansand/.cpan/build/2018061412/Mojolicious-Plugin-Prometheus-1.1.1-0/blib/lib/Mojolicious/Plugin/Prometheus.pm:88</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious.pm:147</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Routes.pm:89</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Routes.pm:96</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Routes.pm:37</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Routes.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious.pm:148</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious.pm:212</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious.pm:212</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojolicious.pm:154</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Server/Daemon.pm:152</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Server/Daemon.pm:126</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/IOLoop/Stream/HTTPServer.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/IOLoop/Stream/HTTPServer.pm:101</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/IOLoop/Stream/HTTPServer.pm:17</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/IOLoop/Stream.pm:99</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/IOLoop/Stream.pm:48</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/IOLoop.pm:140</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Mojo/UserAgent.pm:67</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Test/Mojo.pm:381</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Test/Mojo.pm:328</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/Test/Mojo.pm:121</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/defaults.t:31</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Request ID:</td>
# <td class="striped value wide"><pre>973c0316</pre></td>
# </tr>
#
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/metrics</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:20758</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# "cb" => sub { "DUMMY" },
# "prometheus.start_time" => [
# 1529013665,
# 983387
# ]
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:20758</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.28.0 (freebsd)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.84 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/home/cpansand/.cpan/build/2018061412/Mojolicious-Plugin-Prometheus-1.1.1-0/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# "/home/cpansand/.cpan/build/2018061412/Mojolicious-Plugin-Prometheus-1.1.1-0/t/templates"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# "main"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# "/home/cpansand/.cpan/build/2018061412/Mojolicious-Plugin-Prometheus-1.1.1-0/t/public"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# "main"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# "/home/cpansand/.cpan/build/2018061412/Mojolicious-Plugin-Prometheus-1.1.1-0/blib/arch",
# "/home/cpansand/.cpan/build/2018061412/Mojolicious-Plugin-Prometheus-1.1.1-0/blib/lib",
# "/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/amd64-freebsd",
# "/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0",
# "/usr/perl5.28.0-RC2p/lib/5.28.0/amd64-freebsd",
# "/usr/perl5.28.0-RC2p/lib/5.28.0",
# "."
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>defaults</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/defaults.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/usr/perl5.28.0-RC2p/bin/perl</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>62525</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Thu Jun 14 15:01:05 2018</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="https://mojolicious.org">
# <picture>
# <img src="/mojo/logo-black.png"
# srcset="/mojo/logo-black-2x.png 2x"
# alt="Mojolicious logo">
# </picture>
# </a> </div>
# </body>
# </html>
# '
# doesn't match '(?^:http_request_duration_seconds_count\{worker="\d+",method="GET"\} 101)'
# Looks like you failed 6 tests of 608.
t/defaults.t ........
Dubious, test returned 6 (wstat 1536, 0x600)
Failed 6/608 subtests
t/linux.t ........... skipped: Test irrelevant outside Linux
Test Summary Report
-------------------
t/basic.t (Wstat: 768 Tests: 10 Failed: 3)
Failed tests: 8-10
Non-zero exit status: 3
t/custom.t (Wstat: 768 Tests: 4 Failed: 3)
Failed tests: 2-4
Non-zero exit status: 3
t/custom_buckets.t (Wstat: 768 Tests: 7 Failed: 3)
Failed tests: 5-7
Non-zero exit status: 3
t/custom_group.t (Wstat: 768 Tests: 4 Failed: 3)
Failed tests: 2-4
Non-zero exit status: 3
t/custom_path.t (Wstat: 768 Tests: 4 Failed: 3)
Failed tests: 2-4
Non-zero exit status: 3
t/defaults.t (Wstat: 1536 Tests: 608 Failed: 6)
Failed tests: 602-604, 606-608
Non-zero exit status: 6
Files=8, Tests=638, 10 wallclock secs ( 0.12 usr 0.05 sys + 3.19 cusr 0.50 csys = 3.86 CPU)
Result: FAIL
------------------------------
PREREQUISITES
------------------------------
Prerequisite modules loaded:
requires:
Module Need Have
------------------- ----- --------
Mojolicious 0 7.84
Net::Prometheus 0.05 0.05
Time::HiRes 0 1.9759
build_requires:
Module Need Have
------------------- ----- --------
Devel::Cover 0 1.29
Test::More 0.98 1.302136
configure_requires:
Module Need Have
------------------- ----- --------
Module::Build::Tiny 0.035 0.039
------------------------------
ENVIRONMENT AND OTHER CONTEXT
------------------------------
Environment variables:
PATH = /usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/cpansand/bin/sh:/home/cpansand/bin:/usr/games:/home/cpansand/devel:/home/eserte/src/srezic-misc/scripts
PERL5LIB =
PERL5OPT =
PERL5_CPANPLUS_IS_RUNNING = 54826
PERL5_CPAN_IS_RUNNING = 54826
PERL5_CPAN_IS_RUNNING_IN_RECURSION = 54097,54826
PERL_BATCH = yes
PERL_CANARY_STABILITY_NOPROMPT = 1
PERL_CPAN_REPORTER_CONFIG = /var/tmp/cpansmoker-1023/2018061412/cpanreporter_002_config.ini
PERL_EXTUTILS_AUTOINSTALL = --defaultdeps
PERL_USE_UNSAFE_INC = 1
SHELL = /bin/sh
TMPDIR = /var/tmp/cpansmoker-1023/2018061412
Perl special variables (and OS-specific diagnostics, for MSWin32):
$^X = /usr/perl5.28.0-RC2p/bin/perl
$UID/$EUID = 1023 / 1023
$GID = 1023 1023
$EGID = 1023 1023
Perl module toolchain versions installed:
Module Have
------------------- --------
CPAN 2.20
CPAN::Meta 2.150010
Cwd 3.74
ExtUtils::CBuilder 0.280230
ExtUtils::Command 7.34
ExtUtils::Install 2.14
ExtUtils::MakeMaker 7.34
ExtUtils::Manifest 1.70
ExtUtils::ParseXS 3.39
File::Spec 3.74
JSON 2.97001
JSON::PP 2.97001
Module::Build 0.4224
Module::Signature 0.81
Parse::CPAN::Meta 2.150010
Test::Harness 3.42
Test::More 1.302136
YAML 1.26
YAML::Syck 1.30
version 0.9923
--
Summary of my perl5 (revision 5 version 28 subversion 0) configuration:
Platform:
osname=freebsd
osvers=11.1-release-p9
archname=amd64-freebsd
uname='freebsd ali2.bbbike.org 11.1-release-p9 freebsd 11.1-release-p9 #0: tue apr 3 16:59:16 utc 2018 root@amd64-builder.daemonology.net:usrobjusrsrcsysgeneric amd64 '
config_args='-ds -e -Dprefix=/usr/perl5.28.0-RC2p -Dcf_email=srezic@cpan.org -Doptimize=-O2 -pipe'
hint=recommended
useposix=true
d_sigaction=define
useithreads=undef
usemultiplicity=undef
use64bitint=define
use64bitall=define
uselongdouble=undef
usemymalloc=n
default_inc_excludes_dot=define
bincompat5005=undef
Compiler:
cc='cc'
ccflags ='-DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_FORTIFY_SOURCE=2'
optimize='-O2 -pipe'
cppflags='-DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include'
ccversion=''
gccversion='4.2.1 Compatible FreeBSD Clang 4.0.0 (tags/RELEASE_400/final 297347)'
gccosandvers=''
intsize=4
longsize=8
ptrsize=8
doublesize=8
byteorder=12345678
doublekind=3
d_longlong=define
longlongsize=8
d_longdbl=define
longdblsize=16
longdblkind=3
ivtype='long'
ivsize=8
nvtype='double'
nvsize=8
Off_t='off_t'
lseeksize=8
alignbytes=8
prototype=define
Linker and Libraries:
ld='cc'
ldflags ='-pthread -Wl,-E -fstack-protector-strong -L/usr/local/lib'
libpth=/usr/lib /usr/local/lib /usr/bin/../lib/clang/4.0.0/lib /usr/lib
libs=-lpthread -lgdbm -lm -lcrypt -lutil -lc
perllibs=-lpthread -lm -lcrypt -lutil -lc
libc=
so=so
useshrplib=false
libperl=libperl.a
gnulibc_version=''
Dynamic Linking:
dlsrc=dl_dlopen.xs
dlext=so
d_dlsymun=undef
ccdlflags=' '
cccdlflags='-DPIC -fPIC'
lddlflags='-shared -L/usr/local/lib -fstack-protector-strong'
Characteristics of this binary (from libperl):
Compile-time options:
HAS_TIMES
PERLIO_LAYERS
PERL_COPY_ON_WRITE
PERL_DONT_CREATE_GVSV
PERL_MALLOC_WRAP
PERL_OP_PARENT
PERL_PRESERVE_IVUV
USE_64_BIT_ALL
USE_64_BIT_INT
USE_LARGE_FILES
USE_LOCALE
USE_LOCALE_COLLATE
USE_LOCALE_CTYPE
USE_LOCALE_NUMERIC
USE_LOCALE_TIME
USE_PERLIO
USE_PERL_ATOF
Locally applied patches:
RC2
Built under freebsd
Compiled at Jun 7 2018 03:03:55
%ENV:
PERL5LIB=""
PERL5OPT=""
PERL5_CPANPLUS_IS_RUNNING="54826"
PERL5_CPAN_IS_RUNNING="54826"
PERL5_CPAN_IS_RUNNING_IN_RECURSION="54097,54826"
PERL_BATCH="yes"
PERL_CANARY_STABILITY_NOPROMPT="1"
PERL_CPAN_REPORTER_CONFIG="/var/tmp/cpansmoker-1023/2018061412/cpanreporter_002_config.ini"
PERL_EXTUTILS_AUTOINSTALL="--defaultdeps"
PERL_USE_UNSAFE_INC="1"
@INC:
/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0/amd64-freebsd
/usr/perl5.28.0-RC2p/lib/site_perl/5.28.0
/usr/perl5.28.0-RC2p/lib/5.28.0/amd64-freebsd
/usr/perl5.28.0-RC2p/lib/5.28.0
.