/** * @return array */ protected function gatherInstanceStatistics() { $_stats = []; $_lastGuestLocation = null; /** @type Instance $_instance */ foreach (Instance::all() as $_instance) { $_stats[$_instance->instance_id_text] = ['uri' => $_instance->getProvisionedEndpoint()]; $_api = InstanceApiClient::connect($_instance); try { if (!empty($_resources = $_api->resources())) { $_list = []; foreach ($_resources as $_resource) { if (property_exists($_resource, 'name')) { try { if (false !== ($_result = $_api->resource($_resource->name))) { $_list[$_resource->name] = count($_result); } } catch (\Exception $_ex) { $_list[$_resource->name] = 'unavailable'; } } } $_stats[$_instance->instance_id_text]['resources'] = $_list; $_stats[$_instance->instance_id_text]['_status'] = ['operational']; } } catch (\Exception $_ex) { // Instance unavailable or not initialized $_stats[$_instance->instance_id_text]['resources'] = []; $_stats[$_instance->instance_id_text]['_status'] = ['unreachable']; } } return $_stats; // The new way //return $this->telemetry->make('instance')->getTelemetry(); }