59 lines
1.6 KiB
Python
59 lines
1.6 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""
|
|
log_monitor_model.py
|
|
"""
|
|
from __future__ import print_function, unicode_literals, absolute_import, division
|
|
|
|
from datetime import datetime
|
|
|
|
from peewee import CharField, IntegerField, DateTimeField, AutoField
|
|
|
|
from domain_admin.enums.monitor_status_enum import MonitorStatusEnum
|
|
from domain_admin.enums.monitor_type_enum import MonitorTypeEnum
|
|
from domain_admin.model.base_model import BaseModel
|
|
from domain_admin.utils import datetime_util
|
|
from domain_admin.utils.peewee_ext.field import MyDateTimeField
|
|
|
|
|
|
class LogMonitorModel(BaseModel):
|
|
"""监控日志"""
|
|
id = AutoField(primary_key=True)
|
|
|
|
# id
|
|
monitor_id = IntegerField(default=0)
|
|
|
|
# 监控类型
|
|
monitor_type = IntegerField(default=MonitorTypeEnum.UNKNOWN)
|
|
|
|
# 状态
|
|
status = IntegerField(default=MonitorStatusEnum.UNKNOWN)
|
|
|
|
# 结果
|
|
result = CharField(default='')
|
|
|
|
# 创建时间
|
|
create_time = MyDateTimeField(default=datetime.now)
|
|
|
|
# 更新时间
|
|
update_time = MyDateTimeField(default=None, null=True)
|
|
|
|
class Meta:
|
|
table_name = 'tb_log_monitor'
|
|
|
|
@property
|
|
def create_time_label(self):
|
|
return datetime_util.format_datetime_label(self.create_time)
|
|
|
|
@property
|
|
def update_time_label(self):
|
|
return datetime_util.time_for_human(self.update_time)
|
|
|
|
@property
|
|
def total_microsecond_time(self):
|
|
end_time = self.update_time or datetime.now()
|
|
return datetime_util.get_diff_time_with_microsecond(self.create_time, end_time)
|
|
|
|
@property
|
|
def total_time_label(self):
|
|
return datetime_util.microsecond_for_human(self.total_microsecond_time)
|