Documentation
¶
Index ¶
- Variables
- type Buffer
- func (r *Buffer) Details() *list.List
- func (r *Buffer) DetectNotSendingLastPosition() *BufferPosition
- func (r *Buffer) FindFirstDataBuffer(dataID uint64) SocketDataBuffer
- func (r *Buffer) FirstSocketBuffer() SocketDataBuffer
- func (r *Buffer) IsCurrentPacketReadFinished() bool
- func (r *Buffer) LastSocketBuffer() SocketDataBuffer
- func (r *Buffer) Len() int
- func (r *Buffer) OffsetPosition(offset int) *BufferPosition
- func (r *Buffer) Peek(p []byte) (n int, err error)
- func (r *Buffer) Position() *BufferPosition
- func (r *Buffer) Read(p []byte) (n int, err error)
- func (r *Buffer) Slice(validated bool, start, end *BufferPosition) *Buffer
- type BufferPosition
- type Context
- type Metrics
- type ParseResult
- type Protocol
- type ProtocolAnalyzer
- func (a *ProtocolAnalyzer) ReceiveSocketCloseEvent(event *base.SocketCloseEvent)
- func (a *ProtocolAnalyzer) ReceiveSocketData(ctx Context, event *SocketDataUploadEvent)
- func (a *ProtocolAnalyzer) ReceiveSocketDetail(ctx Context, event *SocketDetailEvent)
- func (a *ProtocolAnalyzer) Start(ctx context.Context)
- func (a *ProtocolAnalyzer) UpdateExtensionConfig(config *profiling.ExtensionConfig)
- type SkyWalkingTracingContext
- type SocketDataBuffer
- type SocketDataEventLimited
- type SocketDataUploadEvent
- func (s *SocketDataUploadEvent) BufferData() []byte
- func (s *SocketDataUploadEvent) BufferLen() int
- func (s *SocketDataUploadEvent) BufferStartPosition() int
- func (s *SocketDataUploadEvent) DataID() uint64
- func (s *SocketDataUploadEvent) DataSequence() int
- func (s *SocketDataUploadEvent) Direction() base.SocketDataDirection
- func (s *SocketDataUploadEvent) EndTime() uint64
- func (s *SocketDataUploadEvent) GenerateConnectionID() string
- func (s *SocketDataUploadEvent) HaveReduceDataAfterChunk() bool
- func (s *SocketDataUploadEvent) IsFinished() bool
- func (s *SocketDataUploadEvent) IsStart() bool
- func (s *SocketDataUploadEvent) StartTime() uint64
- func (s *SocketDataUploadEvent) TotalSize() uint64
- type SocketDetailEvent
- type TraceContextProvider
- type TracingContext
- type ZipkinTracingContext
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 (*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
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) OffsetPosition ¶ added in v0.5.0
func (r *Buffer) OffsetPosition(offset int) *BufferPosition
func (*Buffer) Position ¶ added in v0.5.0
func (r *Buffer) Position() *BufferPosition
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 (w *SkyWalkingTracingContext) Provider() *TraceContextProvider
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 (s *SocketDataUploadEvent) Direction() base.SocketDataDirection
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 ¶
func (*ZipkinTracingContext) Provider ¶
func (w *ZipkinTracingContext) Provider() *TraceContextProvider
func (*ZipkinTracingContext) SpanID ¶
func (w *ZipkinTracingContext) SpanID() string
func (*ZipkinTracingContext) TraceID ¶
func (w *ZipkinTracingContext) TraceID() string
func (*ZipkinTracingContext) TraceSegmentID ¶
func (w *ZipkinTracingContext) TraceSegmentID() string
Click to show internal directories.
Click to hide internal directories.