57 lines
2.5 KiB
Python
57 lines
2.5 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
|
|
from typing import Self
|
|
from Models.IterationModel import InterfaceModel, IterationModel
|
|
from Abstracts.DispatcherAbstract import DispatcherAbstract
|
|
from Abstracts.DatabaseAbstract import DatabaseAbstract
|
|
|
|
class AgentsDispatcher(DispatcherAbstract):
|
|
|
|
def save(self:Self, iteration:IterationModel) -> None:
|
|
|
|
database:DatabaseAbstract = self.nucelar_monitor.databases.get("sql_server")
|
|
interface:InterfaceModel
|
|
|
|
database.query((
|
|
"execute dbo.set_machine_data " +
|
|
"{key}, {candle_start}, {candle_end}, {candle_interations}, " +
|
|
"{ram_total}, {ram_in}, {ram_out}, {ram_minimum}, {ram_maximum}, " +
|
|
"{ram_average}, {cpu_in}, {cpu_out}, {cpu_minimum}, {cpu_maximum}, " +
|
|
"{cpu_average}"
|
|
), {
|
|
"key" : iteration.key,
|
|
"candle_start" : iteration.candle_time.start,
|
|
"candle_end" : iteration.candle_time.end,
|
|
"candle_interations" : iteration.iterations,
|
|
"ram_total" : iteration.memory.total,
|
|
"ram_in" : iteration.memory._in,
|
|
"ram_out" : iteration.memory.out,
|
|
"ram_minimum" : iteration.memory.minimum,
|
|
"ram_maximum" : iteration.memory.maximum,
|
|
"ram_average" : iteration.memory.average,
|
|
"cpu_in" : iteration.cpu._in,
|
|
"cpu_out" : iteration.cpu.out,
|
|
"cpu_minimum" : iteration.cpu.minimum,
|
|
"cpu_maximum" : iteration.cpu.maximum,
|
|
"cpu_average" : iteration.cpu.average
|
|
})
|
|
|
|
for interface in iteration.interfaces:
|
|
database.query((
|
|
"execute dbo.set_machine_interface_data " +
|
|
"{key}, {candle_start}, {candle_end}, {candle_interations}, " +
|
|
"{name}, {bytes}, {packages}, {errors}, {is_ipv6}, {ip}, {mask}"
|
|
), {
|
|
"key" : iteration.key,
|
|
"candle_start" : iteration.candle_time.start,
|
|
"candle_end" : iteration.candle_time.end,
|
|
"candle_interations" : iteration.iterations,
|
|
"name" : interface.name,
|
|
"bytes" : interface.received.bytes + interface.transmitted.bytes,
|
|
"packages" : interface.received.packets + interface.transmitted.packets,
|
|
"errors" : interface.received.errors + interface.transmitted.errors,
|
|
"is_ipv6" : interface.is_ipv6,
|
|
"ip" : interface.ip,
|
|
"mask" : interface.mask
|
|
}) |