Documentation ¶
Index ¶
- func ForwardRingbuf[T any](service svc.ID, cfg *TracerConfig, logger *slog.Logger, ringbuffer *ebpf.Map, ...) func(context.Context, chan<- []request.Span)
- func HTTPRequestTraceToSpan(trace *HTTPRequestTrace) request.Span
- func ReadHTTPRequestTraceAsSpan(record *ringbuf.Record) (request.Span, bool, error)
- type Filter
- type FunctionPrograms
- type HTTPRequestTrace
- type Probe
- type TracerConfig
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ForwardRingbuf ¶
func ForwardRingbuf[T any]( service svc.ID, cfg *TracerConfig, logger *slog.Logger, ringbuffer *ebpf.Map, reader func(*ringbuf.Record) (request.Span, bool, error), metrics imetrics.Reporter, closers ...io.Closer, ) func(context.Context, chan<- []request.Span)
ForwardRingbuf returns a function reads HTTPRequestTraces from an input ring buffer, accumulates them into an internal buffer, and forwards them to an output events channel, previously converted to request.Span instances.
func HTTPRequestTraceToSpan ¶ added in v0.0.5
func HTTPRequestTraceToSpan(trace *HTTPRequestTrace) request.Span
Types ¶
type FunctionPrograms ¶
type HTTPRequestTrace ¶
type HTTPRequestTrace bpfHttpRequestTrace
HTTPRequestTrace contains information from an HTTP request as directly received from the eBPF layer. This contains low-level C structures for accurate binary read from ring buffer.
type Probe ¶
type Probe struct { Offsets goexec.FuncOffsets Programs FunctionPrograms }
Probe holds the information of the instrumentation points of a given function: its start and end offsets and eBPF programs
type TracerConfig ¶
type TracerConfig struct { BpfDebug bool `yaml:"bfp_debug" env:"BPF_DEBUG"` // WakeupLen specifies how many messages need to be accumulated in the eBPF ringbuffer // before sending a wakeup request. // High values of WakeupLen could add a noticeable metric delay in services with low // requests/second. // TODO: see if there is a way to force eBPF to wakeup userspace on timeout WakeupLen int `yaml:"wakeup_len" env:"BPF_WAKEUP_LEN"` // BatchLength allows specifying how many traces will be batched at the initial // stage before being forwarded to the next stage BatchLength int `yaml:"batch_length" env:"BPF_BATCH_LENGTH"` // BatchTimeout specifies the timeout to forward the data batch if it didn't // reach the BatchLength size BatchTimeout time.Duration `yaml:"batch_timeout" env:"BPF_BATCH_TIMEOUT"` // BpfBaseDir specifies the base directory where the BPF pinned maps will be mounted. // By default, it will be /var/run/beyla BpfBaseDir string `yaml:"bpf_fs_base_dir" env:"BPF_FS_BASE_DIR"` }
TracerConfig configuration for eBPF programs
Click to show internal directories.
Click to hide internal directories.