Expose Prometheus metrics at /metrics
Exposes metrics: * http_request_duration_seconds_bucket * http_request_size_bytes_bucket * http_response_size_bytes_bucket * http_requests_total with labels of action and controller to help identify popular endpoints and their performance characteristics.
This commit is contained in:
30
t/Controller/metrics.t
Normal file
30
t/Controller/metrics.t
Normal file
@ -0,0 +1,30 @@
|
||||
use feature 'unicode_strings';
|
||||
use strict;
|
||||
use Setup;
|
||||
use JSON qw(decode_json encode_json);
|
||||
|
||||
my %ctx = test_init();
|
||||
|
||||
require Hydra::Schema;
|
||||
require Hydra::Model::DB;
|
||||
require Hydra::Helper::Nix;
|
||||
use HTTP::Request::Common;
|
||||
|
||||
use Test2::V0;
|
||||
require Catalyst::Test;
|
||||
Catalyst::Test->import('Hydra');
|
||||
|
||||
my $db = Hydra::Model::DB->new;
|
||||
hydra_setup($db);
|
||||
|
||||
request(GET '/');
|
||||
my $metrics = request(GET '/metrics');
|
||||
ok($metrics->is_success);
|
||||
|
||||
like(
|
||||
$metrics->content,
|
||||
qr/http_requests_total\{action="index",code="200",controller="Hydra::Controller::Root",method="GET"\} 1/,
|
||||
"Metrics are collected"
|
||||
);
|
||||
|
||||
done_testing;
|
Reference in New Issue
Block a user