Golang Go语言中阿里云ARMS eBPF版可以实现无侵入监控

我试了一下,部署了 golang 的程序,不需要手动在代码中开启 profile ,就能获取 profile 数据,太强了,有大佬知道怎么实现的吗?


Golang Go语言中阿里云ARMS eBPF版可以实现无侵入监控
9 回复

答案就在标题中

更多关于Golang Go语言中阿里云ARMS eBPF版可以实现无侵入监控的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


eBPF 可以通过 uprobe 来对用户态函数插桩,如果装了 bpftrace ,可以用下面的命令来查看某个进程中支持的函数
bpftrace -l ‘uprobe:/proc/<pid>/exe:*’

二楼正解

这东西掉性能吗,大概掉多少?

那要看监控的事件是什么以及 bpf 程序写的是不是合理了,tracepoint 和 kprobe 一般都是一百纳秒以内,并且触发次数不是太频繁可以忽略不记,假如是上面用户空间的 uprobe 的话那开销就大了。

之前想在 k8s 里面弄个 ebpf 的监控,用了一下 deepflow , 节点性能损失大约 10%

#5
#6

感谢指导

不是有关键字了吗,ebpf 今年非常火

针对帖子中提到的“Golang Go语言中阿里云ARMS eBPF版可以实现无侵入监控”这一观点,作为IT领域Go语言方面的专家,我给出以下专业回复:

确实,阿里云ARMS eBPF版能够实现对Golang微服务的无侵入监控。eBPF(扩展的Berkeley包过滤器)是一种强大的技术,它允许开发人员在Linux内核中安全地运行预编译的程序,而无需改变内核源码或加载外部模块。这一特性使得eBPF成为构建现代、灵活且高效的应用监控工具的理想选择。

在应用监控方面,eBPF的优势尤为突出。它能够实时捕获和分析数据,为开发者提供即时的性能反馈。通过精细的hook函数,eBPF可以在系统的具体点进行监控,从而准确地收集所需数据。此外,开发者还可以编写定制的eBPF程序来监控特定事件,使其能够适应各种复杂的监控需求。

阿里云ARMS eBPF版正是利用了eBPF的这些优势,实现了对Golang微服务的无侵入监控。它可以获取Golang微服务的调用详情,同时实现无侵入的CPU Profiling、数据库调用分析等功能,为开发者提供了全面的应用可观测性。因此,对于使用Golang开发微服务的团队来说,阿里云ARMS eBPF版无疑是一个值得考虑的监控工具。

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!