Logging.php

- apc cache and insert to db
- seeder
- users table add columns
This commit is contained in:
2019-11-21 11:17:01 +01:00
parent ffb9742efb
commit 8caa7c227b
3 changed files with 131 additions and 14 deletions

View File

@@ -10,12 +10,58 @@ class Logging extends Controller
private $_items = [ 'netstat_sent' => 'i', 'netstat_recv' => 'i', 'memory_free' => 'f', 'memory_total' => 'f', 'memory_used' => 'f', 'disk_free' => 'B', 'disk_percent' => 'f', 'disk_used' => 'B', 'disk_total' => 'B', 'processes' => 'i', 'temp' => 'i', 'username' =>'s', 'computer' => 's'];
private $_values = [];
private $_values = [];
private $_ucache = [];
private $_ccache = [];
public function __construct() {
$this->set_cache();
}
private function set_cache() {
$this->_ucache = \apcu_fetch('users',$ret);
if ($ret == false) {
$q = DB::table('users')->select('id', 'name')->get();
foreach ($q as $v) {
$this->_ucache[$v->name] = $v->id;
}
\apcu_add('users',$this->_ucache);
}
$this->_ccache = \apcu_fetch('computers',$ret);
if ($ret == false ) {
$q = DB::table('computers')->select('id', 'computer')->get();
foreach ($q as $v) {
$this->_ucache[$v->computer] = $v->id;
}
\apcu_add('computers',$this->_ccache);
}
}
private function get_computer_id($comp){
if ($this->_ccache[$comp]) {
return $this->_ccache[$comp];
}
$id = DB::table('computers')->insertGetId(['computer' => $comp]);
$this->_ccache[$comp] = $id;
\apcu_add('computers',$this->_ccache);
return $id;
}
private function get_user_id($user) {
if ($this->_ucache[$user]) {
return $this->_ucache[$user];
}
$id = DB::table('users')->insertGetId(['name' => $user]);
$this->_ucache[$user] = $id;
\apcu_add('users',$this->_ucache);
return $id;
}
function conv_bytes($v) {
$units = explode(' ', ' K M G T P E Z Y');
@@ -61,18 +107,32 @@ class Logging extends Controller
$this->_values[$k] = $val;
}
}
}
public function log(Request $request) {
$data = json_decode($request->getContent(), true);
$v = $data["values"];
$i = $data["items"];
$this->parse($v);
public function log(Request $request) {
$data = json_decode($request->getContent(), true);
$v = $data["values"];
$i = $data["items"];
var_export($this->_values);
$this->parse($v);
$ia = array_filter($this->_values, function($v) {
return $v != 's';
});
return "OK";
//DB::insert('insert into values (user,computer,recv,send) values (?, ?, ?, ?)', [$u, $c, $r, $s]);
}
$cid = $this->get_computer_id($this->_values["computer"]);
$uid = $this->get_user_id($this->_values["username"]);
$ia["computer_id"] = $cid;
DB::table('values')->insert($ia);
$uipa = [];
$uipa["computer_id"] = $cid;
$uipa["user_id"] = $uid;
$uipa["ip"] = $_SERVER['REMOTE_ADDR'];
DB::table('user_ip')->insert($uipa);
return "OK";
}
}