-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlog.py
More file actions
73 lines (67 loc) · 1.84 KB
/
log.py
File metadata and controls
73 lines (67 loc) · 1.84 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# -*- coding: utf-8 -*-
import time
import datetime
from app.models.models import Cpu, Mem, Swap
from app.tools.SysInfoMonitor import SysInfoMonitor
from app.tools.orm import ORM
# date time
def dt():
now = datetime.datetime.now()
_date_time = now.strftime("%Y-%m-%d %H:%M:%S")
_date = now.strftime("%Y-%m-%d")
_time = now.strftime("%H:%M:%S")
return _date, _time, _date_time
# save log
def save_log():
m = SysInfoMonitor()
cpu_info, mem_info, swap_info = m.cpuinfo(), m.meminfo(), m.swapinfo()
_date, _time, _date_time = dt()
# 1.create session
session = ORM.db()
try:
# CPU
cpu = Cpu(
percent=cpu_info["percent_avg"],
create_date=_date,
create_time=_time,
create_dt=_date_time
)
# memory
mem = Mem(
percent=mem_info['percent'],
total=mem_info['total'],
used=mem_info['used'],
free=mem_info['free'],
create_date=_date,
create_time=_time,
create_dt=_date_time
)
# swap
swap = Swap(
percent=swap_info['percent'],
total=swap_info['total'],
used=swap_info['used'],
free=swap_info['free'],
create_date=_date,
create_time=_time,
create_dt=_date_time
)
# commit to db
session.add(cpu)
session.add(mem)
session.add(swap)
except Exception as e:
#rollback
session.rollback()
else:
session.commit()
finally:
session.close()
if __name__ == "__main__":
while True:
_date, _time, _date_time = dt()
print("start time:{}".format(_date_time))
save_log()
print("end time:{}".format(_date_time))
#collect log every 5s
time.sleep(5)