From 160eee3df637216b011ee5e758c8e2bf0bbe1355 Mon Sep 17 00:00:00 2001 From: Dominik Pfennig <dominik@suma-ev.de> Date: Mon, 11 Jul 2016 13:56:09 +0200 Subject: [PATCH] =?UTF-8?q?Admin=20Interface=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/AdminInterface.php | 31 ++++++++++++ app/Http/routes.php | 2 + app/Providers/AppServiceProvider.php | 8 ++-- database/metager.sqlite | Bin 0 -> 13312 bytes resources/views/admin.blade.php | 60 ++++++++++++++++++++++++ 5 files changed, 98 insertions(+), 3 deletions(-) create mode 100644 app/Http/Controllers/AdminInterface.php create mode 100644 resources/views/admin.blade.php diff --git a/app/Http/Controllers/AdminInterface.php b/app/Http/Controllers/AdminInterface.php new file mode 100644 index 000000000..b0d2117a6 --- /dev/null +++ b/app/Http/Controllers/AdminInterface.php @@ -0,0 +1,31 @@ +<?php + +namespace App\Http\Controllers; + +use Illuminate\Http\Request; + +use App\Http\Requests; +use Redis; + +class AdminInterface extends Controller +{ + public function index () + { + # Zunächst einmal die Redis-Verbindung: + $redis = Redis::connection('redisLogs'); + + # Dann lesen wir alle Server aus: + $member = $redis->smembers('logs.worker'); + + # Jetzt besorgen wir uns die Daten für jeden Server: + $data = []; + foreach( $member as $mem ) + { + $tmp = $redis->hgetall('logs.worker.' . $mem); + $data[$mem] = $tmp; + } + return view('admin') + ->with('data', $data) + ->with('title', "Admin-Interface-MetaGer"); + } +} diff --git a/app/Http/routes.php b/app/Http/routes.php index 1d421d716..7440f70e5 100644 --- a/app/Http/routes.php +++ b/app/Http/routes.php @@ -112,6 +112,8 @@ ->with('navbarFocus', 'dienste'); }); + Route::get('admin', ['middleware' => 'auth.basic', 'uses' => 'AdminInterface@index']); + Route::get('settings', 'StartpageController@loadSettings'); diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index ca47ee395..775130e3a 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -25,14 +25,16 @@ class AppServiceProvider extends ServiceProvider $this->begin = strtotime(date(DATE_RFC822, mktime(date("H"),date("i"), date("s"), date("m"), date("d"), date("Y")))); }); Queue::after(function (JobProcessed $event) { - $this->end = strtotime(date(DATE_RFC822, mktime(date("H"),date("i"), date("s"), date("m"), date("d"), date("Y")))); + $today = strtotime(date(DATE_RFC822, mktime(0,0,0, date("m"), date("d"), date("Y")))); + $end = strtotime(date(DATE_RFC822, mktime(date("H"),date("i"), date("s"), date("m"), date("d"), date("Y")))) - $today; $expireAt = strtotime(date(DATE_RFC822, mktime(0,0,0, date("m"), date("d")+1, date("Y")))); $redis = Redis::connection('redisLogs'); $p = getmypid(); $host = gethostname(); - $redis->pipeline(function($pipe) use ($p, $expireAt, $host) + $begin = $this->begin - $today; + $redis->pipeline(function($pipe) use ($p, $expireAt, $host, $begin, $end) { - for( $i = $this->begin; $i <= $this->end; $i++) + for( $i = $begin; $i <= $end; $i++) { $pipe->sadd("logs.worker.$host.$i", strval($p)); $pipe->expire("logs.worker.$host.$i", 10); diff --git a/database/metager.sqlite b/database/metager.sqlite index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..c137bd09eb073efcb5f2b6db4f36729f0a8172f9 100644 GIT binary patch literal 13312 zcmeI2PjA~c6u?E(j^eECEf9L?SS8pZr1m5`b-JFKralBqg8Xr|br*rL7)OmIITG#0 zz;;mE+rGwb`vUtGyA0TO*lm{{w#!J$e-$}c3Un9}3jRa!y+=L$Uc~nt@^F9Kr39S> zp@%7|DtQF}<rzYXqTFNeyX-wYimZ_zp0IB)(Vo@3r<DHurNEWp-(2UD<ZG6??3V;2 zf&Y#`vA`ejJls*>@9-!1J!{BA5|9Kwj6f+5aj{}rHQTJ&)|zcqD>c)yn<2rJ*eBR+ z6UTlP97i_A$8GW%goi2h$Cb6A`dH7(L6_^X0ZrSguupyr^*T6;UI(FLha@6&F!bjD z9!;7Ei;+n;BH=)hKmP!pE9@l?Nk9_#*aYG`ps1``aY3n8Uj&}(yJu+cg!sPOa+1?$ zQP;yI(knY;xzb;@%;kN**LFAS<@GAr`>t-Sx!&%RSKaOP(Cl2acKTl(gpYCMWy9%w z`PwAsW%BiD?RlBcLnU*)WLe0nJhiN+W-X&DdH&xk@cqZWaXG#uAPM|G2+RYh6-5=W zz#Ibb4~4ztAqhwVH<rL6w2GH244(g|{;PLm?_b`SBp?Z-3Gn<cpZ_!!c`gau4g&J| zza4RwcPR;E5#aTI0hAT^WA0t90)A!9pOqB_W$DVk_(4I{R#!nBi3Ob0(o5=eZu6kN z(Ws-w#`Enu(o<3$t?0yKOF}y8;jnp%L*xe(`Q3K=5z=XJM*K`kvY6!9nCi%3%SzPs z$jH*bc~!GC5UZ~5kc(uUM_k43`tEs`h@Qg0v7_Cs{i8bC+I>;~7U`Fjbrkr6{;{{l z9-QL{UJ3%yd7Et?u_MC9_M0Sinx7(&60Z2zBafJ+@g|>BHBAF=TVhP%i1>h0_KAnw z6W7s^>r>JqV`!)ox*iVu=#2Cc?$W^Z87hzXl;Px;%A`3v0>f}+n(=|XV-niwI3>}` zj!`1(c6ij%@nbS00;=}#A&4zO!E;+7rf%Rz<5q5($5_CjjLtGWKE||pdYPIbfB(x_ zO%k}h1VsK<HWc_n?l15gc*2_3J7T(^YD-Jt?H6L&n%Lwp(Y!l7aZN}*XgY5OzE7Hb za?}we7c6UzGbc}SY_3mtcW}QQV3s%1f`Knn>C_=7xZ9>^^XTB9zT2=HTRZi`#>URx z=t4$(zo=^8EQ0t@WLmLVLtI*H!w7q9hUfb+L<3WMq;zLMVvuzIm0gmDxhkiX+#pM8 z!}0ZrHZKc|H%s%Xwzvr186qUykiQqEgD@QL+R1c4IHPKr2^mvLybfjlr_=U??^g;% zy)!aSQYr4S@`-PxnHG-!7AEuX$aWw$VntQ8O;*c&DuOf2_oHnzyaG$&mJ-cRhcG2g zN`k~N30z8n$1o`ym<w}PxsViYS>CBvyD(um(}kq+G34+6>rHo3TN1cQ1Z4exlcFi_ KMH09kfqwv&O3A<g literal 0 HcmV?d00001 diff --git a/resources/views/admin.blade.php b/resources/views/admin.blade.php new file mode 100644 index 000000000..61cbcf091 --- /dev/null +++ b/resources/views/admin.blade.php @@ -0,0 +1,60 @@ +@extends('layouts.subPages') + +@section('title', $title ) + +@section('content') + +@foreach( $data as $serverName => $dataPoints ) +<div> +<h1>{{ $serverName }}</h1> +<svg width="100%" height="500px"> + <!-- Zunächst die Achsen: --> + <!-- Y-Achse --> + <line x1="1%" y1="0" x2="1%" y2="95%" style="stroke:rgb(0,0,0);stroke-width:3" /> + <line x1="1%" y1="0" x2="0" y2="3%" style="stroke:rgb(0,0,0);stroke-width:3" /> + <line x1="1%" y1="0" x2="2%" y2="3%" style="stroke:rgb(0,0,0);stroke-width:3" /> + + <!-- Beschriftungen der Y-Achse --> + @for( $y = ((95-0) / 10); $y < ((95-0) / 10) * 10; $y = $y + ((95-0) / 10) ) + <line x1="0.5%" y1="{{ $y }}%" x2="1.5%" y2="{{ $y }}%" style="stroke:rgb(0,0,0);stroke-width:1" /> + <text x="1.8%" y="{{ $y }}%" fill="black" style="font-size:10px;">{{ 100 - (($y / 95)*100) }}</text> + @endfor + <text x="3%" y="2%" fill="red">Anzahl Worker: x</text> + + <!-- X-Achse --> + <line x1="1%" y1="95%" x2="99%" y2="95%" style="stroke:rgb(0,0,0);stroke-width:3" /> + <line x1="99%" y1="95%" x2="98%" y2="92%" style="stroke:rgb(0,0,0);stroke-width:3" /> + <line x1="99%" y1="95%" x2="98%" y2="98%" style="stroke:rgb(0,0,0);stroke-width:3" /> + + <!-- Beschriftungen der X-Achse --> + @for( $x = (((99-1) / 24) + 1); $x < 98.9; $x = ($x + ((99-1) / 24)) ) + <line x1="{{ $x }}%" y1="93%" x2="{{ $x }}%" y2="97%" style="stroke:rgb(0,0,0);stroke-width:1" /> + <text x="{{ $x }}%" y="99%" fill="black" style="font-size:10px;">{{ (($x-1) / 98)*24 }}</text> + @endfor + <text x="95%" y="90%" fill="red">Zeit (h): y</text> + + <!-- Nun die Datenpunkte: --> + <?php + $count = 0; + + foreach($dataPoints as $key => $value) + { + if($count > 0) + { + $x1 = ($oldKey / 86400) * 98; + $x2 = ($key / 86400) * 98; + + $y1 = 95 - (($oldVal / 100) * 95); + $y2 = 95 - (($value / 100) * 95); + echo '<line x1="'.$x1.'%" y1="'.$y1.'%" x2="'.$x2.'%" y2="'.$y2.'%" style="stroke:rgb(0,0,0);stroke-width:1" />'; + } + $oldKey = $key; + $oldVal = $value; + $count++; + } + ?> +</svg> +</div> +@endforeach + +@endsection \ No newline at end of file -- GitLab