helper

package
v1.0.34 Latest Latest
Warning

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

Go to latest
Published: May 25, 2022 License: Apache-2.0 Imports: 37 Imported by: 0

Documentation

Index

Constants

View Source
const DockerTimeFormat = "2006-01-02T15:04:05.999999999Z"

Variables

View Source
var ContainerInfoDeletedTimeout = time.Second * time.Duration(30)
View Source
var ContainerInfoTimeoutMax = time.Second * time.Duration(450)
View Source
var DefaultLogFileReaderConfig = LogFileReaderConfig{
	ReadIntervalMs:   1000,
	MaxReadBlockSize: 512 * 1024,
	CloseFileSec:     60,
	Tracker:          nil,
}
View Source
var DefaultLogtailMountPath string
View Source
var DefaultSyncContainersPeriod = time.Second * 3 // should be same as docker_config_update_interval gflag in C
View Source
var DockerCenterTimeout = time.Second * time.Duration(30)
View Source
var EnvTags []string

EnvTags to be add to every logroup

View Source
var EventListenerTimeout = time.Second * time.Duration(3600)
View Source
var FetchAllInterval = time.Second * time.Duration(300)

Functions

func AddMetadata

func AddMetadata(collector ilogtail.Collector, time time.Time, node *MetaNode)

AddMetadata to the collector.

func AddMetric

func AddMetric(collector ilogtail.Collector,
	name string,
	time time.Time,
	labels string,
	value float64)

AddMetric to the collector.

func ContainerProcessAlive added in v1.0.33

func ContainerProcessAlive(pid int) bool

func GetAddressAndDialer

func GetAddressAndDialer(endpoint string) (string, func(addr string, timeout time.Duration) (net.Conn, error), error)

GetAddressAndDialer returns the address parsed from the given endpoint and a dialer.

func GetIPByHosts

func GetIPByHosts(hostFileName, hostname string) string

func GetMountedFilePath

func GetMountedFilePath(logPath string) string

func GetMountedFilePathWithBasePath

func GetMountedFilePathWithBasePath(basePath, logPath string) string

func HasEnvTags

func HasEnvTags(tagKey string, tagValue string) bool

HasEnvTags check if specific tags exist in envTags

func IsCRIRuntimeValid

func IsCRIRuntimeValid(criRuntimeEndpoint string) bool

func IsCRIStatusValid added in v1.0.32

func IsCRIStatusValid(criRuntimeEndpoint string) bool

func IsContainerEnvMatch

func IsContainerEnvMatch(includeEnv map[string]string,
	excludeEnv map[string]string,
	includeEnvRegex map[string]*regexp.Regexp,
	excludeEnvRegex map[string]*regexp.Regexp,
	info *DockerInfoDetail) bool

func IsContainerLabelMatch

func IsContainerLabelMatch(includeLabel map[string]string,
	excludeLabel map[string]string,
	includeLabelRegex map[string]*regexp.Regexp,
	excludeLabelRegex map[string]*regexp.Regexp,
	info *DockerInfoDetail) bool

func IsSafeString added in v1.0.31

func IsSafeString(str1, str2 string) bool

func LoadEnvTags

func LoadEnvTags()

LoadEnvTags load tags from env

func MakeMetric

func MakeMetric(name string, labels string, timeNano int64, value float64) ([]string, []string)

MakeMetric ...

func NewAverageMetric

func NewAverageMetric(n string) ilogtail.CounterMetric

func NewAverageMetricAndRegister

func NewAverageMetricAndRegister(n string, c ilogtail.Context) ilogtail.CounterMetric

func NewCounterMetric

func NewCounterMetric(n string) ilogtail.CounterMetric

func NewCounterMetricAndRegister

func NewCounterMetricAndRegister(n string, c ilogtail.Context) ilogtail.CounterMetric

func NewGoKitLogWrapper

func NewGoKitLogWrapper(context ilogtail.Context, alarmType string) log.Logger

NewGoKitLogWrapper returns a logger that log with context.

func NewLatencyMetric

func NewLatencyMetric(n string) ilogtail.LatencyMetric

func NewLatencyMetricAndRegister

func NewLatencyMetricAndRegister(n string, c ilogtail.Context) ilogtail.LatencyMetric

func NewStringMetric

func NewStringMetric(n string) ilogtail.StringMetric

func NewStringMetricAndRegister

func NewStringMetricAndRegister(n string, c ilogtail.Context) ilogtail.StringMetric

func NormalizeWindowsPath added in v1.0.30

func NormalizeWindowsPath(path string) string

NormalizeWindowsPath returns the normal path in heterogeneous platform. parses the root path with windows system driver.

func ReadOpen

func ReadOpen(path string) (*os.File, error)

ReadOpen opens a file for reading only

func SetEnvConfigPrefix

func SetEnvConfigPrefix(prefix string)

func SplitRegexFromMap

func SplitRegexFromMap(input map[string]string) (staticResult map[string]string, regexResult map[string]*regexp.Regexp, err error)

SplitRegexFromMap extract regex from user config regex must begin with ^ and end with $(we only check ^)

func StartService

func StartService(name string, context ilogtail.Context, f func())

StartService ..

func ZeroCopySlice added in v1.0.31

func ZeroCopySlice(s string) (b []byte)

func ZeroCopyString added in v1.0.31

func ZeroCopyString(b []byte) (s string)

Types

type Attributes

type Attributes map[string]interface{}

Attributes used to store attributes in common conditions.

func (Attributes) MarshalEasyJSON

func (v Attributes) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (Attributes) MarshalJSON

func (v Attributes) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*Attributes) UnmarshalEasyJSON

func (v *Attributes) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*Attributes) UnmarshalJSON

func (v *Attributes) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type AvgMetric

type AvgMetric struct {
	// contains filtered or unexported fields
}

func (*AvgMetric) Add

func (s *AvgMetric) Add(v int64)

func (*AvgMetric) Clear

func (s *AvgMetric) Clear(v int64)

func (*AvgMetric) Get

func (s *AvgMetric) Get() int64

func (*AvgMetric) GetAvg

func (s *AvgMetric) GetAvg() float64

func (*AvgMetric) Name

func (s *AvgMetric) Name() string

func (*AvgMetric) Serialize

func (s *AvgMetric) Serialize(log *protocol.Log)

type CRIRuntimeWrapper

type CRIRuntimeWrapper struct {
	// contains filtered or unexported fields
}

func NewCRIRuntimeWrapper

func NewCRIRuntimeWrapper(dockerCenter *DockerCenter) (*CRIRuntimeWrapper, error)

NewCRIRuntimeWrapper ...

type DockerCenter

type DockerCenter struct {
	// contains filtered or unexported fields
}

func GetDockerCenterInstance

func GetDockerCenterInstance() *DockerCenter

func (*DockerCenter) CreateDockerClient

func (dc *DockerCenter) CreateDockerClient() (client *docker.Client, err error)

func (*DockerCenter) CreateInfoDetail

func (dc *DockerCenter) CreateInfoDetail(info *docker.Container, envConfigPrefix string, selfConfigFlag bool) *DockerInfoDetail

CreateInfoDetail create DockerInfoDetail with docker.Container Container property used in this function : HostsPath, Config.Hostname, Name, Config.Image, Config.Env, Mounts

ContainerInfo.GraphDriver.Data["UpperDir"] Config.Labels

func (*DockerCenter) GetAllAcceptedInfo

func (dc *DockerCenter) GetAllAcceptedInfo(
	includeLabel map[string]string,
	excludeLabel map[string]string,
	includeLabelRegex map[string]*regexp.Regexp,
	excludeLabelRegex map[string]*regexp.Regexp,
	includeEnv map[string]string,
	excludeEnv map[string]string,
	includeEnvRegex map[string]*regexp.Regexp,
	excludeEnvRegex map[string]*regexp.Regexp,
	k8sFilter *K8SFilter,
) map[string]*DockerInfoDetail

GetAllAcceptedInfo gathers all info of containers that match the input parameters. Two conditions (&&) for matched container: 1. has a label in @includeLabel and don't have any label in @excludeLabel. 2. has a env in @includeEnv and don't have any env in @excludeEnv. If the input parameters is empty, then all containers are matched. It returns a map contains docker container info.

func (*DockerCenter) GetAllAcceptedInfoV2

func (dc *DockerCenter) GetAllAcceptedInfoV2(
	fullList map[string]bool,
	matchList map[string]*DockerInfoDetail,
	includeLabel map[string]string,
	excludeLabel map[string]string,
	includeLabelRegex map[string]*regexp.Regexp,
	excludeLabelRegex map[string]*regexp.Regexp,
	includeEnv map[string]string,
	excludeEnv map[string]string,
	includeEnvRegex map[string]*regexp.Regexp,
	excludeEnvRegex map[string]*regexp.Regexp,
	k8sFilter *K8SFilter,
) (int, int)

GetAllAcceptedInfoV2 works like GetAllAcceptedInfo, but uses less CPU. It reduces CPU cost by using full list and match list to find containers that

 need to be check.

  deleted = fullList - containerMap
  newList = containerMap - fullList
  matchList -= deleted + filter(newList)
	 return len(deleted), len(filter(newList))

@param fullList [in,out]: all containers. @param matchList [in,out]: all matched containers.

It returns two integers: the number of new matched containers

and deleted containers.

func (*DockerCenter) GetAllInfo

func (dc *DockerCenter) GetAllInfo() (containerMap map[string]*DockerInfoDetail)

func (*DockerCenter) GetAllSpecificInfo

func (dc *DockerCenter) GetAllSpecificInfo(filter func(*DockerInfoDetail) bool) (infoList []*DockerInfoDetail)

func (*DockerCenter) GetContainerDetail

func (dc *DockerCenter) GetContainerDetail(id string) (containerDetail *DockerInfoDetail, ok bool)

func (*DockerCenter) GetIPAddress

func (dc *DockerCenter) GetIPAddress(info *docker.Container) string

func (*DockerCenter) GetImageName

func (dc *DockerCenter) GetImageName(id, defaultVal string) string

func (*DockerCenter) GetLastUpdateMapTime

func (dc *DockerCenter) GetLastUpdateMapTime() int64

func (*DockerCenter) ProcessAllContainerInfo

func (dc *DockerCenter) ProcessAllContainerInfo(processor func(*DockerInfoDetail))

func (*DockerCenter) RegisterEventListener

func (dc *DockerCenter) RegisterEventListener(c chan *docker.APIEvents)

func (*DockerCenter) UnRegisterEventListener

func (dc *DockerCenter) UnRegisterEventListener(c chan *docker.APIEvents)

type DockerInfoDetail

type DockerInfoDetail struct {
	ContainerInfo    *docker.Container
	ContainerNameTag map[string]string
	K8SInfo          *K8SInfo
	EnvConfigInfoMap map[string]*EnvConfigInfo
	ContainerIP      string
	DefaultRootPath  string
	// contains filtered or unexported fields
}

func (*DockerInfoDetail) DiffMount

func (did *DockerInfoDetail) DiffMount(other *DockerInfoDetail) bool

func (*DockerInfoDetail) DiffName

func (did *DockerInfoDetail) DiffName(other *DockerInfoDetail) bool

func (*DockerInfoDetail) FindAllEnvConfig

func (did *DockerInfoDetail) FindAllEnvConfig(envConfigPrefix string, selfConfigFlag bool)

FindAllEnvConfig find and pre process all env config, add tags for docker info

func (*DockerInfoDetail) FindBestMatchedPath

func (did *DockerInfoDetail) FindBestMatchedPath(pth string) (sourcePath, containerPath string)

func (*DockerInfoDetail) GetEnv

func (did *DockerInfoDetail) GetEnv(key string) string

func (*DockerInfoDetail) GetExternalTags

func (did *DockerInfoDetail) GetExternalTags(envs, k8sLabels map[string]string) map[string]string

func (*DockerInfoDetail) IsTimeout

func (did *DockerInfoDetail) IsTimeout() bool

func (*DockerInfoDetail) MakeSureEnvConfigExist

func (did *DockerInfoDetail) MakeSureEnvConfigExist(configName string) *EnvConfigInfo

type EnvConfigInfo

type EnvConfigInfo struct {
	ConfigName    string
	ConfigItemMap map[string]string
}

type K8SFilter

type K8SFilter struct {
	NamespaceReg     *regexp.Regexp
	PodReg           *regexp.Regexp
	ContainerReg     *regexp.Regexp
	IncludeLabels    map[string]string
	ExcludeLabels    map[string]string
	IncludeLabelRegs map[string]*regexp.Regexp
	ExcludeLabelRegs map[string]*regexp.Regexp
	// contains filtered or unexported fields
}

K8SFilter used for find specific container

func CreateK8SFilter

func CreateK8SFilter(ns, pod, container string, includeK8sLabels, excludeK8sLabels map[string]string) (*K8SFilter, error)

CreateK8SFilter ...

type K8SInfo

type K8SInfo struct {
	Namespace       string
	Pod             string
	ContainerName   string
	Labels          map[string]string
	PausedContainer bool
	// contains filtered or unexported fields
}

"io.kubernetes.container.logpath": "/var/log/pods/222e88ff-8f08-11e8-851d-00163f008685/logtail_0.log", "io.kubernetes.container.name": "logtail", "io.kubernetes.docker.type": "container", "io.kubernetes.pod.name": "logtail-z2224", "io.kubernetes.pod.namespace": "kube-system", "io.kubernetes.pod.uid": "222e88ff-8f08-11e8-851d-00163f008685",

func (*K8SInfo) ExtractK8sLabels

func (info *K8SInfo) ExtractK8sLabels(containerInfo *docker.Container)

ExtractK8sLabels only work for original docker container.

func (*K8SInfo) GetLabel

func (info *K8SInfo) GetLabel(key string) string

func (*K8SInfo) IsMatch

func (info *K8SInfo) IsMatch(filter *K8SFilter) bool

IsMatch ...

func (*K8SInfo) IsSamePod

func (info *K8SInfo) IsSamePod(o *K8SInfo) bool

func (*K8SInfo) Merge

func (info *K8SInfo) Merge(o *K8SInfo)

type KeyValue

type KeyValue struct {
	Key   string
	Value string
}

KeyValue ...

type KeyValues

type KeyValues struct {
	// contains filtered or unexported fields
}

KeyValues ...

func (*KeyValues) Append

func (kv *KeyValues) Append(key, value string)

Append ...

func (*KeyValues) AppendMap

func (kv *KeyValues) AppendMap(mapVal map[string]string)

AppendMap ...

func (*KeyValues) Clone

func (kv *KeyValues) Clone() KeyValues

Clone ...

func (*KeyValues) Len

func (kv *KeyValues) Len() int

func (*KeyValues) Less

func (kv *KeyValues) Less(i, j int) bool

func (*KeyValues) Replace

func (kv *KeyValues) Replace(key, value string)

Replace ...

func (*KeyValues) Sort

func (kv *KeyValues) Sort()

Sort ...

func (*KeyValues) String

func (kv *KeyValues) String() string

func (*KeyValues) Swap

func (kv *KeyValues) Swap(i, j int)

type Labels

type Labels map[string]string

func (Labels) MarshalEasyJSON

func (v Labels) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (Labels) MarshalJSON

func (v Labels) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*Labels) UnmarshalEasyJSON

func (v *Labels) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*Labels) UnmarshalJSON

func (v *Labels) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type LatMetric

type LatMetric struct {
	// contains filtered or unexported fields
}

func (*LatMetric) Begin

func (s *LatMetric) Begin()

func (*LatMetric) Clear

func (s *LatMetric) Clear()

func (*LatMetric) End

func (s *LatMetric) End()

func (*LatMetric) Get

func (s *LatMetric) Get() int64

func (*LatMetric) Name

func (s *LatMetric) Name() string

func (*LatMetric) Serialize

func (s *LatMetric) Serialize(log *protocol.Log)

type LocalCollector

type LocalCollector struct {
	Logs []*protocol.Log
}

LocalCollector for unit test

func (*LocalCollector) AddData

func (p *LocalCollector) AddData(tags map[string]string, fields map[string]string, t ...time.Time)

func (*LocalCollector) AddDataArray

func (p *LocalCollector) AddDataArray(tags map[string]string,
	columns []string,
	values []string,
	t ...time.Time)

func (*LocalCollector) AddRawLog

func (p *LocalCollector) AddRawLog(log *protocol.Log)

type LocalContext

type LocalContext struct {
	StringMetrics  map[string]ilogtail.StringMetric
	CounterMetrics map[string]ilogtail.CounterMetric
	LatencyMetrics map[string]ilogtail.LatencyMetric
	AllCheckPoint  map[string][]byte
	// contains filtered or unexported fields
}

func (*LocalContext) AddPlugin

func (p *LocalContext) AddPlugin(name string)

func (*LocalContext) GetCheckPoint

func (p *LocalContext) GetCheckPoint(key string) (value []byte, exist bool)

func (*LocalContext) GetCheckPointObject

func (p *LocalContext) GetCheckPointObject(key string, obj interface{}) (exist bool)

func (*LocalContext) GetConfigName

func (p *LocalContext) GetConfigName() string

func (*LocalContext) GetLogstore

func (p *LocalContext) GetLogstore() string

func (*LocalContext) GetProject

func (p *LocalContext) GetProject() string

func (*LocalContext) GetRuntimeContext

func (p *LocalContext) GetRuntimeContext() context.Context

func (*LocalContext) InitContext

func (p *LocalContext) InitContext(project, logstore, configName string)

func (*LocalContext) MetricSerializeToPB

func (p *LocalContext) MetricSerializeToPB(log *protocol.Log)

func (*LocalContext) RegisterCounterMetric

func (p *LocalContext) RegisterCounterMetric(metric ilogtail.CounterMetric)

func (*LocalContext) RegisterLatencyMetric

func (p *LocalContext) RegisterLatencyMetric(metric ilogtail.LatencyMetric)

func (*LocalContext) RegisterStringMetric

func (p *LocalContext) RegisterStringMetric(metric ilogtail.StringMetric)

func (*LocalContext) SaveCheckPoint

func (p *LocalContext) SaveCheckPoint(key string, value []byte) error

func (*LocalContext) SaveCheckPointObject

func (p *LocalContext) SaveCheckPointObject(key string, obj interface{}) error

type LogFileProcessor

type LogFileProcessor interface {
	// Process the file block and return how many bytes are processed
	// LogFileReader will find last '\n' and call Process
	// @note fileBlock may be nil, in this situation, processor should check multi line timeout
	Process(fileBlock []byte, noChangeInterval time.Duration) int
}

LogFileProcessor interface

type LogFileReader

type LogFileReader struct {
	Config LogFileReaderConfig
	// contains filtered or unexported fields
}

func NewLogFileReader

func NewLogFileReader(checkpoint LogFileReaderCheckPoint, config LogFileReaderConfig, processor LogFileProcessor, context ilogtail.Context) (*LogFileReader, error)

func (*LogFileReader) CheckFileChange

func (r *LogFileReader) CheckFileChange() bool

func (*LogFileReader) CloseFile

func (r *LogFileReader) CloseFile(reason string)

func (*LogFileReader) GetCheckpoint

func (r *LogFileReader) GetCheckpoint() (checkpoint LogFileReaderCheckPoint, updateFlag bool)

func (*LogFileReader) GetLastEndOfLine

func (r *LogFileReader) GetLastEndOfLine(n int) int

GetLastEndOfLine return new read bytes end with '\n' @note will return n + r.lastBufferSize when n + r.lastBufferSize == len(r.nowBlock)

func (*LogFileReader) GetProcessor

func (r *LogFileReader) GetProcessor() LogFileProcessor

func (*LogFileReader) ProcessAfterRead

func (r *LogFileReader) ProcessAfterRead(n int)

func (*LogFileReader) ReadAndProcess

func (r *LogFileReader) ReadAndProcess(once bool)

func (*LogFileReader) ReadOpen

func (r *LogFileReader) ReadOpen() error

func (*LogFileReader) Run

func (r *LogFileReader) Run()

func (*LogFileReader) SetForceRead

func (r *LogFileReader) SetForceRead()

SetForceRead force read file when reader start

func (*LogFileReader) Start

func (r *LogFileReader) Start()

func (*LogFileReader) Stop

func (r *LogFileReader) Stop()

func (*LogFileReader) UpdateProcessResult

func (r *LogFileReader) UpdateProcessResult(readN, processedN int)

type LogFileReaderCheckPoint

type LogFileReaderCheckPoint struct {
	Path   string
	Offset int64
	State  StateOS
}

func (*LogFileReaderCheckPoint) IsSame

func (checkpoint *LogFileReaderCheckPoint) IsSame(other *LogFileReaderCheckPoint) bool

IsSame check if the checkpoints is same

type LogFileReaderConfig

type LogFileReaderConfig struct {
	ReadIntervalMs   int
	MaxReadBlockSize int
	CloseFileSec     int
	Tracker          *ReaderMetricTracker
}

type MetaNode

type MetaNode struct {
	ID         string
	Type       string
	Attributes Attributes
	Labels     Labels
	Parents    Parents
}

MetaNode describes a superset of the metadata that probes can collect about a given node in a given topology, along with the edges (aka adjacency) emanating from the node.

func NewMetaNode

func NewMetaNode(id, nodeType string) *MetaNode

func (MetaNode) MarshalEasyJSON

func (v MetaNode) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (MetaNode) MarshalJSON

func (v MetaNode) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*MetaNode) UnmarshalEasyJSON

func (v *MetaNode) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*MetaNode) UnmarshalJSON

func (v *MetaNode) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

func (*MetaNode) WithAttribute

func (n *MetaNode) WithAttribute(k string, v interface{}) *MetaNode

func (*MetaNode) WithAttributes

func (n *MetaNode) WithAttributes(attributes Attributes) *MetaNode

func (*MetaNode) WithLabel

func (n *MetaNode) WithLabel(k, v string) *MetaNode

func (*MetaNode) WithLabels

func (n *MetaNode) WithLabels(labels Labels) *MetaNode

func (*MetaNode) WithParent

func (n *MetaNode) WithParent(key, parentID, parentName string) *MetaNode

func (*MetaNode) WithParents

func (n *MetaNode) WithParents(parents Parents) *MetaNode

type NormalMetric

type NormalMetric struct {
	// contains filtered or unexported fields
}

func (*NormalMetric) Add

func (s *NormalMetric) Add(v int64)

func (*NormalMetric) Clear

func (s *NormalMetric) Clear(v int64)

func (*NormalMetric) Get

func (s *NormalMetric) Get() int64

func (*NormalMetric) Name

func (s *NormalMetric) Name() string

func (*NormalMetric) Serialize

func (s *NormalMetric) Serialize(log *protocol.Log)

type Parents

type Parents []string

func (Parents) MarshalEasyJSON

func (v Parents) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (Parents) MarshalJSON

func (v Parents) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*Parents) UnmarshalEasyJSON

func (v *Parents) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*Parents) UnmarshalJSON

func (v *Parents) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type ReaderMetricTracker

type ReaderMetricTracker struct {
	OpenCounter        ilogtail.CounterMetric
	CloseCounter       ilogtail.CounterMetric
	FileSizeCounter    ilogtail.CounterMetric
	FileRotatorCounter ilogtail.CounterMetric
	ReadCounter        ilogtail.CounterMetric
	ReadSizeCounter    ilogtail.CounterMetric
	ProcessLatency     ilogtail.LatencyMetric
}

func NewReaderMetricTracker

func NewReaderMetricTracker() *ReaderMetricTracker

type StateOS

type StateOS struct {
	Inode      uint64
	Device     uint64
	Size       int64
	ModifyTime uint64
}

func GetOSState

func GetOSState(info os.FileInfo) StateOS

GetOSState returns the FileStateOS for non windows systems

func (StateOS) IsChange

func (fs StateOS) IsChange(state StateOS) bool

IsChange file checks if the files are changed

func (StateOS) IsEmpty

func (fs StateOS) IsEmpty() bool

func (StateOS) IsFileChange

func (fs StateOS) IsFileChange(state StateOS) bool

func (StateOS) IsSame

func (fs StateOS) IsSame(state StateOS) bool

IsSame file checks if the files are identical

func (StateOS) String

func (fs StateOS) String() string

type StrMetric

type StrMetric struct {
	// contains filtered or unexported fields
}

func (*StrMetric) Get

func (s *StrMetric) Get() string

func (*StrMetric) Name

func (s *StrMetric) Name() string

func (*StrMetric) Serialize

func (s *StrMetric) Serialize(log *protocol.Log)

func (*StrMetric) Set

func (s *StrMetric) Set(v string)

Directories

Path Synopsis
sls

Jump to

Keyboard shortcuts

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