Skip to content

Commit d0668e8

Browse files
committed
Try add a trace from Web Fastly request API request so can add to logging
1 parent 775ee40 commit d0668e8

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

app.psgi

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,9 @@ builder {
106106
$env->{REMOTE_ADDR}, $env->{REQUEST_URI}, time, $$, rand, ) );
107107
$env->{'MetaCPAN::Web.request_id'} = $request_id;
108108

109+
# Capture X-Trace-ID, set by Fastly, to pass to API backend
110+
$env->{'MetaCPAN::Web.x_trace_id'} = $env->{HTTP_X_TRACE_ID};
111+
109112
my $mdc = Log::Log4perl::MDC->get_context;
110113
%$mdc = (
111114
request_id => $request_id,

lib/MetaCPAN/Web/Model/API.pm

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ has log => ( is => 'ro' );
5252
has debug => ( is => 'ro' );
5353
has request_uri => ( is => 'ro' );
5454
has request_id => ( is => 'ro' );
55+
has x_trace_id => ( is => 'ro' );
5556

5657
sub COMPONENT {
5758
my ( $class, $app, $args ) = @_;
@@ -77,7 +78,10 @@ sub ACCEPT_CONTEXT {
7778
request_url => $r->uri,
7879
(
7980
$r->env
80-
? ( request_id => $r->env->{'MetaCPAN::Web.request_id'}, )
81+
? (
82+
request_id => $r->env->{'MetaCPAN::Web.request_id'},
83+
x_trace_id => $r->env->{'MetaCPAN::Web.x_trace_id'},
84+
)
8185
: ()
8286
),
8387
);
@@ -102,6 +106,8 @@ sub request {
102106

103107
my $current_url = $self->request_uri;
104108
my $request_id = $self->request_id;
109+
my $x_trace_id = $self->x_trace_id || 'No-Trace-ID-to-MC';
110+
105111
if ( $method =~ /^(GET|DELETE)$/ || $search ) {
106112
for my $param ( keys %{ $params || {} } ) {
107113
$url->query_param( $param => $params->{$param} );
@@ -124,6 +130,9 @@ sub request {
124130
),
125131
( $current_url ? ( 'Referer' => $current_url->as_string ) : () ),
126132
( $request_id ? ( 'X-MetaCPAN-Request-ID' => $request_id ) : () ),
133+
134+
# Comes from the UUID fastly sets
135+
( $x_trace_id ? ( 'X-Trace-ID' => $x_trace_id ) : () ),
127136
'Accept' => 'application/json, */*',
128137
);
129138

0 commit comments

Comments
 (0)