File tree Expand file tree Collapse file tree 11 files changed +57
-72
lines changed
Expand file tree Collapse file tree 11 files changed +57
-72
lines changed Original file line number Diff line number Diff line change 1212use OpenTelemetry \SDK \Resource \ResourceInfoFactory ;
1313use OpenTelemetry \SemConv \ResourceAttributes ;
1414
15+ /**
16+ * Detect service name and version of root package. Not included in `all` detectors.
17+ */
1518final class Composer implements ResourceDetectorInterface
1619{
1720 public function getResource (): ResourceInfo
Original file line number Diff line number Diff line change @@ -19,7 +19,7 @@ public function __construct(private readonly iterable $resourceDetectors)
1919
2020 public function getResource (): ResourceInfo
2121 {
22- $ resource = ResourceInfoFactory::emptyResource ();
22+ $ resource = ResourceInfoFactory::mandatoryResource ();
2323 foreach ($ this ->resourceDetectors as $ resourceDetector ) {
2424 $ resource = $ resource ->merge ($ resourceDetector ->getResource ());
2525 }
Original file line number Diff line number Diff line change @@ -22,14 +22,6 @@ public function getResource(): ResourceInfo
2222 ? self ::decode (Configuration::getMap (Variables::OTEL_RESOURCE_ATTRIBUTES , []))
2323 : [];
2424
25- //@see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/configuration/sdk-environment-variables.md#general-sdk-configuration
26- $ serviceName = Configuration::has (Variables::OTEL_SERVICE_NAME )
27- ? Configuration::getString (Variables::OTEL_SERVICE_NAME )
28- : null ;
29- if ($ serviceName ) {
30- $ attributes [ResourceAttributes::SERVICE_NAME ] = $ serviceName ;
31- }
32-
3325 return ResourceInfo::create (Attributes::create ($ attributes ), ResourceAttributes::SCHEMA_URL );
3426 }
3527
Original file line number Diff line number Diff line change 88use OpenTelemetry \SDK \Resource \ResourceDetectorInterface ;
99use OpenTelemetry \SDK \Resource \ResourceInfo ;
1010use OpenTelemetry \SemConv \ResourceAttributes ;
11+ use const PHP_OS ;
12+ use const PHP_OS_FAMILY ;
1113use function php_uname ;
14+ use function strtolower ;
1215
1316/**
1417 * @see https://github.com/open-telemetry/opentelemetry-specification/blob/v1.8.0/specification/resource/semantic_conventions/host.md#host
18+ * @see https://github.com/open-telemetry/opentelemetry-specification/blob/v1.8.0/specification/resource/semantic_conventions/os.md
1519 */
1620final class Host implements ResourceDetectorInterface
1721{
@@ -31,6 +35,10 @@ public function getResource(): ResourceInfo
3135 ResourceAttributes::HOST_NAME => php_uname ('n ' ),
3236 ResourceAttributes::HOST_ARCH => php_uname ('m ' ),
3337 ResourceAttributes::HOST_ID => $ this ->getMachineId (),
38+ ResourceAttributes::OS_TYPE => strtolower (PHP_OS_FAMILY ),
39+ ResourceAttributes::OS_DESCRIPTION => php_uname ('r ' ),
40+ ResourceAttributes::OS_NAME => PHP_OS ,
41+ ResourceAttributes::OS_VERSION => php_uname ('v ' ),
3442 ];
3543
3644 return ResourceInfo::create (Attributes::create ($ attributes ), ResourceAttributes::SCHEMA_URL );
Original file line number Diff line number Diff line change 44
55namespace OpenTelemetry \SDK \Resource \Detectors ;
66
7- use OpenTelemetry \SDK \Common \Attribute \Attributes ;
87use OpenTelemetry \SDK \Resource \ResourceDetectorInterface ;
98use OpenTelemetry \SDK \Resource \ResourceInfo ;
10- use OpenTelemetry \SemConv \ResourceAttributes ;
11- use const PHP_OS ;
12- use const PHP_OS_FAMILY ;
13- use function php_uname ;
14- use function strtolower ;
159
1610/**
17- * @see https://github.com/open-telemetry/opentelemetry-specification/blob/v1.8.0/specification/resource/semantic_conventions/os.md
11+ * @deprecated Use Host detector instead.
1812 */
1913final class OperatingSystem implements ResourceDetectorInterface
2014{
2115 public function getResource (): ResourceInfo
2216 {
23- $ attributes = [
24- ResourceAttributes::OS_TYPE => strtolower (PHP_OS_FAMILY ),
25- ResourceAttributes::OS_DESCRIPTION => php_uname ('r ' ),
26- ResourceAttributes::OS_NAME => PHP_OS ,
27- ResourceAttributes::OS_VERSION => php_uname ('v ' ),
28- ];
29-
30- return ResourceInfo::create (Attributes::create ($ attributes ), ResourceAttributes::SCHEMA_URL );
17+ return ResourceInfo::emptyResource ();
3118 }
3219}
Original file line number Diff line number Diff line change 1111use OpenTelemetry \SDK \Resource \ResourceInfo ;
1212use OpenTelemetry \SemConv \ResourceAttributes ;
1313use const PHP_BINARY ;
14+ use function php_sapi_name ;
15+ use const PHP_VERSION ;
1416
1517/**
1618 * @see https://github.com/open-telemetry/opentelemetry-specification/blob/v1.8.0/specification/resource/semantic_conventions/process.md#process
19+ * @see https://github.com/open-telemetry/opentelemetry-specification/blob/v1.8.0/specification/resource/semantic_conventions/process.md#process-runtimes
1720 */
1821final class Process implements ResourceDetectorInterface
1922{
@@ -22,9 +25,13 @@ final class Process implements ResourceDetectorInterface
2225 */
2326 public function getResource (): ResourceInfo
2427 {
25- $ attributes = [];
26- $ attributes [ResourceAttributes::PROCESS_PID ] = getmypid ();
27- $ attributes [ResourceAttributes::PROCESS_EXECUTABLE_PATH ] = PHP_BINARY ;
28+ $ attributes = [
29+ ResourceAttributes::PROCESS_RUNTIME_NAME => php_sapi_name (),
30+ ResourceAttributes::PROCESS_RUNTIME_VERSION => PHP_VERSION ,
31+ ResourceAttributes::PROCESS_PID => getmypid (),
32+ ResourceAttributes::PROCESS_EXECUTABLE_PATH => PHP_BINARY ,
33+ ];
34+
2835 /**
2936 * @psalm-suppress PossiblyUndefinedArrayOffset
3037 */
Original file line number Diff line number Diff line change 44
55namespace OpenTelemetry \SDK \Resource \Detectors ;
66
7- use OpenTelemetry \SDK \Common \Attribute \Attributes ;
87use OpenTelemetry \SDK \Resource \ResourceDetectorInterface ;
98use OpenTelemetry \SDK \Resource \ResourceInfo ;
10- use OpenTelemetry \SemConv \ResourceAttributes ;
11- use function php_sapi_name ;
12- use const PHP_VERSION ;
139
1410/**
15- * @see https://github.com/open-telemetry/opentelemetry-specification/blob/v1.8.0/specification/resource/semantic_conventions/process.md#process-runtimes
11+ * @deprecated Use Process detector instead.
1612 */
1713final class ProcessRuntime implements ResourceDetectorInterface
1814{
1915 public function getResource (): ResourceInfo
2016 {
21- $ attributes = [
22- ResourceAttributes::PROCESS_RUNTIME_NAME => php_sapi_name (),
23- ResourceAttributes::PROCESS_RUNTIME_VERSION => PHP_VERSION ,
24- ];
25-
26- return ResourceInfo::create (Attributes::create ($ attributes ), ResourceAttributes::SCHEMA_URL );
17+ return ResourceInfo::emptyResource ();
2718 }
2819}
Original file line number Diff line number Diff line change 1212use OpenTelemetry \SemConv \ResourceAttributes ;
1313
1414/**
15- * @see https://github.com/open-telemetry/opentelemetry-specification/blob/v1.8.0/specification/resource/semantic_conventions/README.md#telemetry-sdk
15+ * The SDK MUST provide access to a Resource with at least the attributes listed
16+ * at {@see https://github.com/open-telemetry/semantic-conventions/blob/v1.32.0/docs/resource/README.md#semantic-attributes-with-sdk-provided-default-value}
1617 */
1718final class Sdk implements ResourceDetectorInterface
1819{
Original file line number Diff line number Diff line change 44
55namespace OpenTelemetry \SDK \Resource \Detectors ;
66
7- use OpenTelemetry \SDK \Common \Attribute \Attributes ;
87use OpenTelemetry \SDK \Resource \ResourceDetectorInterface ;
98use OpenTelemetry \SDK \Resource \ResourceInfo ;
10- use OpenTelemetry \SemConv \ResourceAttributes ;
119
1210/**
13- * @see https://github.com/open-telemetry/semantic-conventions/blob/main/docs/resource/README.md#semantic-attributes-with-sdk-provided-default-value
11+ * @deprecated Use Service detector instead.
1412 */
1513final class SdkProvided implements ResourceDetectorInterface
1614{
1715 public function getResource (): ResourceInfo
1816 {
19- $ attributes = [
20- ResourceAttributes::SERVICE_NAME => 'unknown_service:php ' ,
21- ];
22-
23- return ResourceInfo::create (Attributes::create ($ attributes ), ResourceAttributes::SCHEMA_URL );
17+ return ResourceInfo::emptyResource ();
2418 }
2519}
Original file line number Diff line number Diff line change 55namespace OpenTelemetry \SDK \Resource \Detectors ;
66
77use OpenTelemetry \SDK \Common \Attribute \Attributes ;
8+ use OpenTelemetry \SDK \Common \Configuration \Configuration ;
9+ use OpenTelemetry \SDK \Common \Configuration \Variables ;
810use OpenTelemetry \SDK \Resource \ResourceDetectorInterface ;
911use OpenTelemetry \SDK \Resource \ResourceInfo ;
1012use OpenTelemetry \SemConv \ResourceAttributes ;
@@ -19,10 +21,16 @@ public function getResource(): ResourceInfo
1921 {
2022 static $ serviceInstanceId ;
2123 $ serviceInstanceId ??= Uuid::uuid4 ()->toString ();
24+ $ serviceName = Configuration::has (Variables::OTEL_SERVICE_NAME )
25+ ? Configuration::getString (Variables::OTEL_SERVICE_NAME )
26+ : null ;
2227
2328 $ attributes = [
2429 ResourceAttributes::SERVICE_INSTANCE_ID => $ serviceInstanceId ,
2530 ];
31+ if ($ serviceName !== null ) {
32+ $ attributes [ResourceAttributes::SERVICE_NAME ] = $ serviceName ;
33+ }
2634
2735 return ResourceInfo::create (Attributes::create ($ attributes ), ResourceAttributes::SCHEMA_URL );
2836 }
You can’t perform that action at this time.
0 commit comments