Skip to content

Commit 6a7a2dc

Browse files
committed
Add request hostname to span name - addresses open-telemetry/opentelemetry-php#1399
1 parent 67ce817 commit 6a7a2dc

File tree

1 file changed

+20
-3
lines changed

1 file changed

+20
-3
lines changed

src/Instrumentation/Symfony/src/HttpClientInstrumentation.php

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,16 +48,34 @@ public static function register(): void
4848
?int $lineno,
4949
) use ($instrumentation): array {
5050
/** @psalm-suppress ArgumentTypeCoercion */
51+
$requestOptions = $params[2] ?? [];
52+
53+
if (array_key_exists('base_uri', $requestOptions)) {
54+
$baseuri = $requestOptions['base_uri'];
55+
$parsedUrl = parse_url($baseuri);
56+
if (!array_key_exists('port', $parsedUrl)) {
57+
$parsedUrl['port'] = $parsedUrl['scheme'] === 'https' ? 443 : 80;
58+
}
59+
} else {
60+
$parsedUrl = parse_url((string) $params[1]);
61+
if (!array_key_exists('port', $parsedUrl)) {
62+
$parsedUrl['port'] = $parsedUrl['scheme'] === 'https' ? 443 : 80;
63+
}
64+
$baseuri = sprintf('%s://%s:%d', $parsedUrl['scheme'], $parsedUrl['host'], $parsedUrl['port']);
65+
}
66+
5167
$builder = $instrumentation
5268
->tracer()
53-
->spanBuilder(\sprintf('%s', $params[0]))
69+
->spanBuilder(\sprintf('%s %s', $params[0],$baseuri))
5470
->setSpanKind(SpanKind::KIND_CLIENT)
55-
->setAttribute(TraceAttributes::PEER_SERVICE, parse_url((string) $params[1])['host'] ?? null)
71+
->setAttribute(TraceAttributes::PEER_SERVICE, $parsedUrl['host'])
5672
->setAttribute(TraceAttributes::URL_FULL, (string) $params[1])
5773
->setAttribute(TraceAttributes::HTTP_REQUEST_METHOD, $params[0])
5874
->setAttribute(TraceAttributes::CODE_FUNCTION, $function)
5975
->setAttribute(TraceAttributes::CODE_NAMESPACE, $class)
6076
->setAttribute(TraceAttributes::CODE_FILEPATH, $filename)
77+
->setAttribute(TraceAttributes::SERVER_ADDRESS,$parsedUrl['host'])
78+
->setAttribute(TraceAttributes::SERVER_PORT, $parsedUrl['port'])
6179
->setAttribute(TraceAttributes::CODE_LINENO, $lineno);
6280

6381
$propagator = Globals::propagator();
@@ -67,7 +85,6 @@ public static function register(): void
6785
->setParent($parent)
6886
->startSpan();
6987

70-
$requestOptions = $params[2] ?? [];
7188

7289
if (!isset($requestOptions['headers'])) {
7390
$requestOptions['headers'] = [];

0 commit comments

Comments
 (0)