Documentation
¶
Overview ¶
Package agent provides mTLS-secured remote monitoring and management functionality.
Package agent provides a remote monitoring agent with mTLS security for the FIRE benchmarking tool.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CPUInfo ¶
type CPUInfo struct {
PhysicalCores int `json:"physical_cores"`
LogicalCores int `json:"logical_cores"`
ModelName string `json:"model_name"`
Usage []float64 `json:"usage_percent"`
Frequency []float64 `json:"frequency_mhz"`
}
CPUInfo contains CPU information
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client represents an agent client
func NewClient ¶
func NewClient(config *ClientConfig) (*Client, error)
NewClient creates a new agent client
func (*Client) CheckHealth ¶
CheckHealth checks if the agent is healthy
type ClientConfig ¶
type ClientConfig struct {
Host string // Target host
Port int // Target port
CertFile string // Client certificate file
KeyFile string // Client private key file
CAFile string // CA certificate file for server verification
Endpoint string // Endpoint to connect to
}
ClientConfig contains configuration for the agent client
func DefaultClientConfig ¶
func DefaultClientConfig() ClientConfig
DefaultClientConfig returns default client configuration
func (*ClientConfig) LoadClientTLSConfig ¶
func (c *ClientConfig) LoadClientTLSConfig() (*tls.Config, error)
LoadClientTLSConfig creates TLS configuration for the client
func (*ClientConfig) Validate ¶
func (c *ClientConfig) Validate() error
Validate checks if the client configuration is valid
type Config ¶
type Config struct {
Port int // Server port
CertFile string // Server certificate file
KeyFile string // Server private key file
CAFile string // CA certificate file for client verification
LogFile string // Optional log file path
}
Config contains configuration for the agent server
func (Config) LoadTLSConfig ¶
LoadTLSConfig creates TLS configuration from the agent config
type DiskInfo ¶
type DiskInfo struct {
Path string `json:"path"`
Fstype string `json:"fstype"`
Total uint64 `json:"total"`
Free uint64 `json:"free"`
Used uint64 `json:"used"`
UsedPercent float64 `json:"used_percent"`
}
DiskInfo contains disk information
type GPUInfo ¶
type GPUInfo struct {
Index int `json:"index"`
Name string `json:"name"`
Temperature float64 `json:"temperature_c"`
MemoryUsed uint64 `json:"memory_used"`
MemoryTotal uint64 `json:"memory_total"`
Utilization int `json:"utilization_percent"`
FanSpeed int `json:"fan_speed_percent"`
}
GPUInfo contains GPU sensor data
type HostInfo ¶
type HostInfo struct {
Hostname string `json:"hostname"`
Uptime uint64 `json:"uptime"`
BootTime uint64 `json:"boot_time"`
OS string `json:"os"`
Platform string `json:"platform"`
PlatformVersion string `json:"platform_version"`
KernelVersion string `json:"kernel_version"`
Architecture string `json:"architecture"`
}
HostInfo contains host information
type LogsResponse ¶
type LogsResponse struct {
Lines []string `json:"lines"`
File string `json:"file"`
Timestamp time.Time `json:"timestamp"`
}
LogsResponse contains log data
type MemoryInfo ¶
type MemoryInfo struct {
Total uint64 `json:"total"`
Available uint64 `json:"available"`
Used uint64 `json:"used"`
UsedPercent float64 `json:"used_percent"`
Free uint64 `json:"free"`
}
MemoryInfo contains memory information
type NetworkInfo ¶
type NetworkInfo struct {
Name string `json:"name"`
BytesSent uint64 `json:"bytes_sent"`
BytesRecv uint64 `json:"bytes_recv"`
PacketsSent uint64 `json:"packets_sent"`
PacketsRecv uint64 `json:"packets_recv"`
}
NetworkInfo contains network interface information
type SensorsInfo ¶
type SensorsInfo struct {
Timestamp time.Time `json:"timestamp"`
Temperature []TemperatureInfo `json:"temperature"`
Fans []FanInfo `json:"fans"`
GPU []GPUInfo `json:"gpu,omitempty"`
}
SensorsInfo contains sensor data
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
Server represents the agent server
type SysInfo ¶
type SysInfo struct {
Timestamp time.Time `json:"timestamp"`
Host HostInfo `json:"host"`
CPU CPUInfo `json:"cpu"`
Memory MemoryInfo `json:"memory"`
Disk []DiskInfo `json:"disk"`
Network []NetworkInfo `json:"network"`
}
SysInfo contains system information
type TemperatureInfo ¶
type TemperatureInfo struct {
Name string `json:"name"`
Temperature float64 `json:"temperature_c"`
Critical float64 `json:"critical_c,omitempty"`
}
TemperatureInfo contains temperature sensor data