Przeglądaj źródła

FD3-235 Se agrega opción para enviar datos al StatsD.

Maximiliano Schvindt 7 lat temu
rodzic
commit
b0640c469c

+ 4 - 2
Command/FiberhomeOnuRxCommand.php

@@ -23,7 +23,8 @@ class FiberhomeOnuRxCommand extends BaseCommand
                 new InputOption('olt-server-id', null, InputOption::VALUE_OPTIONAL, "ServerDevice de la OLT",1),
                 new InputOption('olt-ip', false, InputOption::VALUE_OPTIONAL, "IP de la OLT"),
                 new InputOption('olt-community', false, InputOption::VALUE_OPTIONAL, "COMMUNITY de la OLT"),
-                new InputOption('olt-snmp-library', false, InputOption::VALUE_OPTIONAL, "Versión de librería SNMP")
+                new InputOption('olt-snmp-library', false, InputOption::VALUE_OPTIONAL, "Versión de librería SNMP"),
+                new InputOption('save-historic', null, InputOption::VALUE_OPTIONAL, "Send data to StatsD",1)
             ))
         ;
     }
@@ -46,6 +47,7 @@ class FiberhomeOnuRxCommand extends BaseCommand
         $oltIp = $input->getOption('olt-ip');
         $oltCommunity = $input->getOption('olt-community');
         $oltSnmpLibrary = $input->getOption('olt-snmp-library');
+        $saveHistoric = (int) $input->getOption('save-historic');
         
         $flag = "olt_onus_rx_d_{$oltDeviceId}_s_{$oltServerId}.lock";
         $key_olt_scan = "olt_scan_d_{$oltDeviceId}_s_{$oltServerId}";
@@ -86,7 +88,7 @@ class FiberhomeOnuRxCommand extends BaseCommand
 
         $this->setData($key_onu_rx, $rxCached, true);
 
-        if($sendData) {
+        if($sendData && $saveHistoric) {
             $t_start_script = microtime(true); 
             $statsdService = $this->getContainer()->get('statsd');
             $statsdService->send($sendData);

+ 4 - 2
Command/FiberhomeOnuStatsCommand.php

@@ -23,7 +23,8 @@ class FiberhomeOnuStatsCommand extends BaseCommand
                 new InputOption('olt-server-id', null, InputOption::VALUE_OPTIONAL, "ServerDevice de la OLT",1),
                 new InputOption('olt-ip', false, InputOption::VALUE_OPTIONAL, "IP de la OLT"),
                 new InputOption('olt-community', false, InputOption::VALUE_OPTIONAL, "COMMUNITY de la OLT"),
-                new InputOption('olt-snmp-library', false, InputOption::VALUE_OPTIONAL, "Versión de librería SNMP")
+                new InputOption('olt-snmp-library', false, InputOption::VALUE_OPTIONAL, "Versión de librería SNMP"),
+                new InputOption('save-historic', null, InputOption::VALUE_OPTIONAL, "Send data to StatsD",1)
             ))
         ;
     }
@@ -45,6 +46,7 @@ class FiberhomeOnuStatsCommand extends BaseCommand
         $oltIp = $input->getOption('olt-ip');
         $oltCommunity = $input->getOption('olt-community');
         $oltSnmpLibrary = $input->getOption('olt-snmp-library');
+        $saveHistoric = (int) $input->getOption('save-historic');
         
         $flag = "olt_onu_stats_d_{$oltDeviceId}_s_{$oltServerId}.lock";
         $key_olt_scan = "olt_scan_d_{$oltDeviceId}_s_{$oltServerId}";
@@ -107,7 +109,7 @@ class FiberhomeOnuStatsCommand extends BaseCommand
             $this->setData($key_onu_stats, $data, true);
         }
         
-        if($sendData) {
+        if($sendData && $saveHistoric) {
             $t_start_script = microtime(true); 
             $statsdService = $this->getContainer()->get('statsd');
             $statsdService->send($sendData);

+ 4 - 2
Command/FiberhomeOnuStatusCommand.php

@@ -23,7 +23,8 @@ class FiberhomeOnuStatusCommand extends BaseCommand
                 new InputOption('olt-server-id', null, InputOption::VALUE_OPTIONAL, "ServerDevice de la OLT",1),
                 new InputOption('olt-ip', false, InputOption::VALUE_OPTIONAL, "IP de la OLT"),
                 new InputOption('olt-community', false, InputOption::VALUE_OPTIONAL, "COMMUNITY de la OLT"),
-                new InputOption('olt-snmp-library', false, InputOption::VALUE_OPTIONAL, "Versión de librería SNMP")
+                new InputOption('olt-snmp-library', false, InputOption::VALUE_OPTIONAL, "Versión de librería SNMP"),
+                new InputOption('save-historic', null, InputOption::VALUE_OPTIONAL, "Send data to StatsD",1)
             ))
         ;
     }
@@ -46,6 +47,7 @@ class FiberhomeOnuStatusCommand extends BaseCommand
         $oltIp = $input->getOption('olt-ip');
         $oltCommunity = $input->getOption('olt-community');
         $oltSnmpLibrary = $input->getOption('olt-snmp-library');
+        $saveHistoric = (int) $input->getOption('save-historic');
         
         $flag = "olt_onus_status_d_{$oltDeviceId}_s_{$oltServerId}.lock";
         $key_olt_scan = "olt_scan_d_{$oltDeviceId}_s_{$oltServerId}";
@@ -87,7 +89,7 @@ class FiberhomeOnuStatusCommand extends BaseCommand
 
         $this->setData($key_onu_status, $statusCached, true);
 
-        if($sendData) {
+        if($sendData && $saveHistoric) {
             $t_start_script = microtime(true); 
             $statsdService = $this->getContainer()->get('statsd');
             $statsdService->send($sendData);

+ 4 - 2
Command/FiberhomeOnuTemperatureCommand.php

@@ -23,7 +23,8 @@ class FiberhomeOnuTemperatureCommand extends BaseCommand
                 new InputOption('olt-server-id', null, InputOption::VALUE_OPTIONAL, "ServerDevice de la OLT",1),
                 new InputOption('olt-ip', false, InputOption::VALUE_OPTIONAL, "IP de la OLT"),
                 new InputOption('olt-community', false, InputOption::VALUE_OPTIONAL, "COMMUNITY de la OLT"),
-                new InputOption('olt-snmp-library', false, InputOption::VALUE_OPTIONAL, "Versión de librería SNMP")
+                new InputOption('olt-snmp-library', false, InputOption::VALUE_OPTIONAL, "Versión de librería SNMP"),
+                new InputOption('save-historic', null, InputOption::VALUE_OPTIONAL, "Send data to StatsD",1)
             ))
         ;
     }
@@ -46,6 +47,7 @@ class FiberhomeOnuTemperatureCommand extends BaseCommand
         $oltIp = $input->getOption('olt-ip');
         $oltCommunity = $input->getOption('olt-community');
         $oltSnmpLibrary = $input->getOption('olt-snmp-library');
+        $saveHistoric = (int) $input->getOption('save-historic');
         
         $flag = "olt_onus_temperature_d_{$oltDeviceId}_s_{$oltServerId}.lock";
         $key_olt_scan = "olt_scan_d_{$oltDeviceId}_s_{$oltServerId}";
@@ -86,7 +88,7 @@ class FiberhomeOnuTemperatureCommand extends BaseCommand
 
         $this->setData($key_onu_temperature, $temperatureCached, true);
 
-        if($sendData) {
+        if($sendData && $saveHistoric) {
             $t_start_script = microtime(true); 
             $statsdService = $this->getContainer()->get('statsd');
             $statsdService->send($sendData);

+ 4 - 2
Command/FiberhomeOnuTxCommand.php

@@ -23,7 +23,8 @@ class FiberhomeOnuTxCommand extends BaseCommand
                 new InputOption('olt-server-id', null, InputOption::VALUE_OPTIONAL, "ServerDevice de la OLT",1),
                 new InputOption('olt-ip', false, InputOption::VALUE_OPTIONAL, "IP de la OLT"),
                 new InputOption('olt-community', false, InputOption::VALUE_OPTIONAL, "COMMUNITY de la OLT"),
-                new InputOption('olt-snmp-library', false, InputOption::VALUE_OPTIONAL, "Versión de librería SNMP")
+                new InputOption('olt-snmp-library', false, InputOption::VALUE_OPTIONAL, "Versión de librería SNMP"),
+                new InputOption('save-historic', null, InputOption::VALUE_OPTIONAL, "Send data to StatsD",1)
             ))
         ;
     }
@@ -46,6 +47,7 @@ class FiberhomeOnuTxCommand extends BaseCommand
         $oltIp = $input->getOption('olt-ip');
         $oltCommunity = $input->getOption('olt-community');
         $oltSnmpLibrary = $input->getOption('olt-snmp-library');
+        $saveHistoric = (int) $input->getOption('save-historic');
         
         $flag = "olt_onus_tx_d_{$oltDeviceId}_s_{$oltServerId}.lock";
         $key_olt_scan = "olt_scan_d_{$oltDeviceId}_s_{$oltServerId}";
@@ -86,7 +88,7 @@ class FiberhomeOnuTxCommand extends BaseCommand
 
         $this->setData($key_onu_tx, $txCached, true);
 
-        if($sendData) {
+        if($sendData && $saveHistoric) {
             $t_start_script = microtime(true); 
             $statsdService = $this->getContainer()->get('statsd');
             $statsdService->send($sendData);

+ 4 - 2
Command/FiberhomeOnuVoltageCommand.php

@@ -23,7 +23,8 @@ class FiberhomeOnuVoltageCommand extends BaseCommand
                 new InputOption('olt-server-id', null, InputOption::VALUE_OPTIONAL, "ServerDevice de la OLT",1),
                 new InputOption('olt-ip', false, InputOption::VALUE_OPTIONAL, "IP de la OLT"),
                 new InputOption('olt-community', false, InputOption::VALUE_OPTIONAL, "COMMUNITY de la OLT"),
-                new InputOption('olt-snmp-library', false, InputOption::VALUE_OPTIONAL, "Versión de librería SNMP")
+                new InputOption('olt-snmp-library', false, InputOption::VALUE_OPTIONAL, "Versión de librería SNMP"),
+                new InputOption('save-historic', null, InputOption::VALUE_OPTIONAL, "Send data to StatsD",1)
             ))
         ;
     }
@@ -46,6 +47,7 @@ class FiberhomeOnuVoltageCommand extends BaseCommand
         $oltIp = $input->getOption('olt-ip');
         $oltCommunity = $input->getOption('olt-community');
         $oltSnmpLibrary = $input->getOption('olt-snmp-library');
+        $saveHistoric = (int) $input->getOption('save-historic');
         
         $flag = "olt_onus_voltage_d_{$oltDeviceId}_s_{$oltServerId}.lock";
         $key_olt_scan = "olt_scan_d_{$oltDeviceId}_s_{$oltServerId}";
@@ -86,7 +88,7 @@ class FiberhomeOnuVoltageCommand extends BaseCommand
 
         $this->setData($key_onu_voltage, $voltageCached, true);
 
-        if($sendData) {
+        if($sendData && $saveHistoric) {
             $t_start_script = microtime(true); 
             $statsdService = $this->getContainer()->get('statsd');
             $statsdService->send($sendData);

+ 4 - 2
Command/FiberhomePonOctetsCommand.php

@@ -23,7 +23,8 @@ class FiberhomePonOctetsCommand extends BaseCommand
                 new InputOption('olt-server-id', null, InputOption::VALUE_OPTIONAL, "ServerDevice de la OLT",1),
                 new InputOption('olt-ip', false, InputOption::VALUE_OPTIONAL, "IP de la OLT"),
                 new InputOption('olt-community', false, InputOption::VALUE_OPTIONAL, "COMMUNITY de la OLT"),
-                new InputOption('olt-snmp-library', false, InputOption::VALUE_OPTIONAL, "Versión de librería SNMP")
+                new InputOption('olt-snmp-library', false, InputOption::VALUE_OPTIONAL, "Versión de librería SNMP"),
+                new InputOption('save-historic', null, InputOption::VALUE_OPTIONAL, "Send data to StatsD",1)                
             ))
         ;
     }
@@ -45,6 +46,7 @@ class FiberhomePonOctetsCommand extends BaseCommand
         $oltIp = $input->getOption('olt-ip');
         $oltCommunity = $input->getOption('olt-community');
         $oltSnmpLibrary = $input->getOption('olt-snmp-library');
+        $saveHistoric = (int) $input->getOption('save-historic');
         
         $flag = "olt_pon_octets_d_{$oltDeviceId}_s_{$oltServerId}.lock";
         $key_olt_scan = "olt_scan_pons_d_{$oltDeviceId}_s_{$oltServerId}";
@@ -116,7 +118,7 @@ class FiberhomePonOctetsCommand extends BaseCommand
 
         $this->setData($key_olt_pon_bandwidth, $bandwidthCached, true);
 
-        if($sendData) {
+        if($sendData && $saveHistoric) {
             $t_start_script = microtime(true); 
             $statsdService = $this->getContainer()->get('statsd');
             $statsdService->send($sendData);

+ 28 - 7
Command/FiberhomePonStatsCommand.php

@@ -23,7 +23,8 @@ class FiberhomePonStatsCommand extends BaseCommand
                 new InputOption('olt-server-id', null, InputOption::VALUE_OPTIONAL, "ServerDevice de la OLT",1),
                 new InputOption('olt-ip', false, InputOption::VALUE_OPTIONAL, "IP de la OLT"),
                 new InputOption('olt-community', false, InputOption::VALUE_OPTIONAL, "COMMUNITY de la OLT"),
-                new InputOption('olt-snmp-library', false, InputOption::VALUE_OPTIONAL, "Versión de librería SNMP")
+                new InputOption('olt-snmp-library', false, InputOption::VALUE_OPTIONAL, "Versión de librería SNMP"),
+                new InputOption('save-historic', null, InputOption::VALUE_OPTIONAL, "Send data to StatsD",1)                
             ))
         ;
     }
@@ -45,6 +46,7 @@ class FiberhomePonStatsCommand extends BaseCommand
         $oltIp = $input->getOption('olt-ip');
         $oltCommunity = $input->getOption('olt-community');
         $oltSnmpLibrary = $input->getOption('olt-snmp-library');
+        $saveHistoric = (int) $input->getOption('save-historic');
         
         $flag = "olt_pon_stats_d_{$oltDeviceId}_s_{$oltServerId}.lock";
         $key_olt_scan = "olt_scan_pons_d_{$oltDeviceId}_s_{$oltServerId}";
@@ -72,25 +74,35 @@ class FiberhomePonStatsCommand extends BaseCommand
         $voltage = $SNMP->$library()->oltPonOpticalVltage();
         $biasCurrent = $SNMP->$library()->oltPonOpticalCurrent();
 
-        $sendData = array();
+        $ponStatsCached = $sendData = array();
 
         $subId = "d_{$oltDeviceId}_s_{$oltServerId}";
         $metrics = array("txPower" => "{$subId}_pon_tx_", "temperature" => "{$subId}_pon_temperature_", "voltage" => "{$subId}_pon_voltage_", "biasCurrent" => "{$subId}_pon_biascurrent_");
+
         foreach($dataCached as $index => $pon) {
             $ponPort = "{$pon['slot']}.{$pon['port']}";
             
+            $stats = array();
+            $stats['ponPort'] = "{$pon['slot']}/{$pon['port']}";
+            $stats['rxPower'] = array();
+            
             foreach($metrics as $data => $metric) {
-
+                
                 if(isset($$data[$index]) && !empty($$data[$index])) {
+                    
                     $m = "{$metric}{$ponPort}";
                     $v = $$data[$index] * 0.01;
-
+                    $stats[$data] = $v;
+                    
                     $sendData[$m] = "{$v}|g";
                 }
             }
+            
+            $ponStatsCached[$index] = $stats;
         }
 
         foreach($rxPower as $index => $rx) {
+            
             $ponPortOnuId = explode(".",$index);
             
             if(count($ponPortOnuId) != 2) continue;
@@ -100,18 +112,27 @@ class FiberhomePonStatsCommand extends BaseCommand
                 $onuId = $ponPortOnuId[1];
                 $slot = $dataCached[$indexPon]['slot'];
                 $port = $dataCached[$indexPon]['port'];
-
+                
                 $ponPort = "{$slot}.{$port}";
                 $m = "{$subId}_pon_rx_{$ponPort}.{$onuId}";
-
+                
                 $v = $rx * 0.01;
+                
+                if(isset($ponStatsCached[$indexPon]['rxPower'])) {
+                    $ponStatsCached[$indexPon]['rxPower'][$onuId] = $v;
+                } 
 
                 $sendData[$m] = "{$v}|g";
 
             }
         }
 
-        if($sendData) {
+        if($ponStatsCached) {
+            $key_pon_stats = "olt_stats_pons_d_{$oltDeviceId}_s_{$oltServerId}";
+            $this->setData($key_pon_stats, $ponStatsCached, true);
+        }
+
+        if($sendData && $saveHistoric) {
             $t_start_script = microtime(true); 
             $statsdService = $this->getContainer()->get('statsd');
             $statsdService->send($sendData);