Code

Do not remove transmitted stat files
[gosa.git] / gosa-core / include / class_stats.inc
index 0a4c474a0b0ddc2299ba7bc4b3e83bc303fdac6e..1523d6d64bc05842710d56e18a0adb60c7b0fb5a 100644 (file)
@@ -100,7 +100,9 @@ class stats
             $path = $config->get_cfg_value('core', 'statsDatabaseDirectory');
             $dir = opendir($path);
             while($file = readdir($dir)){
-                if(is_file($path.'/'.$file)) $res[] = $file;
+                if(is_file($path.'/'.$file) && !preg_match('/.old$/', $file)) {
+                    $res[] = $file;
+                }
             }
         } 
         return($res);   
@@ -287,9 +289,21 @@ class stats
         $handle = stats::getDatabaseHandle($filename);
         if(!$handle) return;        
 
+        $query = 
+            "  SELECT ".
+            "      TYPE, PLUGIN, CATEGORY, ACTION, ".
+            "      UUID, DATE(TIMESTAMP, 'unixepoch') as date, ".
+            "      AVG(DURATION), AVG(RENDER_TIME), SUM(AMOUNT), ".
+            "      AVG(MEMORY_USAGE), AVG(CPU_LOAD), INFO ".
+            "  FROM ".
+            "      stats ".
+            "  GROUP BY ".
+            "      TYPE, PLUGIN, CATEGORY, ACTION, UUID, date, INFO ".
+            "  ORDER BY ".
+            "      ID ";
+
         // Create Filter and start query
-        $filter = "SELECT * FROM {$TABLE_NAME} ORDER BY ID";
-        $ret = sqlite_array_query($filter, $handle, SQLITE_ASSOC);
+        $ret = sqlite_array_query($query, $handle, SQLITE_ASSOC);
         return($ret);
     }
 
@@ -314,7 +328,8 @@ class stats
             sqlite_close(stats::$lastHandle[$filename]);
         }
         if(file_exists($path.'/'.$filename)){
-            unlink($path.'/'.$filename);
+            #unlink($path.'/'.$filename);
+            rename($path.'/'.$filename,  $path.'/'.$filename.".old");
         }
     }
 }