Browse Source

Se actualizan los comandos para almacenar stats de las Onus en Redis.

Maximiliano Schvindt 7 years ago
parent
commit
45ae78218b

+ 7 - 1
Command/FiberhomeOnuRxCommand.php

@@ -49,6 +49,7 @@ class FiberhomeOnuRxCommand extends BaseCommand
         
         $flag = "olt_onus_rx_d_{$oltDeviceId}_s_{$oltServerId}.lock";
         $key_olt_scan = "olt_scan_d_{$oltDeviceId}_s_{$oltServerId}";
+        $key_onu_rx = "onu_rx_d_{$oltDeviceId}_s_{$oltServerId}";
         
         /* Control de bloqueo */
         if($this->lock($flag)) {return;}
@@ -57,6 +58,7 @@ class FiberhomeOnuRxCommand extends BaseCommand
         $library = "use".$oltSnmpLibrary;
 
         $dataCached = $this->getData($key_olt_scan, true);
+        $rxCached = array(); //$this->getData($key_onu_rx, true);
 
         if(empty($dataCached)) {
             $this->output->writeln("Se requiere {$key_olt_scan}.");
@@ -72,14 +74,18 @@ class FiberhomeOnuRxCommand extends BaseCommand
         foreach($rxPower as $index => $rx) {
             if(isset($dataCached[$index])) {
                 $value = 0.01 * $rx;
-                $sn = $dataCached[$index]['serialNumber'];
+                $sn = strtolower($dataCached[$index]['serialNumber']);
                 $k = $metric.strtolower($sn);
                 //print_r("$line - $index - $k - $value".PHP_EOL);
                 $sendData[$k] = "{$value}|g";
                 $line++;
+                
+                $rxCached[$sn] = $value;
             }
         }
 
+        $this->setData($key_onu_rx, $rxCached, true);
+
         if($sendData) {
             $t_start_script = microtime(true); 
             $statsdService = $this->getContainer()->get('statsd');

+ 4 - 3
Command/FiberhomeOnuScanCommand.php

@@ -55,7 +55,8 @@ class FiberhomeOnuScanCommand extends BaseCommand
         $SNMP = new SNMP($oltIp, $oltCommunity);
         $library = "use".$oltSnmpLibrary;
 
-        $dataCached = $this->getData($key_olt_scan, true);
+        //$dataCached = $this->getData($key_olt_scan, true);
+        $dataCached = array();
 
         $slots = $SNMP->$library()->onuSlot();
         $pons = $SNMP->$library()->onuPon();
@@ -66,7 +67,7 @@ class FiberhomeOnuScanCommand extends BaseCommand
         foreach($onus as $index => $onuId) {
             $countOnus++;
             if(isset($slots[$index]) && isset($pons[$index]) && isset($serialNumbers[$index])) {
-                $slot = $slots[$index]; $pon = $pons[$index]; $sn = $serialNumbers[$index];
+                $slot = $slots[$index]; $pon = $pons[$index]; $sn = strtolower($serialNumbers[$index]);
                 $data = array();
                 $data['slot'] = $slot;
                 $data['port'] = $pon;
@@ -77,7 +78,7 @@ class FiberhomeOnuScanCommand extends BaseCommand
             }
         }
 
-        $this->collector->set($key_olt_scan, $dataCached, true);
+        $this->setData($key_olt_scan, $dataCached, true);
 
         /* Fin de bloqueo */
         $this->removeLock($flag);

+ 17 - 1
Command/FiberhomeOnuStatsCommand.php

@@ -56,7 +56,7 @@ class FiberhomeOnuStatsCommand extends BaseCommand
         $library = "use".$oltSnmpLibrary;
 
         $dataCached = $this->getData($key_olt_scan, true);
-
+        
         if(empty($dataCached)) {
             $this->output->writeln("Se requiere {$key_olt_scan}.");
             $this->removeLock($flag);
@@ -72,6 +72,12 @@ class FiberhomeOnuStatsCommand extends BaseCommand
         $sendData = array();
 
         $metrics = array("txPower" => "onu_tx_", "rxPower" => "onu_rx_", "temperature" => "onu_temperature_", "voltage" => "onu_voltage_", "status" => "onu_status_");
+
+        $stats = array();
+        foreach($metrics as $m => $metric) {
+            $stats[$metric] = array();
+        }
+
         foreach($dataCached as $index => $onu) {
             $sn = strtolower($onu['serialNumber']);
             
@@ -87,9 +93,19 @@ class FiberhomeOnuStatsCommand extends BaseCommand
                     }
 
                     $sendData[$m] = "{$v}|g";
+
+                    $stats[$metric][$sn] = $v;
                 }
             }
         }
+
+        print_r($stats);
+
+        foreach($stats as $metric => $data) {
+            $key_onu_stats = "{$metric}d_{$oltDeviceId}_s_{$oltServerId}";
+
+            $this->setData($key_onu_stats, $data, true);
+        }
         
         if($sendData) {
             $t_start_script = microtime(true); 

+ 7 - 1
Command/FiberhomeOnuStatusCommand.php

@@ -49,6 +49,7 @@ class FiberhomeOnuStatusCommand extends BaseCommand
         
         $flag = "olt_onus_status_d_{$oltDeviceId}_s_{$oltServerId}.lock";
         $key_olt_scan = "olt_scan_d_{$oltDeviceId}_s_{$oltServerId}";
+        $key_onu_status = "onu_status_d_{$oltDeviceId}_s_{$oltServerId}";
         
         /* Control de bloqueo */
         if($this->lock($flag)) {return;}
@@ -57,6 +58,7 @@ class FiberhomeOnuStatusCommand extends BaseCommand
         $library = "use".$oltSnmpLibrary;
 
         $dataCached = $this->getData($key_olt_scan, true);
+        $statusCached = array(); //$this->getData($key_onu_status, true);
 
         if(empty($dataCached)) {
             $this->output->writeln("Se requiere {$key_olt_scan}.");
@@ -73,14 +75,18 @@ class FiberhomeOnuStatusCommand extends BaseCommand
             if(isset($dataCached[$index])) {
                 ($s != 1)? $value = 0 : $value = 1;
                 
-                $sn = $dataCached[$index]['serialNumber'];
+                $sn = strtolower($dataCached[$index]['serialNumber']);
                 $k = $metric.strtolower($sn);
                 
                 $sendData[$k] = "{$value}|g";
                 $line++;
+
+                $statusCached[$sn] = $value;
             }
         }
 
+        $this->setData($key_onu_status, $statusCached, true);
+
         if($sendData) {
             $t_start_script = microtime(true); 
             $statsdService = $this->getContainer()->get('statsd');

+ 7 - 1
Command/FiberhomeOnuTemperatureCommand.php

@@ -49,6 +49,7 @@ class FiberhomeOnuTemperatureCommand extends BaseCommand
         
         $flag = "olt_onus_temperature_d_{$oltDeviceId}_s_{$oltServerId}.lock";
         $key_olt_scan = "olt_scan_d_{$oltDeviceId}_s_{$oltServerId}";
+        $key_onu_temperature = "onu_temperature_d_{$oltDeviceId}_s_{$oltServerId}";
         
         /* Control de bloqueo */
         if($this->lock($flag)) {return;}
@@ -57,6 +58,7 @@ class FiberhomeOnuTemperatureCommand extends BaseCommand
         $library = "use".$oltSnmpLibrary;
 
         $dataCached = $this->getData($key_olt_scan, true);
+        $temperatureCached = array(); //$this->getData($key_onu_temperature, true);
 
         if(empty($dataCached)) {
             $this->output->writeln("Se requiere {$key_olt_scan}.");
@@ -72,14 +74,18 @@ class FiberhomeOnuTemperatureCommand extends BaseCommand
         foreach($temperature as $index => $temp) {
             if(isset($dataCached[$index])) {
                 $value = 0.01 * $temp;
-                $sn = $dataCached[$index]['serialNumber'];
+                $sn = strtolower($dataCached[$index]['serialNumber']);
                 $k = $metric.strtolower($sn);
                 //print_r("$line - $index - $k - $value".PHP_EOL);
                 $sendData[$k] = "{$value}|g";
                 $line++;
+
+                $temperatureCached[$sn] = $value;
             }
         }
 
+        $this->setData($key_onu_temperature, $temperatureCached, true);
+
         if($sendData) {
             $t_start_script = microtime(true); 
             $statsdService = $this->getContainer()->get('statsd');

+ 8 - 2
Command/FiberhomeOnuTxCommand.php

@@ -49,6 +49,7 @@ class FiberhomeOnuTxCommand extends BaseCommand
         
         $flag = "olt_onus_tx_d_{$oltDeviceId}_s_{$oltServerId}.lock";
         $key_olt_scan = "olt_scan_d_{$oltDeviceId}_s_{$oltServerId}";
+        $key_onu_tx = "onu_tx_d_{$oltDeviceId}_s_{$oltServerId}";
         
         /* Control de bloqueo */
         if($this->lock($flag)) {return;}
@@ -57,6 +58,7 @@ class FiberhomeOnuTxCommand extends BaseCommand
         $library = "use".$oltSnmpLibrary;
 
         $dataCached = $this->getData($key_olt_scan, true);
+        $txCached = array();
 
         if(empty($dataCached)) {
             $this->output->writeln("Se requiere {$key_olt_scan}.");
@@ -72,14 +74,18 @@ class FiberhomeOnuTxCommand extends BaseCommand
         foreach($txPower as $index => $tx) {
             if(isset($dataCached[$index])) {
                 $value = 0.01 * $tx;
-                $sn = $dataCached[$index]['serialNumber'];
-                $k = $metric.strtolower($sn);
+                $sn = strtolower($dataCached[$index]['serialNumber']);
+                $k = $metric.$sn;
                 //print_r("$line - $index - $k - $value".PHP_EOL);
                 $sendData[$k] = "{$value}|g";
                 $line++;
+
+                $txCached[$sn] = $value;
             }
         }
 
+        $this->setData($key_onu_tx, $txCached, true);
+
         if($sendData) {
             $t_start_script = microtime(true); 
             $statsdService = $this->getContainer()->get('statsd');

+ 7 - 1
Command/FiberhomeOnuVoltageCommand.php

@@ -49,6 +49,7 @@ class FiberhomeOnuVoltageCommand extends BaseCommand
         
         $flag = "olt_onus_voltage_d_{$oltDeviceId}_s_{$oltServerId}.lock";
         $key_olt_scan = "olt_scan_d_{$oltDeviceId}_s_{$oltServerId}";
+        $key_onu_voltage = "onu_voltage_d_{$oltDeviceId}_s_{$oltServerId}";
         
         /* Control de bloqueo */
         if($this->lock($flag)) {return;}
@@ -57,6 +58,7 @@ class FiberhomeOnuVoltageCommand extends BaseCommand
         $library = "use".$oltSnmpLibrary;
 
         $dataCached = $this->getData($key_olt_scan, true);
+        $voltageCached = array();//$this->getData($key_onu_voltage, true);
 
         if(empty($dataCached)) {
             $this->output->writeln("Se requiere {$key_olt_scan}.");
@@ -72,14 +74,18 @@ class FiberhomeOnuVoltageCommand extends BaseCommand
         foreach($voltage as $index => $volt) {
             if(isset($dataCached[$index])) {
                 $value = 0.01 * $volt;
-                $sn = $dataCached[$index]['serialNumber'];
+                $sn = strtolower($dataCached[$index]['serialNumber']);
                 $k = $metric.strtolower($sn);
                 //print_r("$line - $index - $k - $value".PHP_EOL);
                 $sendData[$k] = "{$value}|g";
                 $line++;
+
+                $voltageCached[$sn] = $value;
             }
         }
 
+        $this->setData($key_onu_voltage, $voltageCached, true);
+
         if($sendData) {
             $t_start_script = microtime(true); 
             $statsdService = $this->getContainer()->get('statsd');

+ 1 - 1
Command/FiberhomePonOctetsCommand.php

@@ -114,7 +114,7 @@ class FiberhomePonOctetsCommand extends BaseCommand
         }
 
 
-        $this->collector->set($key_olt_pon_bandwidth, $bandwidthCached, true);
+        $this->setData($key_olt_pon_bandwidth, $bandwidthCached, true);
 
         if($sendData) {
             $t_start_script = microtime(true); 

+ 2 - 1
Command/FiberhomePonScanCommand.php

@@ -56,6 +56,7 @@ class FiberhomePonScanCommand extends BaseCommand
         $library = "use".$oltSnmpLibrary;
 
         $dataCached = $this->getData($key_olt_scan, true);
+        $dataCached = array();
 
         $ports = $SNMP->$library()->oltPonDesc();
 
@@ -76,7 +77,7 @@ class FiberhomePonScanCommand extends BaseCommand
             } 
         }
 
-        $this->collector->set($key_olt_scan, $dataCached, true);
+        $this->setData($key_olt_scan, $dataCached, true);
 
         /* Fin de bloqueo */
         $this->removeLock($flag);