system_load.py 985 B

123456789101112131415161718192021222324252627
  1. from datetime import datetime, timezone
  2. from typing import Optional
  3. import sqlalchemy as sa
  4. from sqlmodel import Field, SQLModel
  5. from gpustack.mixins.active_record import ActiveRecordMixin
  6. class SystemLoad(SQLModel, ActiveRecordMixin, table=True):
  7. __tablename__ = 'system_loads'
  8. __table_args__ = (sa.Index("idx_system_loads_cluster_id", "cluster_id"),)
  9. id: Optional[int] = Field(default=None, primary_key=True)
  10. timestamp: int = Field(
  11. default_factory=lambda: int(datetime.now(timezone.utc).timestamp())
  12. )
  13. cluster_id: Optional[int] = Field(default=None, index=True)
  14. # average cpu utilization rate per worker
  15. cpu: Optional[float] = Field(default=None)
  16. # average ram utilization rate per worker
  17. ram: Optional[float] = Field(default=None)
  18. # average gpu utilization rate per gpu device
  19. gpu: Optional[float] = Field(default=None)
  20. # average vram utilization rate per gpu device
  21. vram: Optional[float] = Field(default=None)