Documentation
¶
Overview ¶
Package monitor implements Docker log collection and parsing workflows.
Index ¶
- type Config
- type DockerManager
- func (m *DockerManager) ContainerList(ctx context.Context, options container.ListOptions) ([]types.Container, error)
- func (m *DockerManager) ContainerLogs(ctx context.Context, containerID string, options container.LogsOptions) (io.ReadCloser, error)
- func (m *DockerManager) Events(ctx context.Context, options events.ListOptions) (<-chan events.Message, <-chan error)
- func (m *DockerManager) GetClient(ctx context.Context) *client.Client
- func (m *DockerManager) GetContainerInfo(ctx context.Context, containerIdentifier, identifierType string) (string, error)
- func (m *DockerManager) GetContainerInspect(ctx context.Context, containerID string) (types.ContainerJSON, error)
- type Handler
- type LogEntry
- type MonitoredContainers
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
MonitoredContainers *MonitoredContainers
TimeLayout []string
UnstructuredLogLineFlags []string
}
Config contains monitor runtime configuration.
type DockerManager ¶
type DockerManager struct {
// contains filtered or unexported fields
}
DockerManager wraps Docker SDK client operations used by collector handlers.
func NewDockerClientManager ¶
NewDockerClientManager creates and validates a Docker client manager.
Parameters:
- ctx: context used for Docker ping validation.
- logger: logger manager retained by DockerManager.
Returns:
- *DockerManager: initialized Docker manager.
- error: returned when client creation or ping fails.
func (*DockerManager) ContainerList ¶
func (m *DockerManager) ContainerList(ctx context.Context, options container.ListOptions) ([]types.Container, error)
ContainerList lists containers using Docker list options.
Parameters:
- ctx: request context.
- options: docker list options.
Returns:
- []types.Container: matched containers.
- error: docker API error.
func (*DockerManager) ContainerLogs ¶
func (m *DockerManager) ContainerLogs(ctx context.Context, containerID string, options container.LogsOptions) (io.ReadCloser, error)
ContainerLogs opens a reader stream for container logs.
Parameters:
- ctx: request context.
- containerID: Docker container ID.
- options: log streaming options.
Returns:
- io.ReadCloser: streaming reader.
- error: docker API error.
func (*DockerManager) Events ¶
func (m *DockerManager) Events(ctx context.Context, options events.ListOptions) (<-chan events.Message, <-chan error)
Events subscribes to Docker daemon events.
Parameters:
- ctx: request context.
- options: event filter options.
Returns:
- <-chan events.Message: event stream channel.
- <-chan error: asynchronous error channel.
func (*DockerManager) GetClient ¶
func (m *DockerManager) GetClient(ctx context.Context) *client.Client
GetClient returns the underlying Docker SDK client.
Parameters:
- ctx: reserved for interface consistency.
Returns:
- *client.Client: docker SDK client instance.
func (*DockerManager) GetContainerInfo ¶
func (m *DockerManager) GetContainerInfo(ctx context.Context, containerIdentifier, identifierType string) (string, error)
GetContainerInfo resolves container name or ID depending on identifier type.
Parameters:
- ctx: request context.
- containerIdentifier: source name or ID value to resolve.
- identifierType: resolve mode, either "name" or "id".
Returns:
- string: resolved identifier target.
- error: resolve error or not-found error.
func (*DockerManager) GetContainerInspect ¶
func (m *DockerManager) GetContainerInspect(ctx context.Context, containerID string) (types.ContainerJSON, error)
GetContainerInspect returns detailed inspect data for a container ID.
Parameters:
- ctx: request context.
- containerID: Docker container ID.
Returns:
- types.ContainerJSON: inspect payload.
- error: docker API error.
type Handler ¶
Handler defines monitor lifecycle operations.
func New ¶
func New(ctx context.Context, db *gorm.DB, logger *logger.Manager, redis *redis.Manager, config *Config, traceID *trace.ID) (Handler, error)
New creates a Docker log collector handler.
Parameters:
- ctx: context used for Docker client setup.
- db: database client for log persistence.
- logger: logger manager used by collector.
- redis: redis manager for timestamp checkpoints.
- config: monitor runtime configuration.
- traceID: trace ID generator for collector logs.
Returns:
- Handler: initialized collector instance.
- error: returned when Docker client initialization fails.
type LogEntry ¶
type LogEntry struct {
Level string `json:"L"`
Time string `json:"T"`
Caller string `json:"C"`
Message string `json:"M"`
TraceID string `json:"TraceID"`
ContainerID string `json:"ContainerID"`
ContainerName string `json:"ContainerName"`
Extra map[string]interface{} `json:"-"` // Additional structured fields.
}
LogEntry represents one normalized log record before persistence.
type MonitoredContainers ¶
type MonitoredContainers struct {
Names []string // Monitored container names.
Ids []string // Resolved monitored container IDs.
BlockIDs []string // Container IDs excluded from monitoring.
// contains filtered or unexported fields
}
MonitoredContainers tracks include/exclude container sets.