base

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: Jun 14, 2023 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrNotComplete = errors.New("socket: not complete event")
)

Functions

This section is empty.

Types

type Buffer added in v0.5.0

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

func CombineSlices added in v0.5.0

func CombineSlices(validated bool, buffers ...*Buffer) *Buffer

func (*Buffer) Details added in v0.5.0

func (r *Buffer) Details() *list.List

func (*Buffer) DetectNotSendingLastPosition added in v0.5.0

func (r *Buffer) DetectNotSendingLastPosition() *BufferPosition

DetectNotSendingLastPosition detect the buffer contains not sending data: the BPF limited socket data count

func (*Buffer) FindFirstDataBuffer added in v0.5.0

func (r *Buffer) FindFirstDataBuffer(dataID uint64) SocketDataBuffer

func (*Buffer) FirstSocketBuffer added in v0.5.0

func (r *Buffer) FirstSocketBuffer() SocketDataBuffer

func (*Buffer) IsCurrentPacketReadFinished added in v0.5.0

func (r *Buffer) IsCurrentPacketReadFinished() bool

IsCurrentPacketReadFinished means to validate the current reading package is reading finished

func (*Buffer) LastSocketBuffer added in v0.5.0

func (r *Buffer) LastSocketBuffer() SocketDataBuffer

func (*Buffer) Len added in v0.5.0

func (r *Buffer) Len() int

func (*Buffer) OffsetPosition added in v0.5.0

func (r *Buffer) OffsetPosition(offset int) *BufferPosition

func (*Buffer) Peek added in v0.5.0

func (r *Buffer) Peek(p []byte) (n int, err error)

func (*Buffer) Position added in v0.5.0

func (r *Buffer) Position() *BufferPosition

func (*Buffer) Read added in v0.5.0

func (r *Buffer) Read(p []byte) (n int, err error)

func (*Buffer) Slice added in v0.5.0

func (r *Buffer) Slice(validated bool, start, end *BufferPosition) *Buffer

type BufferPosition added in v0.5.0

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

func (*BufferPosition) Clone added in v0.5.0

func (p *BufferPosition) Clone() *BufferPosition

func (*BufferPosition) String added in v0.5.0

func (p *BufferPosition) String() string

type Context

type Context interface {
	QueryConnection(connectionID, randomID uint64) *base.ConnectionContext
	QueryProtocolMetrics(conMetrics *base.ConnectionMetricsContext, protocol base.ConnectionProtocol) Metrics
}

type Metrics

type Metrics interface {
	base.ConnectionMetrics

	// FlushMetrics flush all metrics from traffic to the metricsBuilder
	FlushMetrics(traffic *base.ProcessTraffic, metricsBuilder *base.MetricsBuilder)
}

type ParseResult added in v0.5.0

type ParseResult int
const (
	ParseResultSuccess ParseResult = iota
	ParseResultSkipPackage
)

type Protocol

type Protocol interface {
	Protocol() base.ConnectionProtocol
	GenerateMetrics() Metrics
	Init(config *profiling.TaskConfig)

	ParseProtocol(connectionID uint64, metrics Metrics, reader *Buffer) ParseResult
	PackageMaxExpireDuration() time.Duration
	UpdateExtensionConfig(config *profiling.ExtensionConfig)
}

type ProtocolAnalyzer added in v0.5.0

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

ProtocolAnalyzer handler all socket data for each protocol

func NewProtocolAnalyzer added in v0.5.0

func NewProtocolAnalyzer(protocolContext Context, p Protocol, config *profiling.TaskConfig) *ProtocolAnalyzer

func (*ProtocolAnalyzer) ReceiveSocketCloseEvent added in v0.5.0

func (a *ProtocolAnalyzer) ReceiveSocketCloseEvent(event *base.SocketCloseEvent)

func (*ProtocolAnalyzer) ReceiveSocketData added in v0.5.0

func (a *ProtocolAnalyzer) ReceiveSocketData(ctx Context, event *SocketDataUploadEvent)

func (*ProtocolAnalyzer) ReceiveSocketDetail added in v0.5.0

func (a *ProtocolAnalyzer) ReceiveSocketDetail(ctx Context, event *SocketDetailEvent)

func (*ProtocolAnalyzer) Start added in v0.5.0

func (a *ProtocolAnalyzer) Start(ctx context.Context)

func (*ProtocolAnalyzer) UpdateExtensionConfig added in v0.5.0

func (a *ProtocolAnalyzer) UpdateExtensionConfig(config *profiling.ExtensionConfig)

type SkyWalkingTracingContext

type SkyWalkingTracingContext struct {
	TraceID0              string
	SegmentID0            string
	SpanID0               string
	ParentService         string
	ParentServiceInstance string
	ParentEndpoint        string
	AddressUsedAtClient   string
}

func (*SkyWalkingTracingContext) Provider

func (*SkyWalkingTracingContext) SpanID

func (w *SkyWalkingTracingContext) SpanID() string

func (*SkyWalkingTracingContext) TraceID

func (w *SkyWalkingTracingContext) TraceID() string

func (*SkyWalkingTracingContext) TraceSegmentID

func (w *SkyWalkingTracingContext) TraceSegmentID() string

type SocketDataBuffer

type SocketDataBuffer interface {
	// GenerateConnectionID for identity the buffer belong which connection
	GenerateConnectionID() string
	// BufferData of the buffer
	BufferData() []byte
	// TotalSize of socket data, the data may exceed the size of the BufferData()
	TotalSize() uint64
	// Direction of the data, send or receive
	Direction() base.SocketDataDirection
	// BufferStartPosition the buffer start index
	BufferStartPosition() int
	// BufferLen the buffer data length
	BufferLen() int
	// DataID data id of the buffer
	DataID() uint64
	// DataSequence the data sequence under same data id
	DataSequence() int
	// IsStart this buffer is start of the same data id
	IsStart() bool
	// IsFinished this buffer is finish of the same data id
	IsFinished() bool
	// HaveReduceDataAfterChunk check have reduced data after current buffer
	HaveReduceDataAfterChunk() bool

	// StartTime the data start timestamp
	StartTime() uint64
	// EndTime the data end timestamp
	EndTime() uint64
}

type SocketDataEventLimited added in v0.5.0

type SocketDataEventLimited struct {
	SocketDataBuffer
	// contains filtered or unexported fields
}

func (*SocketDataEventLimited) BufferData added in v0.5.0

func (s *SocketDataEventLimited) BufferData() []byte

func (*SocketDataEventLimited) BufferLen added in v0.5.0

func (s *SocketDataEventLimited) BufferLen() int

func (*SocketDataEventLimited) BufferStartPosition added in v0.5.0

func (s *SocketDataEventLimited) BufferStartPosition() int

type SocketDataUploadEvent

type SocketDataUploadEvent struct {
	Protocol     base.ConnectionProtocol
	HaveReduce   uint8
	Direction0   base.SocketDataDirection
	Finished     uint8
	Sequence0    uint16
	DataLen      uint16
	StartTime0   uint64
	EndTime0     uint64
	ConnectionID uint64
	RandomID     uint64
	DataID0      uint64
	TotalSize0   uint64
	Buffer       [2048]byte
}

func (*SocketDataUploadEvent) BufferData

func (s *SocketDataUploadEvent) BufferData() []byte

func (*SocketDataUploadEvent) BufferLen added in v0.5.0

func (s *SocketDataUploadEvent) BufferLen() int

func (*SocketDataUploadEvent) BufferStartPosition added in v0.5.0

func (s *SocketDataUploadEvent) BufferStartPosition() int

func (*SocketDataUploadEvent) DataID

func (s *SocketDataUploadEvent) DataID() uint64

func (*SocketDataUploadEvent) DataSequence added in v0.5.0

func (s *SocketDataUploadEvent) DataSequence() int

func (*SocketDataUploadEvent) Direction

func (*SocketDataUploadEvent) EndTime

func (s *SocketDataUploadEvent) EndTime() uint64

func (*SocketDataUploadEvent) GenerateConnectionID

func (s *SocketDataUploadEvent) GenerateConnectionID() string

func (*SocketDataUploadEvent) HaveReduceDataAfterChunk added in v0.5.0

func (s *SocketDataUploadEvent) HaveReduceDataAfterChunk() bool

func (*SocketDataUploadEvent) IsFinished

func (s *SocketDataUploadEvent) IsFinished() bool

func (*SocketDataUploadEvent) IsStart

func (s *SocketDataUploadEvent) IsStart() bool

func (*SocketDataUploadEvent) StartTime

func (s *SocketDataUploadEvent) StartTime() uint64

func (*SocketDataUploadEvent) TotalSize

func (s *SocketDataUploadEvent) TotalSize() uint64

type SocketDetailEvent added in v0.5.0

type SocketDetailEvent struct {
	ConnectionID     uint64
	RandomID         uint64
	DataID           uint64
	TotalPackageSize uint64
	IfIndex          uint32
	PackageCount     uint8
	FuncName         base.SocketFunctionName
	RTTCount         uint8
	Protocol         base.ConnectionProtocol
	RTTTime          uint32
}

func (*SocketDetailEvent) GenerateConnectionID added in v0.5.0

func (s *SocketDetailEvent) GenerateConnectionID() string

type TraceContextProvider

type TraceContextProvider struct {
	Type v3.SpanAttachedEvent_SpanReferenceType
	Name string
}

type TracingContext

type TracingContext interface {
	TraceID() string
	TraceSegmentID() string
	SpanID() string
	Provider() *TraceContextProvider
}

func AnalyzeTracingContext

func AnalyzeTracingContext(fetcher func(key string) string) (TracingContext, error)

type ZipkinTracingContext

type ZipkinTracingContext struct {
	TraceID0 string
	SpanID0  string
}

func (*ZipkinTracingContext) Provider

func (*ZipkinTracingContext) SpanID

func (w *ZipkinTracingContext) SpanID() string

func (*ZipkinTracingContext) TraceID

func (w *ZipkinTracingContext) TraceID() string

func (*ZipkinTracingContext) TraceSegmentID

func (w *ZipkinTracingContext) TraceSegmentID() string

Jump to

Keyboard shortcuts

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