Exemplo n.º 1
0
 /**
  * @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();
 }