Skip to content

Commit

Permalink
Merge pull request alibaba#276 from jzwlqx/feature/update-cilium-ebpf
Browse files Browse the repository at this point in the history
update cilium/ebpf to v0.11.0
  • Loading branch information
Lyt99 committed May 14, 2024
2 parents 765e0c4 + 5b33e03 commit 41a0982
Show file tree
Hide file tree
Showing 28 changed files with 34 additions and 59 deletions.
6 changes: 2 additions & 4 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ require (
github.com/alibabacloud-go/vpc-20160428/v2 v2.0.15
github.com/bastjan/netstat v1.0.0
github.com/beevik/etree v1.1.0
github.com/cilium/ebpf v0.9.3
github.com/cilium/ebpf v0.11.0
github.com/containerd/containerd v1.6.15
github.com/docker/docker v20.10.22+incompatible
github.com/fsnotify/fsnotify v1.6.0
Expand Down Expand Up @@ -45,7 +45,7 @@ require (
github.com/ti-mo/netfilter v0.5.0
github.com/vishvananda/netlink v1.2.1-beta.2
github.com/vishvananda/netns v0.0.4
golang.org/x/exp v0.0.0-20221204150635-6dcec336b2bb
golang.org/x/exp v0.0.0-20230224173230-c95f2b4c22f2
golang.org/x/sync v0.1.0
golang.org/x/sys v0.10.0
google.golang.org/grpc v1.56.2
Expand Down Expand Up @@ -107,7 +107,6 @@ require (
github.com/emicklei/go-restful v2.11.2-0.20200112161605-a7c079c43d51+incompatible // indirect
github.com/emicklei/go-restful/v3 v3.9.0 // indirect
github.com/fatih/color v1.13.0 // indirect
github.com/frankban/quicktest v1.14.3 // indirect
github.com/gabriel-vasile/mimetype v1.4.2 // indirect
github.com/gin-contrib/sse v0.1.0 // indirect
github.com/go-logr/logr v1.2.3 // indirect
Expand Down Expand Up @@ -165,7 +164,6 @@ require (
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/prometheus/client_model v0.3.0 // indirect
github.com/rivo/uniseg v0.4.3 // indirect
github.com/rogpeppe/go-internal v1.8.0 // indirect
github.com/stefanberger/go-pkcs11uri v0.0.0-20201008174630-78d3cae3a980 // indirect
github.com/tchap/go-patricia v2.2.6+incompatible // indirect
github.com/tjfoc/gmsm v1.3.2 // indirect
Expand Down
16 changes: 6 additions & 10 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -222,8 +222,8 @@ github.com/cilium/ebpf v0.2.0/go.mod h1:To2CFviqOWL/M0gIMsvSMlqe7em/l1ALkX1PyjrX
github.com/cilium/ebpf v0.4.0/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs=
github.com/cilium/ebpf v0.6.2/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs=
github.com/cilium/ebpf v0.7.0/go.mod h1:/oI2+1shJiTGAMgl6/RgJr36Eo1jzrRcAWbcXO2usCA=
github.com/cilium/ebpf v0.9.3 h1:5KtxXZU+scyERvkJMEm16TbScVvuuMrlhPly78ZMbSc=
github.com/cilium/ebpf v0.9.3/go.mod h1:w27N4UjpaQ9X/DGrSugxUG+H+NhgntDuPb5lCzxCn8A=
github.com/cilium/ebpf v0.11.0 h1:V8gS/bTCCjX9uUnkUFUpPsksM8n1lXBAvHcpiFk1X2Y=
github.com/cilium/ebpf v0.11.0/go.mod h1:WE7CZAnqOL2RouJ4f1uyNhqr2P4CCvXFIqdRDUgWsVs=
github.com/clbanning/mxj/v2 v2.5.5/go.mod h1:hNiWqW14h+kc+MdF9C6/YoRfjEJoR3ou6tn/Qo+ve2s=
github.com/clbanning/mxj/v2 v2.5.6 h1:Jm4VaCI/+Ug5Q57IzEoZbwx4iQFA6wkXv72juUSeK+g=
github.com/clbanning/mxj/v2 v2.5.6/go.mod h1:hNiWqW14h+kc+MdF9C6/YoRfjEJoR3ou6tn/Qo+ve2s=
Expand Down Expand Up @@ -459,8 +459,7 @@ github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSw
github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k=
github.com/form3tech-oss/jwt-go v3.2.3+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k=
github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k=
github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE=
github.com/frankban/quicktest v1.14.3/go.mod h1:mgiwOwqx65TmIk1wJ6Q7wvnVMocbUorkibMOrVTHZps=
github.com/frankban/quicktest v1.14.5 h1:dfYrrRyLtiqT9GyKXgdh+k4inNeTvmGbuSgZ3lx3GhA=
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY=
Expand Down Expand Up @@ -613,7 +612,6 @@ github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE=
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/go-containerregistry v0.5.1/go.mod h1:Ct15B4yir3PLOP5jsy0GNeYVaIZs/MK/Jz5any1wFW0=
Expand Down Expand Up @@ -954,7 +952,6 @@ github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCko
github.com/pelletier/go-toml/v2 v2.0.8 h1:0ctb6s9mE31h0/lhu+J6OPmVeDxJn+kYnJc2jZR9tGQ=
github.com/pelletier/go-toml/v2 v2.0.8/go.mod h1:vuYfssBdrU2XDZ9bYydBu6t+6a6PYNcZljzZR9VXg+4=
github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.8.1-0.20171018195549-f15c970de5b7/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
Expand Down Expand Up @@ -1014,8 +1011,7 @@ github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6So
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
github.com/rogpeppe/go-internal v1.8.0 h1:FCbCCtXNOY3UtUuHUYaghJg4y7Fd14rXifAYUAtL9R8=
github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE=
github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
Expand Down Expand Up @@ -1242,8 +1238,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0
golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM=
golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
golang.org/x/exp v0.0.0-20221204150635-6dcec336b2bb h1:QIsP/NmClBICkqnJ4rSIhnrGiGR7Yv9ZORGGnmmLTPk=
golang.org/x/exp v0.0.0-20221204150635-6dcec336b2bb/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc=
golang.org/x/exp v0.0.0-20230224173230-c95f2b4c22f2 h1:Jvc7gsqn21cJHCmAWx0LiimpP18LZmUxkT5Mp7EZ1mI=
golang.org/x/exp v0.0.0-20230224173230-c95f2b4c22f2/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc=
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/image v0.3.0 h1:HTDXbdK9bjfSWkPzDJIw89W8CAtfFGduujWs33NLLsg=
Expand Down
1 change: 0 additions & 1 deletion pkg/exporter/probe/flow/bpf_bpfeb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file modified pkg/exporter/probe/flow/bpf_bpfeb.o
Binary file not shown.
3 changes: 1 addition & 2 deletions pkg/exporter/probe/flow/bpf_bpfel.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

31 changes: 16 additions & 15 deletions pkg/exporter/probe/nlconntrack/conntrackevents.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,15 @@ import (
"strconv"
"time"

log "github.com/sirupsen/logrus"

"github.com/alibaba/kubeskoop/pkg/exporter/probe"

"github.com/alibaba/kubeskoop/pkg/exporter/bpfutil"
"github.com/alibaba/kubeskoop/pkg/exporter/nettop"
"github.com/mdlayher/netlink"
"github.com/ti-mo/conntrack"
"github.com/ti-mo/netfilter"
"golang.org/x/exp/slog"
)

const (
Expand Down Expand Up @@ -48,33 +49,33 @@ func (p *conntrackEventProbe) Start(ctx context.Context) error {
ticker := time.NewTicker(10 * time.Second)
select {
case <-ticker.C:
slog.Ctx(ctx).Info("start update netns list", "module", probeName)
log.Infof("%s: start update netns list", probeName)
ets := nettop.GetAllUniqueNetnsEntity()
for _, et := range ets {
if et == nil {
slog.Ctx(ctx).Info("skip empty entity", "module", probeName)
log.Infof("%s: skip empty entity", probeName)
continue
}
nsfd, err := et.GetNetNsFd()
if err != nil {
slog.Ctx(ctx).Info("skip netns fd", "err", err, "module", probeName)
log.Infof("%s: failed get netns fd, skip netns fd, err: %v", probeName, err)
continue
}
if nsfd == 0 {
slog.Ctx(ctx).Info("skip empty netns fd", "module", probeName)
log.Infof("%s: invalid nsfd(0), skip empty netns fd", probeName)
continue
}
if _, ok := p.conns[et.GetNetns()]; !ok {
ctrch := make(chan struct{})
go func() {
err := p.startCtListen(ctx, ctrch, nsfd, et.GetNetns())
err = p.startCtListen(ctx, ctrch, nsfd, et.GetNetns())
if err != nil {
slog.Ctx(ctx).Warn("start worker", "err", err, "netns", et.GetNetns(), "nsfd", nsfd, "module", probeName)
log.Infof("%s: failed start worker, err: %v", probeName, err)
return
}
}()
p.conns[et.GetNetns()] = ctrch
slog.Ctx(ctx).Info("start worker finished", "netns", et.GetNetns(), "nsfd", nsfd, "module", probeName)
log.Infof("%s: start worker finished", probeName)
}
}
case <-p.done:
Expand All @@ -93,35 +94,35 @@ func (p *conntrackEventProbe) Stop(_ context.Context) error {
return nil
}

func (p *conntrackEventProbe) startCtListen(ctx context.Context, ctrch <-chan struct{}, nsfd int, nsinum int) error {
func (p *conntrackEventProbe) startCtListen(_ context.Context, ctrch <-chan struct{}, nsfd int, nsinum int) error {
c, err := conntrack.Dial(&netlink.Config{
NetNS: nsfd,
})

if err != nil {
slog.Ctx(ctx).Info("start conntrack dial", "err", err, "module", probeName)
log.Infof("%s: failed start conntrack dial, err: %v", probeName, err)
return err
}

slog.Ctx(ctx).Info("start conntrack listen", "netns", nsfd, "module", probeName)
log.Infof("%s: start conntrack listen in netns %d", probeName, nsfd)
evCh := make(chan conntrack.Event, 1024)
errCh, err := c.Listen(evCh, 4, append(netfilter.GroupsCT, netfilter.GroupsCTExp...))
if err != nil {
slog.Ctx(ctx).Info("start conntrack listen", "err", err, "module", probeName)
log.Infof("%s: failed start conntrack listen, err: %v", probeName, err)
return err
}

for {
select {
case <-ctrch:
slog.Ctx(ctx).Info("conntrack event listen stop", "module", probeName)
log.Infof("%s: conntrack event listen stop", probeName)
return nil
case err = <-errCh:
slog.Ctx(ctx).Info("conntrack event listen stop", "err", err, "module", probeName)
log.Infof("%s: conntrack event listen stop, err: %v", probeName, err)
return err
case event := <-evCh:
p.sink <- vanishEvent(event, nsinum)
slog.Ctx(ctx).Info("conntrack event listen", "event", event.String(), "module", probeName)
log.Infof("%s: conntrack event listen got event: %s", probeName, event.String())
}
}
}
Expand Down
1 change: 0 additions & 1 deletion pkg/exporter/probe/tracebiolatency/bpf_bpfeb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 1 addition & 2 deletions pkg/exporter/probe/tracebiolatency/bpf_bpfel.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion pkg/exporter/probe/tracekernel/bpf_bpfeb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file modified pkg/exporter/probe/tracekernel/bpf_bpfeb.o
Binary file not shown.
3 changes: 1 addition & 2 deletions pkg/exporter/probe/tracekernel/bpf_bpfel.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion pkg/exporter/probe/tracenetiftxlatency/bpf_bpfeb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 1 addition & 2 deletions pkg/exporter/probe/tracenetiftxlatency/bpf_bpfel.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file modified pkg/exporter/probe/tracenetiftxlatency/bpf_bpfel.o
Binary file not shown.
1 change: 0 additions & 1 deletion pkg/exporter/probe/tracepacketloss/bpf_bpfeb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 1 addition & 2 deletions pkg/exporter/probe/tracepacketloss/bpf_bpfel.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion pkg/exporter/probe/tracesocketlatency/bpf_bpfeb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 1 addition & 2 deletions pkg/exporter/probe/tracesocketlatency/bpf_bpfel.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion pkg/exporter/probe/tracesoftirq/bpf_bpfeb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 1 addition & 2 deletions pkg/exporter/probe/tracesoftirq/bpf_bpfel.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion pkg/exporter/probe/tracetcpreset/bpf_bpfeb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file modified pkg/exporter/probe/tracetcpreset/bpf_bpfeb.o
Binary file not shown.
3 changes: 1 addition & 2 deletions pkg/exporter/probe/tracetcpreset/bpf_bpfel.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file modified pkg/exporter/probe/tracetcpreset/bpf_bpfel.o
Binary file not shown.
1 change: 0 additions & 1 deletion pkg/exporter/probe/tracetcpretrans/bpf_bpfeb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 1 addition & 2 deletions pkg/exporter/probe/tracetcpretrans/bpf_bpfel.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion pkg/exporter/probe/tracevirtcmdlat/bpf_bpfeb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 1 addition & 2 deletions pkg/exporter/probe/tracevirtcmdlat/bpf_bpfel.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 41a0982

Please sign in to comment.