Skip to content

Commit eff38d7

Browse files
authored
feat(laravel): Add attributes for Laravel request instrumentation (#162)
* feat(laravel): Add attributes for Laravel request instrumentation Signed-off-by: Natsuki Ikeguchi <[email protected]> * style(laravel): Fix CS Signed-off-by: Natsuki Ikeguchi <[email protected]> --------- Signed-off-by: Natsuki Ikeguchi <[email protected]>
1 parent c92827d commit eff38d7

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

src/LaravelInstrumentation.php

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,17 @@ public static function register(): void
5252
$parent = Globals::propagator()->extract($request, HeadersPropagator::instance());
5353
$span = $builder
5454
->setParent($parent)
55-
->setAttribute(TraceAttributes::HTTP_URL, $request->url())
55+
->setAttribute(TraceAttributes::HTTP_URL, $request->fullUrl())
5656
->setAttribute(TraceAttributes::HTTP_METHOD, $request->method())
57-
->setAttribute(TraceAttributes::HTTP_REQUEST_CONTENT_LENGTH, $request->headers->get('Content-Length'))
57+
->setAttribute(TraceAttributes::HTTP_REQUEST_CONTENT_LENGTH, $request->get('Content-Length'))
5858
->setAttribute(TraceAttributes::HTTP_SCHEME, $request->getScheme())
59+
->setAttribute(TraceAttributes::HTTP_FLAVOR, $request->getProtocolVersion())
60+
->setAttribute(TraceAttributes::HTTP_CLIENT_IP, $request->ip())
61+
->setAttribute(TraceAttributes::HTTP_TARGET, self::httpTarget($request))
62+
->setAttribute(TraceAttributes::NET_HOST_NAME, $request->host())
63+
->setAttribute(TraceAttributes::NET_HOST_PORT, $request->getPort())
64+
->setAttribute(TraceAttributes::NET_PEER_PORT, $request->server('REMOTE_PORT'))
65+
->setAttribute(TraceAttributes::USER_AGENT_ORIGINAL, $request->userAgent())
5966
->startSpan();
6067
$request->attributes->set(SpanInterface::class, $span);
6168
} else {
@@ -113,4 +120,12 @@ public static function register(): void
113120
post: null
114121
);
115122
}
123+
124+
private static function httpTarget(Request $request): string
125+
{
126+
$query = $request->getQueryString();
127+
$question = $request->getBaseUrl() . $request->getPathInfo() === '/' ? '/?' : '?';
128+
129+
return $query ? $request->path() . $question . $query : $request->path();
130+
}
116131
}

0 commit comments

Comments
 (0)