monitor

package
v0.0.0-...-4fff898 Latest Latest
Warning

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

Go to latest
Published: Feb 26, 2026 License: MIT Imports: 26 Imported by: 0

Documentation

Overview

Package monitor implements Docker log collection and parsing workflows.

Index

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

func NewDockerClientManager(ctx context.Context, logger *logger.Manager) (*DockerManager, error)

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

type Handler interface {
	Start(ctx context.Context)
}

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.

Jump to

Keyboard shortcuts

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