Skip to content

Commit c5879b6

Browse files
committed
fix: Fetch root span from \DDTrace\root_span()
1 parent 6fefca8 commit c5879b6

File tree

2 files changed

+54
-44
lines changed

2 files changed

+54
-44
lines changed

src/Integrations/Integrations/CakePHP/V2/CakePHPIntegrationLoader.php

Lines changed: 27 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -21,27 +21,25 @@ public function load($integration)
2121
return Integration::NOT_AVAILABLE;
2222
}
2323

24-
$integration->rootSpan = null;
25-
2624
$setRootSpanInfoFn = function () use ($integration) {
2725
$rootSpan = \DDTrace\root_span();
2826
if ($rootSpan === null) {
2927
return;
3028
}
3129

3230
$integration->appName = \ddtrace_config_app_name(CakePHPIntegration::NAME);
33-
$integration->rootSpan = $rootSpan;
34-
$integration->addTraceAnalyticsIfEnabled($integration->rootSpan);
35-
$integration->rootSpan->service = $integration->appName;
31+
$integration->addTraceAnalyticsIfEnabled($rootSpan);
32+
$rootSpan->service = $integration->appName;
3633
if ('cli' === PHP_SAPI) {
37-
$integration->rootSpan->name = 'cakephp.console';
38-
$integration->rootSpan->resource =
39-
!empty($_SERVER['argv'][1]) ? 'cake_console ' . $_SERVER['argv'][1] : 'cake_console';
34+
$rootSpan->name = 'cakephp.console';
35+
$rootSpan->resource = !empty($_SERVER['argv'][1])
36+
? 'cake_console ' . $_SERVER['argv'][1]
37+
: 'cake_console';
4038
} else {
41-
$integration->rootSpan->name = 'cakephp.request';
42-
$integration->rootSpan->meta[Tag::SPAN_KIND] = 'server';
39+
$rootSpan->name = 'cakephp.request';
40+
$rootSpan->meta[Tag::SPAN_KIND] = 'server';
4341
}
44-
$integration->rootSpan->meta[Tag::COMPONENT] = CakePHPIntegration::NAME;
42+
$rootSpan->meta[Tag::COMPONENT] = CakePHPIntegration::NAME;
4543
};
4644

4745
\DDTrace\hook_method('App', 'init', $setRootSpanInfoFn);
@@ -61,19 +59,21 @@ function (SpanData $span, array $args) use ($integration) {
6159
return;
6260
}
6361

62+
$rootSpan = \DDTrace\root_span();
63+
6464
if (dd_trace_env_config("DD_HTTP_SERVER_ROUTE_BASED_NAMING")) {
65-
$integration->rootSpan->resource =
65+
$rootSpan->resource =
6666
$_SERVER['REQUEST_METHOD'] . ' ' . $this->name . 'Controller@' . $request->params['action'];
6767
}
6868

69-
if (!array_key_exists(Tag::HTTP_URL, $integration->rootSpan->meta)) {
70-
$integration->rootSpan->meta[Tag::HTTP_URL] = Router::url($request->here, true)
69+
if (!array_key_exists(Tag::HTTP_URL, $rootSpan->meta)) {
70+
$rootSpan->meta[Tag::HTTP_URL] = Router::url($request->here, true)
7171
. Normalizer::sanitizedQueryString();
7272
}
73-
$integration->rootSpan->meta['cakephp.route.controller'] = $request->params['controller'];
74-
$integration->rootSpan->meta['cakephp.route.action'] = $request->params['action'];
73+
$rootSpan->meta['cakephp.route.controller'] = $request->params['controller'];
74+
$rootSpan->meta['cakephp.route.action'] = $request->params['action'];
7575
if (isset($request->params['plugin'])) {
76-
$integration->rootSpan->meta['cakephp.plugin'] = $request->params['plugin'];
76+
$rootSpan->meta['cakephp.plugin'] = $request->params['plugin'];
7777
}
7878
}
7979
);
@@ -89,8 +89,9 @@ function (SpanData $span, array $args) use ($integration) {
8989
'ExceptionRenderer',
9090
'__construct',
9191
function ($This, $scope, $args) use ($integration) {
92-
if ($integration->rootSpan) {
93-
$integration->setError($integration->rootSpan, $args[0]);
92+
$rootSpan = \DDTrace\root_span();
93+
if ($rootSpan !== null) {
94+
$integration->setError($rootSpan, $args[0]);
9495
}
9596
}
9697
);
@@ -100,8 +101,9 @@ function ($This, $scope, $args) use ($integration) {
100101
'statusCode',
101102
null,
102103
function ($This, $scope, $args, $retval) use ($integration) {
103-
if ($integration->rootSpan) {
104-
$integration->rootSpan->meta[Tag::HTTP_STATUS_CODE] = $retval;
104+
$rootSpan = \DDTrace\root_span();
105+
if ($rootSpan !== null) {
106+
$rootSpan->meta[Tag::HTTP_STATUS_CODE] = $retval;
105107
}
106108
}
107109
);
@@ -126,7 +128,10 @@ function ($app, $appClass, $args, $retval) use ($integration) {
126128
return;
127129
}
128130

129-
$integration->rootSpan->meta[Tag::HTTP_ROUTE] = $app->template;
131+
$rootSpan = \DDTrace\root_span();
132+
if ($rootSpan !== null) {
133+
$rootSpan->meta[Tag::HTTP_ROUTE] = $app->template;
134+
}
130135
}
131136
);
132137

src/Integrations/Integrations/CakePHP/V3/CakePHPIntegrationLoader.php

Lines changed: 27 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -17,27 +17,25 @@ class CakePHPIntegrationLoader
1717
{
1818
public function load($integration)
1919
{
20-
$integration->rootSpan = null;
21-
2220
$setRootSpanInfoFn = function () use ($integration) {
2321
$rootSpan = \DDTrace\root_span();
2422
if ($rootSpan === null) {
2523
return;
2624
}
2725

2826
$integration->appName = \ddtrace_config_app_name(CakePHPIntegration::NAME);
29-
$integration->rootSpan = $rootSpan;
30-
$integration->addTraceAnalyticsIfEnabled($integration->rootSpan);
31-
$integration->rootSpan->service = $integration->appName;
27+
$integration->addTraceAnalyticsIfEnabled($rootSpan);
28+
$rootSpan->service = $integration->appName;
3229
if ('cli' === PHP_SAPI) {
33-
$integration->rootSpan->name = 'cakephp.console';
34-
$integration->rootSpan->resource =
35-
!empty($_SERVER['argv'][1]) ? 'cake_console ' . $_SERVER['argv'][1] : 'cake_console';
30+
$rootSpan->name = 'cakephp.console';
31+
$rootSpan->resource = !empty($_SERVER['argv'][1])
32+
? 'cake_console ' . $_SERVER['argv'][1]
33+
: 'cake_console';
3634
} else {
37-
$integration->rootSpan->name = 'cakephp.request';
38-
$integration->rootSpan->meta[Tag::SPAN_KIND] = 'server';
35+
$rootSpan->name = 'cakephp.request';
36+
$rootSpan->meta[Tag::SPAN_KIND] = 'server';
3937
}
40-
$integration->rootSpan->meta[Tag::COMPONENT] = CakePHPIntegration::NAME;
38+
$rootSpan->meta[Tag::COMPONENT] = CakePHPIntegration::NAME;
4139
};
4240

4341
\DDTrace\hook_method('App\Application', '__construct', $setRootSpanInfoFn);
@@ -58,20 +56,22 @@ function (SpanData $span) use ($integration) {
5856
return;
5957
}
6058

59+
$rootSpan = \DDTrace\root_span();
60+
6161
if (dd_trace_env_config("DD_HTTP_SERVER_ROUTE_BASED_NAMING")) {
62-
$integration->rootSpan->resource =
62+
$rootSpan->resource =
6363
$_SERVER['REQUEST_METHOD'] . ' ' . $this->name . 'Controller@' . $request->getParam('action');
6464
}
6565

66-
if (!array_key_exists(Tag::HTTP_URL, $integration->rootSpan->meta)) {
67-
$integration->rootSpan->meta[Tag::HTTP_URL] = Router::url($request->getAttribute('here'), true)
66+
if (!array_key_exists(Tag::HTTP_URL, $rootSpan->meta)) {
67+
$rootSpan->meta[Tag::HTTP_URL] = Router::url($request->getAttribute('here'), true)
6868
. Normalizer::sanitizedQueryString();
6969
}
70-
$integration->rootSpan->meta['cakephp.route.controller'] = $request->getParam('controller');
71-
$integration->rootSpan->meta['cakephp.route.action'] = $request->getParam('action');
70+
$rootSpan->meta['cakephp.route.controller'] = $request->getParam('controller');
71+
$rootSpan->meta['cakephp.route.action'] = $request->getParam('action');
7272
$plugin = $request->getParam('plugin');
7373
if ($plugin) {
74-
$integration->rootSpan->meta['cakephp.plugin'] = $plugin;
74+
$rootSpan->meta['cakephp.plugin'] = $plugin;
7575
}
7676
}
7777
);
@@ -80,8 +80,9 @@ function (SpanData $span) use ($integration) {
8080
'Cake\Error\Middleware\ErrorHandlerMiddleware',
8181
'handleException',
8282
function ($This, $scope, $args) use ($integration) {
83-
if ($integration->rootSpan) {
84-
$integration->setError($integration->rootSpan, $args[0]);
83+
$rootSpan = \DDTrace\root_span();
84+
if ($rootSpan !== null) {
85+
$integration->setError($rootSpan, $args[0]);
8586
}
8687
});
8788

@@ -90,8 +91,9 @@ function ($This, $scope, $args) use ($integration) {
9091
'getStatusCode',
9192
null,
9293
function ($This, $scope, $args, $retval) use ($integration) {
93-
if ($integration->rootSpan) {
94-
$integration->rootSpan->meta[Tag::HTTP_STATUS_CODE] = $retval;
94+
$rootSpan = \DDTrace\root_span();
95+
if ($rootSpan) {
96+
$rootSpan->meta[Tag::HTTP_STATUS_CODE] = $retval;
9597
}
9698
}
9799
);
@@ -150,7 +152,10 @@ function ($app, $appClass, $args, $retval) use ($integration) {
150152
return;
151153
}
152154

153-
$integration->rootSpan->meta[Tag::HTTP_ROUTE] = $app->template;
155+
$rootSpan = \DDTrace\root_span();
156+
if ($rootSpan) {
157+
$rootSpan->meta[Tag::HTTP_ROUTE] = $app->template;
158+
}
154159
}
155160
);
156161

0 commit comments

Comments
 (0)