await self.builder.log_stats(**data)
-class APIv1StatsHandler(base.APIMixin, base.BaseHandler):
- @base.negotiate
- async def post(self):
- stats = {
- # CPU info
- "cpu_model" : self.get_argument("cpu_model"),
- "cpu_count" : self.get_argument_int("cpu_count"),
- "cpu_arch" : self.get_argument("cpu_arch"),
-
- # Pakfire Version
- "pakfire_version" : self.get_argument("pakfire_version"),
-
- # OS
- "os_name" : self.get_argument("os_name"),
-
- # CPU stats
- "cpu_user" : self.get_argument_float("cpu_user"),
- "cpu_nice" : self.get_argument_float("cpu_nice"),
- "cpu_system" : self.get_argument_float("cpu_system"),
- "cpu_idle" : self.get_argument_float("cpu_idle"),
- "cpu_iowait" : self.get_argument_float("cpu_iowait"),
- "cpu_irq" : self.get_argument_float("cpu_irq"),
- "cpu_softirq" : self.get_argument_float("cpu_softirq"),
- "cpu_steal" : self.get_argument_float("cpu_steal"),
- "cpu_guest" : self.get_argument_float("cpu_guest"),
- "cpu_guest_nice" : self.get_argument_float("cpu_guest_nice"),
-
- # Load Average
- "loadavg1" : self.get_argument_float("loadavg1"),
- "loadavg5" : self.get_argument_float("loadavg5"),
- "loadavg15" : self.get_argument_float("loadavg15"),
-
- # Memory
- "mem_total" : self.get_argument_int("mem_total"),
- "mem_available" : self.get_argument_int("mem_available"),
- "mem_used" : self.get_argument_int("mem_used"),
- "mem_free" : self.get_argument_int("mem_free"),
- "mem_active" : self.get_argument_int("mem_active"),
- "mem_inactive" : self.get_argument_int("mem_inactive"),
- "mem_buffers" : self.get_argument_int("mem_buffers"),
- "mem_cached" : self.get_argument_int("mem_cached"),
- "mem_shared" : self.get_argument_int("mem_shared"),
-
- # Swap
- "swap_total" : self.get_argument_int("swap_total"),
- "swap_used" : self.get_argument_int("swap_used"),
- "swap_free" : self.get_argument_int("swap_free"),
- }
-
- with self.db.transaction():
- await self.builder.log_stats(**stats)
-
- # Send OK
- self.finish({})
-
-
class StatsHandler(base.BaseHandler, tornado.websocket.WebSocketHandler):
# No authentication required
async def open(self, name):