Documentation ¶
Index ¶
- Constants
- func Render(d []byte, eventBuilder func() EventResult) (*data.AnalyseData, error)
- func RenderHandler(event EventResult, eventBuilder func() EventResult) func(data []byte) (*data.AnalyseData, error)
- type Builder
- type EventResult
- type Monitor
- type PerfMonitor
- func (p *PerfMonitor) Build() *Monitor
- func (p *PerfMonitor) IsEnd() bool
- func (p *PerfMonitor) Merge(moduleList []Builder) []Builder
- func (p *PerfMonitor) RegisterOnceTable(name string, handler TableHandler)
- func (p *PerfMonitor) RegisterTable(name string, loop bool, handler TableHandler) chan<- []byte
- func (p *PerfMonitor) Resolve(ctx context.Context, m *bpf.Module, ch chan<- *data.AnalyseData)
- func (p *PerfMonitor) SetMark(name string, mk string) *PerfMonitor
- type Resolver
- type TableCtx
- type TableHandler
- type Type
Constants ¶
View Source
const (
EndTag = "_END_" // 终止标志
)
内置标签
View Source
const (
EnhanceTag = "enhance"
)
Variables ¶
This section is empty.
Functions ¶
func Render ¶
func Render(d []byte, eventBuilder func() EventResult) (*data.AnalyseData, error)
func RenderHandler ¶
func RenderHandler(event EventResult, eventBuilder func() EventResult) func(data []byte) (*data.AnalyseData, error)
Types ¶
type Builder ¶
type Builder interface { // Build 创建模块 Build() *Monitor // Merge 合并模块, moduleList 中的元素不为空 Merge(moduleList []Builder) []Builder }
Builder 模块构造器
type EventResult ¶
type EventResult interface { // 数据渲染 Render() *data.AnalyseData }
EventResult 事件结果接口,实现中的类型大小在编译时必须是已知的
type Monitor ¶
type Monitor struct { // Resolver 解析 Resolver // Name 返回模块的名称 Name string // Source 返回注入的 ebpf 源码 Source string // Events 返回要注册的事件 Events []*ebpf.Event // IsEnd 是否标记为最后 IsEnd bool // CanMerge 是否可以与其他 Module 合并 CanMerge bool // LazyInit 延迟初始化 LazyInit func(mm *Monitor, param ebpf.PreParam) bool // Module 获取 `ebpf.Module` Module func() *ebpf.Module }
Monitor 模块抽象接口
type PerfMonitor ¶
type PerfMonitor struct { *Monitor // contains filtered or unexported fields }
PerfResolveMm BaseMonitorModule 的高级抽象,封装 table 和 resolve 的处理
func (*PerfMonitor) RegisterOnceTable ¶
func (p *PerfMonitor) RegisterOnceTable(name string, handler TableHandler)
RegisterOnceTable 注册 table,仅执行一次操作
func (*PerfMonitor) RegisterTable ¶
func (p *PerfMonitor) RegisterTable(name string, loop bool, handler TableHandler) chan<- []byte
RegisterTable 注册 table, 若 loop 为 true,返回对应的 chan,否则返回 nil
func (*PerfMonitor) Resolve ¶
func (p *PerfMonitor) Resolve(ctx context.Context, m *bpf.Module, ch chan<- *data.AnalyseData)
Resolve 模块的解析策略
func (*PerfMonitor) SetMark ¶
func (p *PerfMonitor) SetMark(name string, mk string) *PerfMonitor
SetMark 设置标记
type Resolver ¶
type Resolver interface { // Resolve 解析、发送处理结果 Resolve(ctx context.Context, m *bpf.Module, ch chan<- *data.AnalyseData) }
Resolver 模块解析
type TableHandler ¶
type TableHandler func(data []byte) (*data.AnalyseData, error)
Click to show internal directories.
Click to hide internal directories.