Blame view
api/app/Http/Controllers/V1/Components/MltdController.php
4.14 KB
0d8c0f816 initial commit |
1 2 3 4 5 6 7 8 9 10 |
<?php namespace App\Http\Controllers\V1\Components; use App\Http\Controllers\Controller; use Carbon\Carbon; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Http; use Illuminate\Support\Facades\Log; |
a6a20feca Check if relation... |
11 |
use Illuminate\Support\Facades\Schema; |
0d8c0f816 initial commit |
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
class MltdController extends Controller { public function start(Request $request) { $data = [ 'model_id' => 1, 'mqtt_host' => config('mqtt.host'), 'mqtt_port' => config('mqtt.port'), 'mqtt_topic' => 'xlsiem/event', 'prediction_threshold' => 0.3, 'report_timedb_host' => env('DB_HOST'), 'report_timedb_port' => env('DB_PORT'), 'report_timedb_username' => env('DB_USERNAME'), 'report_timedb_password' => env('DB_PASSWORD'), 'report_timedb_database' => env('DB_DATABASE'), 'report_timedb_table' => 'mltd', 'report_timedb_ssl' => 'False', 'report_asset_id' => 'server', ]; $url = 'http://' . env('MLTD_HOST') . ':' . env('MLTD_PORT') . '/api/v1.0/mltd/prediction'; $response = Http::withHeaders([ 'Application' => 'application/json' ])->post($url, $data); if (!isset($response->json()['process_id'])) { return response()->json(['error' => 'error'], 504); } $ret = [ 'component' => 'mltd', 'process_id' => $response->json()['process_id'], 'created_at' => Carbon::now() ]; DB::table('running_processes')->insert($ret); return $ret; } public function status(Request $request) { return DB::table('running_processes') ->where('component', '=', 'mltd') ->get()->toArray(); } public function stop(Request $request, $pid) { $url = 'http://' . env('MLTD_HOST') . ':' . env('MLTD_PORT') . '/api/v1.0/mltd/prediction/stop/' . $pid; $response = Http::get($url); DB::table('running_processes') ->where('component', '=', 'mltd') ->where('process_id', '=', $pid)->delete(); return $response; } public function train(Request $request, $train_id, $top) { $url = 'http://' . env('MLTD_HOST') . ':' . env('MLTD_PORT') . '/api/v1.0/mltd/threat-identification/' . $train_id . '/' . $top; $response = Http::get($url); return [ 'important_events' => explode(",", substr($response->json()['important_events'], 1, -1)), 'timeframe' => $response->json()['timeframe'] ]; } |
25df08e6c Merged changes fr... |
82 |
|
7dff14cf4 Change OD, MLTD e... |
83 |
public function count(Request $request) |
25df08e6c Merged changes fr... |
84 |
{ |
7adbee538 Check if OD, MLTD... |
85 86 87 88 89 |
if (!Schema::hasTable('mltd')) { return response()->json([ 'error' => 'Relation for MLTD component does not exist' ], 503); } |
7dff14cf4 Change OD, MLTD e... |
90 91 92 93 |
if ($request->has('start')) { $start = Carbon::parse($request->get('start')); } else { $start = Carbon::now()->subHour(); |
a6a20feca Check if relation... |
94 |
} |
7dff14cf4 Change OD, MLTD e... |
95 96 97 98 99 100 101 102 103 104 105 106 107 |
if ($request->has('end')) $end = Carbon::parse($request->get('end')); else { $end = Carbon::now(); } return [ 'count' => DB::table('mltd') ->whereBetween('created_on', [$start, $end]) ->count() ]; |
25df08e6c Merged changes fr... |
108 |
} |
e90472e8b Added events/grou... |
109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 |
public function group(Request $request) { $request->validate([ 'unit' => 'required|string|in:second,minute,hour,day', 'k' => 'required|integer', 'limit' => 'nullable|integer' ]); if (!Schema::hasTable('mltd')) { return response()->json([ 'error' => 'Relation for MLTD component does not exist' ], 503); } $q = $request->get('k') . ' ' . $request->get('unit'); $query = DB::table('mltd') ->select(DB::raw('count(*)'), DB::raw("time_bucket('" . $q . "', created_on) AS interval")) ->groupby('interval') ->orderBy('interval', 'desc'); if ($request->has('limit')) { $query = $query->limit($request->get('limit')); } return $query->get(); } |
0d8c0f816 initial commit |
135 |
} |