Skip to content

Commit

Permalink
feat(btfhack): remove unused creator params & add dev args for flow p…
Browse files Browse the repository at this point in the history
…robe

Signed-off-by: xiayu.lyt <xiayu.lyt@alibaba-inc.com>
  • Loading branch information
Lyt99 committed Oct 9, 2023
1 parent 57e059f commit 3a897c4
Show file tree
Hide file tree
Showing 21 changed files with 39 additions and 35 deletions.
32 changes: 18 additions & 14 deletions pkg/exporter/probe/flow/flow.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,16 +32,25 @@ const (
)

var (
dev = "eth0"
probeName = "flow"
)

func init() {
probe.MustRegisterMetricsProbe(probeName, metricsProbeCreator)
}

func metricsProbeCreator(_ map[string]interface{}) (probe.MetricsProbe, error) {
p := &metricsProbe{}
type flowArgs struct {
Dev string
}

func metricsProbeCreator(args flowArgs) (probe.MetricsProbe, error) {
if args.Dev == "" {
args.Dev = "eth0"
}

p := &metricsProbe{
args: args,
}
opts := probe.BatchMetricsOpts{
Namespace: probe.MetricsNamespace,
Subsystem: probeName,
Expand All @@ -57,6 +66,7 @@ func metricsProbeCreator(_ map[string]interface{}) (probe.MetricsProbe, error) {

type metricsProbe struct {
bpfObjs bpfObjects
args flowArgs
}

func (p *metricsProbe) Start(_ context.Context) error {
Expand All @@ -80,7 +90,7 @@ func (p *metricsProbe) Stop(_ context.Context) error {

func (p *metricsProbe) cleanup() error {
//TODO only clean qdisc after replace qdisc successfully
link, err := netlink.LinkByName(dev)
link, err := netlink.LinkByName(p.args.Dev)
if err == nil {
_ = cleanQdisc(link)
}
Expand Down Expand Up @@ -203,15 +213,9 @@ func (p *metricsProbe) loadBPF() error {

opts := ebpf.CollectionOptions{}

//TODO 优化btf文件的查找方式
btf, err := bpfutil.LoadBTFFromFile("/sys/kernel/btf/vmlinux")
if err != nil {
panic(err)
}

opts.Programs = ebpf.ProgramOptions{
LogLevel: ebpf.LogLevelInstruction | ebpf.LogLevelBranch | ebpf.LogLevelStats,
KernelTypes: btf,
KernelTypes: bpfutil.LoadBTFSpecOrNil(),
}

// Load pre-compiled programs and maps into the kernel.
Expand All @@ -222,17 +226,17 @@ func (p *metricsProbe) loadBPF() error {
}

func (p *metricsProbe) loadAndAttachBPF() error {
eth0, err := netlink.LinkByName(dev)
eth0, err := netlink.LinkByName(p.args.Dev)
if err != nil {
return fmt.Errorf("fail get link %s, err: %w", dev, err)
return fmt.Errorf("fail get link %s, err: %w", p.args.Dev, err)
}

if err := p.loadBPF(); err != nil {
return err
}

if err := p.setupTCFilter(eth0); err != nil {
return fmt.Errorf("failed replace %s qdisc with clsact, err: %v", dev, err)
return fmt.Errorf("failed replace %s qdisc with clsact, err: %v", p.args.Dev, err)
}
return nil
}
Expand Down
2 changes: 1 addition & 1 deletion pkg/exporter/probe/nlconntrack/conntrackevents.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ var (
probeName = "conntrack"
)

func eventProbeCreator(sink chan<- *probe.Event, _ map[string]interface{}) (probe.EventProbe, error) {
func eventProbeCreator(sink chan<- *probe.Event) (probe.EventProbe, error) {
p := &conntrackEventProbe{
sink: sink,
}
Expand Down
2 changes: 1 addition & 1 deletion pkg/exporter/probe/nlconntrack/conntrackmetrics.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ var (
conntrackMetrics = []string{Found, Invalid, Ignore, Insert, InsertFailed, Drop, EarlyDrop, Error, SearchRestart, Entries, MaxEntries}
)

func metricsProbeCreator(_ map[string]interface{}) (probe.MetricsProbe, error) {
func metricsProbeCreator() (probe.MetricsProbe, error) {
p := &conntrackMetricsProbe{}

batchMetrics := probe.NewLegacyBatchMetrics(probeName, conntrackMetrics, p.CollectOnce)
Expand Down
2 changes: 1 addition & 1 deletion pkg/exporter/probe/nlqdisc/nlqdiscstats.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ func init() {
probe.MustRegisterMetricsProbe(probeName, qdiscProbeCreator)
}

func qdiscProbeCreator(_ map[string]interface{}) (probe.MetricsProbe, error) {
func qdiscProbeCreator() (probe.MetricsProbe, error) {
p := &Probe{}

batchMetrics := probe.NewLegacyBatchMetrics(probeName, qdiscMetrics, p.CollectOnce)
Expand Down
2 changes: 1 addition & 1 deletion pkg/exporter/probe/procfd/procfd.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ func init() {
probe.MustRegisterMetricsProbe(probeName, fdProbeCreator)
}

func fdProbeCreator(_ map[string]interface{}) (probe.MetricsProbe, error) {
func fdProbeCreator() (probe.MetricsProbe, error) {
p := &ProcFD{}

batchMetrics := probe.NewLegacyBatchMetrics(probeName, FDMetrics, p.CollectOnce)
Expand Down
2 changes: 1 addition & 1 deletion pkg/exporter/probe/procio/procio.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ func init() {
probe.MustRegisterMetricsProbe(probeName, ioProbeCreator)
}

func ioProbeCreator(_ map[string]interface{}) (probe.MetricsProbe, error) {
func ioProbeCreator() (probe.MetricsProbe, error) {
p := &ProcIO{}

batchMetrics := probe.NewLegacyBatchMetrics(probeName, IOMetrics, p.CollectOnce)
Expand Down
2 changes: 1 addition & 1 deletion pkg/exporter/probe/procipvs/ipvsservicestats.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ func init() {
probe.MustRegisterMetricsProbe(probeName, ipvsProbeCreator)
}

func ipvsProbeCreator(_ map[string]interface{}) (probe.MetricsProbe, error) {
func ipvsProbeCreator() (probe.MetricsProbe, error) {
p := &ProcIPVS{}

batchMetrics := probe.NewLegacyBatchMetrics(probeName, IPVSMetrics, p.CollectOnce)
Expand Down
2 changes: 1 addition & 1 deletion pkg/exporter/probe/procnetdev/procnetdev.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ func init() {
probe.MustRegisterMetricsProbe(probeName, netdevProbeCreator)
}

func netdevProbeCreator(_ map[string]interface{}) (probe.MetricsProbe, error) {
func netdevProbeCreator() (probe.MetricsProbe, error) {
p := &ProcNetdev{}

batchMetrics := probe.NewLegacyBatchMetrics(probeName, NetdevMetrics, p.CollectOnce)
Expand Down
2 changes: 1 addition & 1 deletion pkg/exporter/probe/procnetstat/procnetstat.go
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ func init() {
probe.MustRegisterMetricsProbe(probeName, netdevProbeCreator)
}

func netdevProbeCreator(_ map[string]interface{}) (probe.MetricsProbe, error) {
func netdevProbeCreator() (probe.MetricsProbe, error) {
p := &ProcNetstat{}

batchMetrics := probe.NewLegacyBatchMetrics(probeName, TCPExtMetrics, p.CollectOnce)
Expand Down
4 changes: 2 additions & 2 deletions pkg/exporter/probe/procsnmp/procsnmp.go
Original file line number Diff line number Diff line change
Expand Up @@ -86,8 +86,8 @@ func init() {
probe.MustRegisterMetricsProbe(IP, newSnmpProbeCreator(IP))
}

func newSnmpProbeCreator(probeName string) func(args map[string]interface{}) (probe.MetricsProbe, error) {
return func(args map[string]interface{}) (probe.MetricsProbe, error) {
func newSnmpProbeCreator(probeName string) func() (probe.MetricsProbe, error) {
return func() (probe.MetricsProbe, error) {
p := &procSNMP{
name: probeName,
}
Expand Down
2 changes: 1 addition & 1 deletion pkg/exporter/probe/procsock/procsock.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ func init() {
probe.MustRegisterMetricsProbe(probeName, sockProbeCreator)
}

func sockProbeCreator(_ map[string]interface{}) (probe.MetricsProbe, error) {
func sockProbeCreator() (probe.MetricsProbe, error) {
p := &ProcSock{}

batchMetrics := probe.NewLegacyBatchMetrics(probeName, TCPSockStatMetrics, p.CollectOnce)
Expand Down
2 changes: 1 addition & 1 deletion pkg/exporter/probe/procsoftnet/procsoftnet.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ func init() {
probe.MustRegisterMetricsProbe(probeName, softNetProbeCreator)
}

func softNetProbeCreator(_ map[string]interface{}) (probe.MetricsProbe, error) {
func softNetProbeCreator() (probe.MetricsProbe, error) {
p := &ProcSoftnet{}

batchMetrics := probe.NewLegacyBatchMetrics(probeName, softnetMetrics, p.CollectOnce)
Expand Down
2 changes: 1 addition & 1 deletion pkg/exporter/probe/proctcpsummary/proctcp.go
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ func init() {
probe.MustRegisterMetricsProbe(probeName, softNetProbeCreator)
}

func softNetProbeCreator(_ map[string]interface{}) (probe.MetricsProbe, error) {
func softNetProbeCreator() (probe.MetricsProbe, error) {
p := &ProcTCP{}

batchMetrics := probe.NewLegacyBatchMetrics(probeName, TCPSummaryMetrics, p.CollectOnce)
Expand Down
2 changes: 1 addition & 1 deletion pkg/exporter/probe/tracebiolatency/tracebiolatency.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ func init() {
probe.MustRegisterEventProbe(probeName, bioLatencyProbeCreator)
}

func bioLatencyProbeCreator(sink chan<- *probe.Event, _ map[string]interface{}) (probe.EventProbe, error) {
func bioLatencyProbeCreator(sink chan<- *probe.Event) (probe.EventProbe, error) {
p := &BiolatencyProbe{
sink: sink,
}
Expand Down
2 changes: 1 addition & 1 deletion pkg/exporter/probe/tracekernel/tracekernel.go
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ func init() {
probe.MustRegisterEventProbe(probeName, eventProbeCreator)
}

func metricsProbeCreator(_ map[string]interface{}) (probe.MetricsProbe, error) {
func metricsProbeCreator() (probe.MetricsProbe, error) {
p := &metricsProbe{}
batchMetrics := probe.NewLegacyBatchMetrics(probeName, metrics, p.CollectOnce)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ func init() {
probe.MustRegisterEventProbe(probeName, eventProbeCreator)
}

func metricsProbeCreator(_ map[string]interface{}) (probe.MetricsProbe, error) {
func metricsProbeCreator() (probe.MetricsProbe, error) {
p := &metricsProbe{}
batchMetrics := probe.NewLegacyBatchMetrics(probeName, metrics, p.CollectOnce)

Expand Down
2 changes: 1 addition & 1 deletion pkg/exporter/probe/tracenetsoftirq/tracenetsoftirq.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ func init() {
probe.MustRegisterEventProbe(probeName, eventProbeCreator)
}

func metricsProbeCreator(_ map[string]interface{}) (probe.MetricsProbe, error) {
func metricsProbeCreator() (probe.MetricsProbe, error) {
p := &metricsProbe{}
batchMetrics := probe.NewLegacyBatchMetrics(probeName, metrics, p.CollectOnce)

Expand Down
2 changes: 1 addition & 1 deletion pkg/exporter/probe/tracepacketloss/packetloss.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ func init() {
probe.MustRegisterEventProbe(probeName, eventProbeCreator)
}

func metricsProbeCreator(_ map[string]interface{}) (probe.MetricsProbe, error) {
func metricsProbeCreator() (probe.MetricsProbe, error) {
p := &metricsProbe{}
batchMetrics := probe.NewLegacyBatchMetricsWithUnderscore(probeName, packetLossMetrics, p.CollectOnce)

Expand Down
2 changes: 1 addition & 1 deletion pkg/exporter/probe/tracesocketlatency/socketlatency.go
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ func init() {
probe.MustRegisterEventProbe(probeName, eventProbeCreator)
}

func metricsProbeCreator(_ map[string]interface{}) (probe.MetricsProbe, error) {
func metricsProbeCreator() (probe.MetricsProbe, error) {
p := &metricsProbe{}
batchMetrics := probe.NewLegacyBatchMetrics(probeName, socketlatencyMetrics, p.CollectOnce)

Expand Down
2 changes: 1 addition & 1 deletion pkg/exporter/probe/tracetcpreset/tracetcpreset.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ func init() {
probe.MustRegisterEventProbe(probeName, eventProbeCreator)
}

func eventProbeCreator(sink chan<- *probe.Event, _ map[string]interface{}) (probe.EventProbe, error) {
func eventProbeCreator(sink chan<- *probe.Event) (probe.EventProbe, error) {
p := &tcpResetProbe{
sink: sink,
}
Expand Down
2 changes: 1 addition & 1 deletion pkg/exporter/probe/tracevirtcmdlat/tracevirtcmdlat.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ func metricsProbeCreator(_ map[string]interface{}) (probe.MetricsProbe, error) {
return probe.NewMetricsProbe(probeName, p, batchMetrics), nil
}

func eventProbeCreator(sink chan<- *probe.Event, _ map[string]interface{}) (probe.EventProbe, error) {
func eventProbeCreator(sink chan<- *probe.Event) (probe.EventProbe, error) {
p := &eventProbe{
sink: sink,
}
Expand Down

0 comments on commit 3a897c4

Please sign in to comment.