mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-05-01 21:10:13 +00:00
Add disk metrics, block I/O, and mount details to Docker monitoring
Extends Docker container monitoring with comprehensive disk and storage information: - Writable layer size and root filesystem usage displayed in new Disk column - Block I/O statistics (read/write bytes totals) shown in container drawer - Mount metadata including type, source, destination, mode, and driver details - Configurable via --collect-disk flag (enabled by default, can be disabled for large fleets) Also fixes config watcher to consistently use production auth config path instead of following PULSE_DATA_DIR when in mock mode.
This commit is contained in:
parent
35ab52b75b
commit
32392d1212
14 changed files with 581 additions and 159 deletions
|
|
@ -49,25 +49,29 @@ type HostInfo struct {
|
|||
|
||||
// Container captures the runtime state for a Docker container at report time.
|
||||
type Container struct {
|
||||
ID string `json:"id"`
|
||||
Name string `json:"name"`
|
||||
Image string `json:"image"`
|
||||
CreatedAt time.Time `json:"createdAt"`
|
||||
State string `json:"state"`
|
||||
Status string `json:"status"`
|
||||
Health string `json:"health,omitempty"`
|
||||
CPUPercent float64 `json:"cpuPercent"`
|
||||
MemoryUsageBytes int64 `json:"memoryUsageBytes"`
|
||||
MemoryLimitBytes int64 `json:"memoryLimitBytes"`
|
||||
MemoryPercent float64 `json:"memoryPercent"`
|
||||
UptimeSeconds int64 `json:"uptimeSeconds"`
|
||||
RestartCount int `json:"restartCount"`
|
||||
ExitCode int `json:"exitCode"`
|
||||
StartedAt *time.Time `json:"startedAt,omitempty"`
|
||||
FinishedAt *time.Time `json:"finishedAt,omitempty"`
|
||||
Ports []ContainerPort `json:"ports,omitempty"`
|
||||
Labels map[string]string `json:"labels,omitempty"`
|
||||
Networks []ContainerNetwork `json:"networks,omitempty"`
|
||||
ID string `json:"id"`
|
||||
Name string `json:"name"`
|
||||
Image string `json:"image"`
|
||||
CreatedAt time.Time `json:"createdAt"`
|
||||
State string `json:"state"`
|
||||
Status string `json:"status"`
|
||||
Health string `json:"health,omitempty"`
|
||||
CPUPercent float64 `json:"cpuPercent"`
|
||||
MemoryUsageBytes int64 `json:"memoryUsageBytes"`
|
||||
MemoryLimitBytes int64 `json:"memoryLimitBytes"`
|
||||
MemoryPercent float64 `json:"memoryPercent"`
|
||||
UptimeSeconds int64 `json:"uptimeSeconds"`
|
||||
RestartCount int `json:"restartCount"`
|
||||
ExitCode int `json:"exitCode"`
|
||||
StartedAt *time.Time `json:"startedAt,omitempty"`
|
||||
FinishedAt *time.Time `json:"finishedAt,omitempty"`
|
||||
Ports []ContainerPort `json:"ports,omitempty"`
|
||||
Labels map[string]string `json:"labels,omitempty"`
|
||||
Networks []ContainerNetwork `json:"networks,omitempty"`
|
||||
WritableLayerBytes int64 `json:"writableLayerBytes,omitempty"`
|
||||
RootFilesystemBytes int64 `json:"rootFilesystemBytes,omitempty"`
|
||||
BlockIO *ContainerBlockIO `json:"blockIo,omitempty"`
|
||||
Mounts []ContainerMount `json:"mounts,omitempty"`
|
||||
}
|
||||
|
||||
// ContainerPort tracks an exposed container port mapping.
|
||||
|
|
@ -85,6 +89,24 @@ type ContainerNetwork struct {
|
|||
IPv6 string `json:"ipv6,omitempty"`
|
||||
}
|
||||
|
||||
// ContainerBlockIO summarises high-level block I/O metrics for a container.
|
||||
type ContainerBlockIO struct {
|
||||
ReadBytes uint64 `json:"readBytes,omitempty"`
|
||||
WriteBytes uint64 `json:"writeBytes,omitempty"`
|
||||
}
|
||||
|
||||
// ContainerMount describes a mount point exposed inside a container.
|
||||
type ContainerMount struct {
|
||||
Type string `json:"type,omitempty"`
|
||||
Source string `json:"source,omitempty"`
|
||||
Destination string `json:"destination,omitempty"`
|
||||
Mode string `json:"mode,omitempty"`
|
||||
RW bool `json:"rw"`
|
||||
Propagation string `json:"propagation,omitempty"`
|
||||
Name string `json:"name,omitempty"`
|
||||
Driver string `json:"driver,omitempty"`
|
||||
}
|
||||
|
||||
// AgentKey returns the stable identifier for a reporting agent.
|
||||
func (r Report) AgentKey() string {
|
||||
if r.Agent.ID != "" {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue