Documentation
¶
Index ¶
- func ValidateAndMutateConfig(cfg *Config) error
- type BPFLoader
- func (l *BPFLoader) Done() <-chan struct{}
- func (l *BPFLoader) GetMapCollectionByType(name string) *ebpf.Map
- func (l *BPFLoader) GetMapHandlerByType(mapType ebpf.MapType) MapHandler
- func (l *BPFLoader) GetMapSpecByType(name string) *ebpf.MapSpec
- func (l *BPFLoader) Init() error
- func (l *BPFLoader) Load() error
- func (l *BPFLoader) Metrics() error
- func (l *BPFLoader) RegisterMapHandler(handler MapHandler)
- func (l *BPFLoader) Start() error
- func (l *BPFLoader) Stats() error
- func (l *BPFLoader) Stop() error
- type BaseMapHandler
- type Config
- type Loader
- type MapHandler
- type PerfEventMapHandler
- func (h *PerfEventMapHandler) Close()
- func (h *PerfEventMapHandler) SetBTFContainer(btfContainer *container.BTFContainer)
- func (h *PerfEventMapHandler) SetCollection(collection *ebpf.Collection)
- func (h *PerfEventMapHandler) SetEventHandler(handler meta.EventHandler)
- func (h *PerfEventMapHandler) Setup(spec *ebpf.MapSpec, m *ebpf.Map) (*skeleton.ProgramPoller, error)
- func (h *PerfEventMapHandler) Type() ebpf.MapType
- type RingBufMapHandler
- func (h *RingBufMapHandler) Close()
- func (h *RingBufMapHandler) SetBTFContainer(btfContainer *container.BTFContainer)
- func (h *RingBufMapHandler) SetCollection(collection *ebpf.Collection)
- func (h *RingBufMapHandler) SetEventHandler(handler meta.EventHandler)
- func (h *RingBufMapHandler) Setup(spec *ebpf.MapSpec, m *ebpf.Map) (*skeleton.ProgramPoller, error)
- func (h *RingBufMapHandler) Type() ebpf.MapType
- type SampleMapHandler
- func (s *SampleMapHandler) Close()
- func (s *SampleMapHandler) SetBTFContainer(btfContainer *container.BTFContainer)
- func (s *SampleMapHandler) SetCollection(collection *ebpf.Collection)
- func (s *SampleMapHandler) SetEventHandler(handler meta.EventHandler)
- func (s *SampleMapHandler) Setup(spec *ebpf.MapSpec, m *ebpf.Map) (*skeleton.ProgramPoller, error)
- func (s *SampleMapHandler) Type() ebpf.MapType
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ValidateAndMutateConfig ¶
Types ¶
type BPFLoader ¶
type BPFLoader struct {
Logger *zap.Logger
Config *Config
Collection *ebpf.Collection
Skeleton *skeleton.BpfSkeleton
PreLoadSkeleton *skeleton.PreLoadBpfSkeleton
Pollers []*skeleton.ProgramPoller
MapHandlers []MapHandler
BTFContainer *container.BTFContainer
Links []link.Link
StatsCollector metrics.Collector
// contains filtered or unexported fields
}
BPFLoader 实现 eBPF 程序加载器
func NewBPFLoader ¶
func (*BPFLoader) GetMapCollectionByType ¶
func (*BPFLoader) GetMapHandlerByType ¶
func (l *BPFLoader) GetMapHandlerByType(mapType ebpf.MapType) MapHandler
GetMapHandlerByType 根据 map 类型返回对应的 MapHandler
func (*BPFLoader) GetMapSpecByType ¶
func (*BPFLoader) RegisterMapHandler ¶
func (l *BPFLoader) RegisterMapHandler(handler MapHandler)
RegisterMapHandler 注册 Map 处理器
type BaseMapHandler ¶
type BaseMapHandler struct {
Logger *zap.Logger
Config *Config
Collection *ebpf.Collection
MapSpec *ebpf.MapSpec
BTFContainer *container.BTFContainer
Poller skeleton.Poller
Stats *metrics.Collector
EventHandler meta.EventHandler
}
BaseMapHandler 提供通用实现
type Config ¶
type Config struct {
ObjectPath string
BTFPath string
Logger *zap.Logger
PollTimeout time.Duration
StructName string
Properties meta.Properties
}
Config 配置结构
type Loader ¶
type Loader interface {
Init() error
Load() error
Start() error
Stop() error
Stats() error
Metrics() error
}
Loader 定义加载器接口
type MapHandler ¶
type MapHandler interface {
Type() ebpf.MapType
Setup(*ebpf.MapSpec, *ebpf.Map) (*skeleton.ProgramPoller, error)
SetCollection(*ebpf.Collection)
SetBTFContainer(*container.BTFContainer)
Close()
SetEventHandler(meta.EventHandler)
}
MapHandler 定义 Map 处理器接口
type PerfEventMapHandler ¶
type PerfEventMapHandler struct {
BaseMapHandler
}
PerfEventMapHandler 实现
func (*PerfEventMapHandler) Close ¶
func (h *PerfEventMapHandler) Close()
func (*PerfEventMapHandler) SetBTFContainer ¶
func (h *PerfEventMapHandler) SetBTFContainer(btfContainer *container.BTFContainer)
func (*PerfEventMapHandler) SetCollection ¶
func (h *PerfEventMapHandler) SetCollection(collection *ebpf.Collection)
func (*PerfEventMapHandler) SetEventHandler ¶
func (h *PerfEventMapHandler) SetEventHandler(handler meta.EventHandler)
func (*PerfEventMapHandler) Setup ¶
func (h *PerfEventMapHandler) Setup(spec *ebpf.MapSpec, m *ebpf.Map) (*skeleton.ProgramPoller, error)
func (*PerfEventMapHandler) Type ¶
func (h *PerfEventMapHandler) Type() ebpf.MapType
type RingBufMapHandler ¶
type RingBufMapHandler struct {
BaseMapHandler
}
RingBufMapHandler 实现
func (*RingBufMapHandler) Close ¶
func (h *RingBufMapHandler) Close()
func (*RingBufMapHandler) SetBTFContainer ¶
func (h *RingBufMapHandler) SetBTFContainer(btfContainer *container.BTFContainer)
func (*RingBufMapHandler) SetCollection ¶
func (h *RingBufMapHandler) SetCollection(collection *ebpf.Collection)
func (*RingBufMapHandler) SetEventHandler ¶
func (h *RingBufMapHandler) SetEventHandler(handler meta.EventHandler)
func (*RingBufMapHandler) Setup ¶
func (h *RingBufMapHandler) Setup(spec *ebpf.MapSpec, m *ebpf.Map) (*skeleton.ProgramPoller, error)
func (*RingBufMapHandler) Type ¶
func (h *RingBufMapHandler) Type() ebpf.MapType
type SampleMapHandler ¶
type SampleMapHandler struct {
BaseMapHandler
}
func (*SampleMapHandler) Close ¶
func (s *SampleMapHandler) Close()
func (*SampleMapHandler) SetBTFContainer ¶
func (s *SampleMapHandler) SetBTFContainer(btfContainer *container.BTFContainer)
func (*SampleMapHandler) SetCollection ¶
func (s *SampleMapHandler) SetCollection(collection *ebpf.Collection)
func (*SampleMapHandler) SetEventHandler ¶
func (s *SampleMapHandler) SetEventHandler(handler meta.EventHandler)
func (*SampleMapHandler) Setup ¶
func (s *SampleMapHandler) Setup(spec *ebpf.MapSpec, m *ebpf.Map) (*skeleton.ProgramPoller, error)
func (*SampleMapHandler) Type ¶
func (s *SampleMapHandler) Type() ebpf.MapType
Click to show internal directories.
Click to hide internal directories.