oldfmt

package
v0.15.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 24, 2025 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ConsumeCSVSamples

func ConsumeCSVSamples(
	input io.Reader,
	consume func(*SampleEnvelope),
) error

func ConsumeCSVSlurmJobs

func ConsumeCSVSlurmJobs(input io.Reader, consume func(any)) error

func ConsumeJSONSamples

func ConsumeJSONSamples(input io.Reader, consume func(*SampleEnvelope)) error

func ConsumeJSONSlurmJobs

func ConsumeJSONSlurmJobs(input io.Reader, consume func(any)) error

func ConsumeJSONSysinfo

func ConsumeJSONSysinfo(input io.Reader, consume func(*SysinfoEnvelope)) error

func DecodeLoadData

func DecodeLoadData(data []byte) ([]uint64, error)

Types

type GpuSample

type GpuSample struct {
	FanPct      uint64 `json:"fan%"`
	ComputeMode string `json:"mode"` // Platform-dependent string
	PerfState   string `json:"perf"` // Pn for nonnegative n, or "Unknown"
	MemUse      uint64 `json:"musekib"`
	CEUtilPct   uint64 `json:"cutil%"`
	MemUtilPct  uint64 `json:"mutil%"`
	Temp        uint64 `json:"tempc"`
	Power       uint64 `json:"poww"`
	PowerLimit  uint64 `json:"powlimw"`
	CEClock     uint64 `json:"cez"`
	MemClock    uint64 `json:"memz"`
}

func DecodeGpuSamples

func DecodeGpuSamples(data []byte) (result []GpuSample, err error)

type GpuSysinfo

type GpuSysinfo struct {
	BusAddress    string `json:"bus_addr"`
	Index         uint64 `json:"index"`
	UUID          string `json:"uuid"`
	Manufacturer  string `json:"manufacturer"`
	Model         string `json:"model"`
	Architecture  string `json:"arch"`
	Driver        string `json:"driver"`
	Firmware      string `json:"firmware"`
	MemKB         uint64 `json:"mem_size_kib"`
	PowerLimit    uint64 `json:"power_limit_watt"`
	MaxPowerLimit uint64 `json:"max_power_limit_watt"`
	MinPowerLimit uint64 `json:"min_power_limit_watt"`
	MaxCEClock    uint64 `json:"max_ce_clock_mhz"`
	MaxMemClock   uint64 `json:"max_mem_clock_mhz"`
}

type GpusList

type GpusList = []int

func DecodeGpusList

func DecodeGpusList(gpus string) (GpusList, error)

type ProcessSample

type ProcessSample struct {
	User       string  `json:"user"`
	Cmd        string  `json:"cmd"`
	JobId      uint64  `json:"job"`
	Pid        uint64  `json:"pid"`
	ParentPid  uint64  `json:"ppid"`
	CpuPct     float64 `json:"cpu%"`
	CpuKib     uint64  `json:"cpukib"`
	RssAnonKib uint64  `json:"rssanonkib"`
	Gpus       string  `json:"gpus"` // Decode further with DecodeGpusList()
	GpuPct     float64 `json:"gpu%"`
	GpuMemPct  float64 `json:"gpumem%"`
	GpuKib     uint64  `json:"gpukib"`
	CpuTimeSec uint64  `json:"cputime_sec"`
	GpuFail    uint64  `json:"gpufail"`
	Rolledup   uint64  `json:"rolledup"`
}

type SampleEnvelope

type SampleEnvelope struct {
	Version     string          `json:"v"`
	Timestamp   string          `json:"time"`
	Hostname    string          `json:"host"`
	CpuLoad     []uint64        `json:"load"`
	GpuSamples  []GpuSample     `json:"gpuinfo"`
	Samples     []ProcessSample `json:"samples"`
	Cores       uint64          // Only in fairly old CSV data; obsolete
	MemtotalKib uint64          // Ditto
}

type SlurmEnvelope

type SlurmEnvelope struct {
	Version string     `json:"version"`
	Jobs    []SlurmJob `json:"jobs"`
}

type SlurmErrorEnvelope

type SlurmErrorEnvelope struct {
	Version   string `json:"version"`
	Timestamp string `json:"timestamp"`
	Error     string `json:"error"`
}

type SlurmJob

type SlurmJob struct {
	JobID        string `json:"JobID"`
	JobIDRaw     string `json:"JobIDRaw"`
	User         string `json:"User"`
	Account      string `json:"Account"`
	State        string `json:"State"`
	Start        string `json:"Start"`
	End          string `json:"End"`
	AveCPU       string `json:"AveCPU"`
	AveDiskRead  string `json:"AveDiskRead"`
	AveDiskWrite string `json:"AveDiskWrite"`
	AveRSS       string `json:"AveRSS"`
	AveVMSize    string `json:"AveVMSize"`
	ElapsedRaw   string `json:"ElapsedRaw"`
	ExitCode     string `json:"ExitCode"`
	Layout       string `json:"Layout"`
	MaxRSS       string `json:"MaxRSS"`
	MaxVMSize    string `json:"MaxVMSize"`
	MinCPU       string `json:"MinCPU"`
	ReqCPUS      string `json:"ReqCPUS"`
	ReqMem       string `json:"ReqMem"`
	ReqNodes     string `json:"ReqNodes"`
	Reservation  string `json:"Reservation"`
	Submit       string `json:"Submit"`
	Suspended    string `json:"Suspended"`
	SystemCPU    string `json:"SystemCPU"`
	TimelimitRaw string `json:"TimelimitRaw"`
	UserCPU      string `json:"UserCPU"`
	NodeList     string `json:"NodeList"`
	Partition    string `json:"Partition"`
	AllocTRES    string `json:"AllocTRES"`
	Priority     string `json:"Priority"`
	JobName      string `json:"JobName"`
}

type SysinfoEnvelope

type SysinfoEnvelope struct {
	Version     string       `json:"version"`
	Timestamp   string       `json:"timestamp"`
	Hostname    string       `json:"hostname"`
	Description string       `json:"description"`
	CpuCores    uint64       `json:"cpu_cores"`
	MemGB       uint64       `json:"mem_gb"`
	GpuCards    uint64       `json:"gpu_cards"`
	GpuMemGB    uint64       `json:"gpumem_gb"`
	GpuInfo     []GpuSysinfo `json:"gpu_info"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL