feat(metrics): add instance_metric and instance_nic_metric models
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
39
backend/app/models/metrics.py
Normal file
39
backend/app/models/metrics.py
Normal file
@@ -0,0 +1,39 @@
|
||||
from sqlalchemy import Float
|
||||
from .base import Base, Column, Integer, BigInteger, String, DateTime, Index, func
|
||||
|
||||
|
||||
class InstanceMetric(Base):
|
||||
__tablename__ = "instance_metric"
|
||||
|
||||
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||
server_id = Column(Integer, nullable=False)
|
||||
vmid = Column(Integer, nullable=False)
|
||||
vm_type = Column(String(10), nullable=True)
|
||||
ts = Column(DateTime(timezone=True), nullable=False, server_default=func.now())
|
||||
cpu = Column(Float, nullable=True)
|
||||
mem = Column(BigInteger, nullable=True)
|
||||
maxmem = Column(BigInteger, nullable=True)
|
||||
disk_used = Column(BigInteger, nullable=True)
|
||||
disk_total = Column(BigInteger, nullable=True)
|
||||
netin_rate = Column(Float, nullable=True)
|
||||
netout_rate = Column(Float, nullable=True)
|
||||
diskread_rate = Column(Float, nullable=True)
|
||||
diskwrite_rate = Column(Float, nullable=True)
|
||||
iops_read = Column(Float, nullable=True)
|
||||
iops_write = Column(Float, nullable=True)
|
||||
|
||||
__table_args__ = (Index("ix_instance_metric_lookup", "server_id", "vmid", "ts"),)
|
||||
|
||||
|
||||
class InstanceNicMetric(Base):
|
||||
__tablename__ = "instance_nic_metric"
|
||||
|
||||
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||
server_id = Column(Integer, nullable=False)
|
||||
vmid = Column(Integer, nullable=False)
|
||||
ts = Column(DateTime(timezone=True), nullable=False, server_default=func.now())
|
||||
dev = Column(String(64), nullable=False)
|
||||
in_rate = Column(Float, nullable=True)
|
||||
out_rate = Column(Float, nullable=True)
|
||||
|
||||
__table_args__ = (Index("ix_instance_nic_metric_lookup", "server_id", "vmid", "ts"),)
|
||||
Reference in New Issue
Block a user