annotate host/admin/src/private/tools/admin.html.luan @ 1995:301a6561fb6b

add host/admin
author Franklin Schmidt <fschmidt@gmail.com>
date Fri, 04 Jul 2025 10:25:38 -0600
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1995
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
1 require "site:/init.luan"
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
2 local Luan = require "luan:Luan.luan"
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
3 local error = Luan.error
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
4 local Io = require "luan:Io.luan"
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
5 local uri = Io.uri or error()
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
6 local String = require "luan:String.luan"
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
7 local Http = require "luan:http/Http.luan"
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
8 require "java"
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
9 local Runtime = require "java:java.lang.Runtime"
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
10 local System = require "java:java.lang.System"
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
11 local Server = require "java:goodjava.webserver.Server"
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
12
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
13
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
14 return function()
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
15 local action = Http.request.parameters.action
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
16 if action == "gc" then
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
17 System.gc()
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
18 Http.response.send_redirect "admin.html"
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
19 return
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
20 end
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
21
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
22 Io.stdout = Http.response.text_writer()
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
23
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
24 local oneMega = 1024 * 1024;
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
25 local free = Runtime.getRuntime().freeMemory() / oneMega;
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
26 local total = Runtime.getRuntime().totalMemory() / oneMega;
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
27 local used = total - free;
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
28
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
29 local loadAverage = uri("os:uptime").read_text()
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
30 --local loadAverage = new String(result).replaceAll(".*average:","");
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
31
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
32 local threadPool = Server.threadPool
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
33 local threads = threadPool.getPoolSize()
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
34 local active_threads = threadPool.getActiveCount()
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
35 %>
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
36 <!doctype html>
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
37 <html lang="en">
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
38 <body>
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
39
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
40 <table>
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
41 <tr>
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
42 <td>Free Memory</td>
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
43 <td>
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
44 <%=String.format("%.2f",free)%> Mb
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
45 </td>
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
46 </tr>
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
47 <tr>
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
48 <td>Used Memory</td>
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
49 <td><%=String.format("%.2f",used)%> Mb</td>
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
50 </tr>
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
51 <tr>
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
52 <td>Total Memory</td>
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
53 <td><%=String.format("%.2f",total)%> Mb</td>
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
54 </tr>
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
55 <tr>
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
56 <td>Load Average</td>
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
57 <td><%=loadAverage%></td>
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
58 </tr>
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
59 <tr>
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
60 <td>Threads</td>
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
61 <td><%= active_threads %> active, <%= threads - active_threads %> idle</td>
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
62 </tr>
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
63 <table>
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
64
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
65 <p><a href="admin.html?action=gc">Run GC</a></p>
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
66
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
67 </body>
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
68 </html>
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
69 <%
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
70 end