Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ProcessFinder ¶
type ProcessFinder struct {
Cfg *pipe.Config
Metrics imetrics.Reporter
CtxInfo *global.ContextInfo
// contains filtered or unexported fields
}
ProcessFinder continuously listens in background for a process matching the search criteria as specified to the user.
func (*ProcessFinder) Close ¶
func (pf *ProcessFinder) Close() error
func (*ProcessFinder) Start ¶
func (pf *ProcessFinder) Start(ctx context.Context) (<-chan *ProcessTracer, error)
type ProcessTracer ¶
ProcessTracer instruments an executable with eBPF and provides the eBPF readers that will forward the traces to later stages in the pipeline TODO: split in two, the instrumenter and the reader
type Tracer ¶
type Tracer interface {
// Load the bpf object that is generated by the bpf2go compiler
Load() (*ebpf.CollectionSpec, error)
// Constants returns a map of constants to be overriden into the eBPF program.
// The key is the constant name and the value is the value to overwrite.
Constants(*exec.FileInfo, *goexec.Offsets) map[string]any
// BpfObjects that are created by the bpf2go compiler
BpfObjects() any
// GoProbes returns a map with the name of Go functions that need to be inspected
// in the executable, as well as the eBPF programs that optionally need to be
// inserted as the Go function start and end probes
GoProbes() map[string]ebpfcommon.FunctionPrograms
// KProbes returns a map with the name of the kernel probes that need to be
// tapped into. Start matches kprobe, End matches kretprobe
KProbes() map[string]ebpfcommon.FunctionPrograms
// KProbes returns a map with the module name mapping to the uprobes that need to be
// tapped into. Start matches uprobe, End matches uretprobe
UProbes() map[string]map[string]ebpfcommon.FunctionPrograms
// Socket filters returns a list of programs that need to be loaded as a
// generic eBPF socket filter
SocketFilters() []*ebpf.Program
// Run will do the action of listening for eBPF traces and forward them
// periodically to the output channel.
// It optionally receives the service name as a second attribute, to
// populate each forwarded span with its value. But some
// tracers might ignore it (e.g. system-wide HTTP filter will directly set the
// executable name of each request).
Run(context.Context, chan<- []request.Span, string)
// AddCloser adds io.Closer instances that need to be invoked when the
// Run function ends.
AddCloser(c ...io.Closer)
}
Tracer is an individual eBPF program (e.g. the net/http or the grpc tracers)
Click to show internal directories.
Click to hide internal directories.