keyword

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Sep 14, 2024 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const (
	KeySeparator = "||" // 生成的key连接符
)

Variables

View Source
var DimensionMissingErr = errors.New("failed to get dimension")

Functions

func New

func New(globalConfig define.Config, taskConfig define.TaskConfig) define.Task

Types

type Gather

type Gather struct {
	tasks.BaseTask
	// contains filtered or unexported fields
}

Gather :

func (*Gather) Run

func (g *Gather) Run(ctx context.Context, e chan<- define.Event)

type InputConfig

type InputConfig struct {
	DataID        int
	Paths         []string // 采集路径
	ScanFrequency time.Duration
	CloseInactive time.Duration
	ExcludeFiles  []*regexp.Regexp
}

type KeywordTaskResult

type KeywordTaskResult struct {
	FilePath     string            // 文件路径
	RuleName     string            // 规则名
	SortedFields []string          // 正则中待提取的字段名
	Dimensions   map[string]string // 维度信息
	Log          string            // 日志内容
}

KeywordTaskResult 日志关键字匹配后的任务结果结构体,用与processor和sender之间的数据交互

func (*KeywordTaskResult) MakeKey

func (k *KeywordTaskResult) MakeKey() (string, error)

MakeKey 根据一个结果,构建出可以统计的key, 出于降低大字符串在程序中流转的考虑,此处返回的是sha1结果 key的构建:文件路径 + 规则名 + 维度(维度名=维度值|维度名=维度值)

type ProcessConfig

type ProcessConfig struct {
	// 公共配置
	DataID    int           // data_id
	Encoding  string        // 文件编码
	ScanSleep time.Duration // 文件扫描休眠时间

	// 过滤规则配置
	HasFilter      bool     // 是否过滤
	FilterPatterns []string // 过滤规则

	// 日志关键字配置
	KeywordConfigs []configs.KeywordConfig // 日志关键字配置信息
}

type SendConfig

type SendConfig struct {
	// 公共配置
	DataID int // data_id

	// 日志采集配置
	CanPackage   bool
	PackageCount int
	ExtMeta      interface{}
	GroupInfo    interface{}

	// 日志关键字配置
	Target       string          // 监控目标
	ReportPeriod time.Duration   // 上报周期
	OutputFormat string          // 上报方式
	TimeUnit     string          // 上报时间单位
	Label        []configs.Label // 配置下发模块信息
}

type TaskConfig

type TaskConfig struct {
	TaskID   string
	TaskType string

	RawText configs.KeywordTaskConfig

	Input     InputConfig
	Processer ProcessConfig
	Sender    SendConfig
	IPLinker  chan interface{}
	PSLinker  chan interface{}

	Ctx       context.Context
	CtxCancel context.CancelFunc
}

func (*TaskConfig) Same

func (tc *TaskConfig) Same(obj *TaskConfig) bool

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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