annotate host/admin/src/private/tools/admin.html.luan @ 2047:ea026254b3b6 default tip

show scheduler threads
author Franklin Schmidt <fschmidt@gmail.com>
date Sun, 09 Nov 2025 11:32:18 -0700
parents 301a6561fb6b
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"
2047
ea026254b3b6 show scheduler threads
Franklin Schmidt <fschmidt@gmail.com>
parents: 1995
diff changeset
12 local threadPool = Server.threadPool
ea026254b3b6 show scheduler threads
Franklin Schmidt <fschmidt@gmail.com>
parents: 1995
diff changeset
13 local ThreadLuan = require "java:luan.modules.ThreadLuan"
ea026254b3b6 show scheduler threads
Franklin Schmidt <fschmidt@gmail.com>
parents: 1995
diff changeset
14 local scheduler = ThreadLuan.scheduler
1995
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
15
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
16
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
17 return function()
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
18 local action = Http.request.parameters.action
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
19 if action == "gc" then
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
20 System.gc()
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
21 Http.response.send_redirect "admin.html"
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
22 return
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
23 end
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
24
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
25 Io.stdout = Http.response.text_writer()
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
26
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
27 local oneMega = 1024 * 1024;
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
28 local free = Runtime.getRuntime().freeMemory() / oneMega;
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
29 local total = Runtime.getRuntime().totalMemory() / oneMega;
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
30 local used = total - free;
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 loadAverage = uri("os:uptime").read_text()
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
33 --local loadAverage = new String(result).replaceAll(".*average:","");
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
34
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
35 local threads = threadPool.getPoolSize()
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
36 local active_threads = threadPool.getActiveCount()
2047
ea026254b3b6 show scheduler threads
Franklin Schmidt <fschmidt@gmail.com>
parents: 1995
diff changeset
37
ea026254b3b6 show scheduler threads
Franklin Schmidt <fschmidt@gmail.com>
parents: 1995
diff changeset
38 local scheduler_threads = scheduler.getPoolSize()
ea026254b3b6 show scheduler threads
Franklin Schmidt <fschmidt@gmail.com>
parents: 1995
diff changeset
39 local scheduler_active_threads = scheduler.getActiveCount()
1995
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
40 %>
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
41 <!doctype html>
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
42 <html lang="en">
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
43 <body>
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
44
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
45 <table>
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 <td>Free Memory</td>
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
48 <td>
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
49 <%=String.format("%.2f",free)%> Mb
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
50 </td>
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 <tr>
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
53 <td>Used Memory</td>
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
54 <td><%=String.format("%.2f",used)%> Mb</td>
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 <tr>
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
57 <td>Total Memory</td>
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
58 <td><%=String.format("%.2f",total)%> Mb</td>
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 <tr>
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
61 <td>Load Average</td>
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
62 <td><%=loadAverage%></td>
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
63 </tr>
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
64 <tr>
2047
ea026254b3b6 show scheduler threads
Franklin Schmidt <fschmidt@gmail.com>
parents: 1995
diff changeset
65 <td>Server Threads</td>
1995
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
66 <td><%= active_threads %> active, <%= threads - active_threads %> idle</td>
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
67 </tr>
2047
ea026254b3b6 show scheduler threads
Franklin Schmidt <fschmidt@gmail.com>
parents: 1995
diff changeset
68 <tr>
ea026254b3b6 show scheduler threads
Franklin Schmidt <fschmidt@gmail.com>
parents: 1995
diff changeset
69 <td>Scheduler Threads</td>
ea026254b3b6 show scheduler threads
Franklin Schmidt <fschmidt@gmail.com>
parents: 1995
diff changeset
70 <td><%= scheduler_active_threads %> active, <%= scheduler_threads - scheduler_active_threads %> idle</td>
ea026254b3b6 show scheduler threads
Franklin Schmidt <fschmidt@gmail.com>
parents: 1995
diff changeset
71 </tr>
1995
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
72 <table>
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
73
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
74 <p><a href="admin.html?action=gc">Run GC</a></p>
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
75
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
76 </body>
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
77 </html>
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
78 <%
301a6561fb6b add host/admin
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
79 end