getResource(); } $resourceDetectors = []; foreach ($detectors as $detector) { switch ($detector) { case Values::VALUE_DETECTORS_ENVIRONMENT: $resourceDetectors[] = new Detectors\Environment(); break; case Values::VALUE_DETECTORS_HOST: $resourceDetectors[] = new Detectors\Host(); break; case Values::VALUE_DETECTORS_OS: $resourceDetectors[] = new Detectors\OperatingSystem(); break; case Values::VALUE_DETECTORS_PROCESS: $resourceDetectors[] = new Detectors\Process(); break; case Values::VALUE_DETECTORS_PROCESS_RUNTIME: $resourceDetectors[] = new Detectors\ProcessRuntime(); break; case Values::VALUE_DETECTORS_SDK: $resourceDetectors[] = new Detectors\Sdk(); break; case Values::VALUE_DETECTORS_SDK_PROVIDED: $resourceDetectors[] = new Detectors\SdkProvided(); break; case Values::VALUE_DETECTORS_COMPOSER: $resourceDetectors[] = new Detectors\Composer(); break; case Values::VALUE_NONE: break; default: try { $resourceDetectors[] = Registry::resourceDetector($detector); } catch (RuntimeException $e) { self::logWarning($e->getMessage()); } } } return (new Detectors\Composite($resourceDetectors))->getResource(); } public static function emptyResource(): ResourceInfo { return ResourceInfo::create(Attributes::create([])); } }