Blame view
api/app/Http/Controllers/V1/Components/OdController.php
5.03 KB
0d8c0f816 initial commit |
1 2 3 4 5 6 7 8 9 |
<?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; |
7adbee538 Check if OD, MLTD... |
10 |
use Illuminate\Support\Facades\Schema; |
0d8c0f816 initial commit |
11 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 82 83 84 85 |
class OdController extends Controller { public function start(Request $request) { $data = [ 'timeDb_database'=> env('DB_DATABASE'), 'timeDb_host'=> env('DB_HOST'), 'timeDb_password'=> env('DB_PASSWORD'), 'timeDb_port'=> env('DB_PORT'), 'timeDb_ssl'=> 'true', 'timeDb_table'=> 'od', 'timeDb_username'=> env('DB_USERNAME'), 'k'=> '20', 'measurement'=> 'packets-loss', "mqtt_host" => config('mqtt.host'), "mqtt_password"=> "", "mqtt_port"=> config('mqtt.port'), "mqtt_topic"=> "auth/od", "mqtt_usermane"=> "", "outlier_life"=> "0", "r"=> "0.1", "slide"=> "10", "w"=> "60" ]; $url = 'http://' . env('OD_HOST') . ':' . env('OD_PORT') . '/api/v1/od'; $response = Http::withHeaders([ 'Application' => 'application/json' ])->post($url, $data); if (!isset($response->json()['pid'])) { return response()->json(['error' => 'error'], 504); } $ret = [ 'component' => 'od', 'process_id' => $response->json()['pid'], 'created_at' => Carbon::now() ]; DB::table('running_processes')->insert($ret); return $ret; } public function status(Request $request) { return DB::table('running_processes') ->where('component', '=', 'od') ->get()->toArray(); } public function stop(Request $request, $pid) { $url = 'http://' . env('OD_HOST') . ':' . env('OD_PORT') . '/api/v1/od/stop/' . $pid; $response = Http::get($url); DB::table('running_processes') ->where('component', '=', 'od') ->where('process_id', '=', $pid)->delete(); return $response; } public function analyze(Request $request, $pid) { $url = 'http://' . env('OD_HOST') . ':' . env('OD_PORT') . '/api/v1/od/analyse/' . $pid; $response = Http::withHeaders([ 'Application' => 'application/json' ])->attach('file', $request->file('file')->get(), 'file') ->post($url); return $response; } |
25df08e6c Merged changes fr... |
86 |
|
7dff14cf4 Change OD, MLTD e... |
87 |
public function count(Request $request) |
25df08e6c Merged changes fr... |
88 |
{ |
7adbee538 Check if OD, MLTD... |
89 90 91 92 93 |
if (!Schema::hasTable('od')) { return response()->json([ 'error' => 'Relation for OD component does not exist' ], 503); } |
7dff14cf4 Change OD, MLTD e... |
94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 |
if ($request->has('start')) { $start = Carbon::parse($request->get('start')); } else { $start = Carbon::now()->subHour(); } if ($request->has('end')) $end = Carbon::parse($request->get('end')); else { $end = Carbon::now(); } return [ 'count' => DB::table('od') ->whereBetween('incident_date', [$start, $end]) ->count() ]; |
25df08e6c Merged changes fr... |
112 |
} |
e90472e8b Added events/grou... |
113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 |
public function group(Request $request) { $request->validate([ 'unit' => 'required|string|in:second,minute,hour,day', 'k' => 'required|integer', 'limit' => 'nullable|integer' ]); if (!Schema::hasTable('od')) { return response()->json([ 'error' => 'Relation for OD component does not exist' ], 503); } $q = $request->get('k') . ' ' . $request->get('unit'); $query = DB::table('od') ->select(DB::raw('count(*)'), DB::raw("time_bucket('" . $q . "', incident_date) AS interval")) ->groupby('interval') ->orderBy('interval', 'desc'); if ($request->has('limit')) { $query = $query->limit($request->get('limit')); } return $query->get(); } |
7d8c6fcc3 Added new endpoin... |
139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 |
public function last(Request $request) { $request->validate([ 'k' => 'required|integer', ]); if (!Schema::hasTable('od')) { return response()->json([ 'error' => 'Relation for OD component does not exist' ], 503); } Carbon::now()->format('Y-m-d'); $start = Carbon::now()->subDays($request->get('k'))->format('Y-m-d'); $end = Carbon::now()->format('Y-m-d'); return DB::select(" select series.day, coalesce(count, 0) as count from ( SELECT incident_date::date as day, count(*) FROM od WHERE incident_date::date >= '" . $start . "'::date GROUP BY day ) AS cnt right outer join ( SELECT ts::date as day FROM generate_series ( '" . $start . "'::date, '" . $end . "'::date, '1 day') AS ts ) as series on series.day = cnt.day order by series.day; "); } |
0d8c0f816 initial commit |
172 |
} |