2.2.1通过Golang+eBPF实现无侵入应用可观测
通过Golang + eBPF实现无侵入应用可观测 张海彬 阿里云 应用可观测技术专家 目 录 eBPF简介 01 eBPF在云原生场景下的应用 02 微服务可观测的挑战 03 Golang + eBPF实现数据采集 04 构建完整的应用可观测系统 05 eBPF简介 第一部分 eBPF简介 01. eBPF简介 eBPF = extended Berkeley Packet 内存管理,文件管理, 夯机宕机,资源异 常… 应用组件异常:线程池满,数据库连接无法获取, OOM,文件读取错误… 无法自顶向下端到端 串联导致棘手问题频 发。 Kubernetes下的可观测 Golang + eBPF实现数据采 集 第四部分 eBPF在可观测领域的优势 无侵入 多语言/多协议/多框架 全栈覆盖 无侵入性 • 无需修改代码 • 无需重启应用 • Verifier保证运行安全 程序跟其他的用户空间的程序没有太大区别 编译成二进制文件,可以适应不同运行环境 libbpf 扮演bpf程序装载机角色 开发人员只需要关注bpf程序的正确性和性能,不 需要关注其他依赖关系 通过Golang加载eBPF程序 01. 副标题 func loadSync() error { // Allow the current process to lock memory for eBPF0 码力 | 29 页 | 3.83 MB | 1 年前3Cilium v1.5 Documentation
(OS-specific) glibc-devel (32-bit) latest N/A (OS-specific) go [h�ps://golang.org/dl/] 1.12.17 N/A (OS-specific) dep [h�ps://github.com/golang/dep/] >= v0.4.1 curl https://raw.g go-bindata [h�ps://github.com/cilium/go- space viola�ons Run make to build your changes. This will also run go fmt and error out on any golang forma�ng errors. See Unit Tes�ng on how to run unit tests. See End-To-End Tes�ng Framework for how to run the end to end integra�on tests Unit Testing Cilium uses the standard go test [h�ps://golang.org/pkg/tes�ng/] framework in combina�on with gocheck [h�p://labix.org/gocheck] for richer tes�ng0 码力 | 740 页 | 12.52 MB | 1 年前3Cilium v1.7 Documentation
Development Setup Requirements Vagrant Setup Local Development in Vagrant Box Making Changes Add/update a golang dependency Debugging Building Container Images Developer images Official release images Update posts Books Talks Further Documents API Reference Introduction How to access the API CLI Client Golang Package Compatibility Guarantees API Reference Reference Command Cheatsheet Command utilities:/ where is a value that can be parsed with ParseDuration() [https://golang.org/pkg/time/#ParseDuration]. The supported units are: ns, us, ms, s, m, h. Examples: rate-limit:10/2m 0 码力 | 885 页 | 12.41 MB | 1 年前3Cilium v1.8 Documentation
Development Setup Requirements Vagrant Setup Local Development in Vagrant Box Making Changes Add/update a golang dependency Optional: Docker and IPv6 Debugging Building Container Images Developer images Official posts Books Talks Further Documents API Reference Introduction How to access the API CLI Client Golang Package Compatibility Guarantees API Reference Hubble internals Hubble Architecture Hubble server/ where is a value that can be parsed with ParseDuration() [https://golang.org/pkg/time/#ParseDuration]. The supported units are: ns, us, ms, s, m, h. Examples: rate-limit:10/2m 0 码力 | 1124 页 | 21.33 MB | 1 年前3Cilium v1.6 Documentation
(OS-specific) go 1.12.17 N/A (OS-specific) dep >= v0.4.1 curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh go-bindata a0ff2567cfb go get -u github.com/cilium/go-bindata/... ginkgo space violations 6. Run make to build your changes. This will also run go fmt and error out on any golang formatting errors. 7. See Unit Testing on how to run unit tests. 8. See End-To-End Testing Framework to run the end to end integration tests Unit Testing Cilium uses the standard go test [https://golang.org/pkg/testing/] framework in combination with gocheck [http://labix.org/gocheck] for richer testing0 码力 | 734 页 | 11.45 MB | 1 年前3Cilium v1.10 Documentation
Development Setup Requirements Vagrant Setup Local Development in Vagrant Box Making Changes Add/update a golang dependency Add/update a new Kubernetes version Optional: Docker and IPv6 Debugging Building Container posts Books Talks Further Documents API Reference Introduction How to access the API CLI Client Golang Package Compatibility Guarantees API Reference Internals Hubble internals Hubble Architecture/ where is a value that can be parsed with ParseDuration() [https://golang.org/pkg/time/#ParseDuration]. The supported units are: ns, us, ms, s, m, h. Examples: rate-limit:10/2m 0 码力 | 1307 页 | 19.26 MB | 1 年前3Cilium v1.9 Documentation
Development Setup Requirements Vagrant Setup Local Development in Vagrant Box Making Changes Add/update a golang dependency Add/update a new Kubernetes version Optional: Docker and IPv6 Debugging Building Container posts Books Talks Further Documents API Reference Introduction How to access the API CLI Client Golang Package Compatibility Guarantees API Reference Hubble internals Hubble Architecture Hubble server/ where is a value that can be parsed with ParseDuration() [https://golang.org/pkg/time/#ParseDuration]. The supported units are: ns, us, ms, s, m, h. Examples: rate-limit:10/2m 0 码力 | 1263 页 | 18.62 MB | 1 年前3Cilium v1.11 Documentation
Development Setup Requirements Vagrant Setup Local Development in Vagrant Box Making Changes Add/update a golang dependency Add/update a new Kubernetes version Optional: Docker and IPv6 Debugging Building Container posts Books Talks Further Documents API Reference Introduction How to access the API CLI Client Golang Package Compatibility Guarantees API Reference Internals Hubble internals Hubble Architecture/ where is a value that can be parsed with ParseDuration() [https://golang.org/pkg/time/#ParseDuration]. The supported units are: ns, us, ms, s, m, h. Examples: rate-limit:10/2m 0 码力 | 1373 页 | 19.37 MB | 1 年前3ubuntu server guide
$ dpkg -s rclone | grep Built-Using Built-Using: go-md2man-v2 (= 2.0.1+ds1-1), golang-1.18 (= 1.18-1ubuntu1), golang-bazil-fuse (= 0.0~git20160811.0.371fbbd- 3), … 327 Ok, this time we have a lot of line). If we look at the full output carefully, we can see that rclone was built statically using the golang-go.crypto package, and documentation about that package and its crypto implementations is what we shows us the golang-golang-x-crypto-dev build dependency, whose source package is golang-go.crypto as expected: $ apt-cache show golang-golang-x-crypto-dev | grep ^Source: Source: golang-go.crypto NOTE0 码力 | 486 页 | 3.33 MB | 1 年前3openEuler OS Technical Whitepaper Innovation Projects (June, 2023)
through the gRPC protocol. The atuned process contains a frontend gRPC service layer (implemented by Golang) and a backend service layer, the former of which manages optimization configurations and data and parameter search. A-Tune software architecture A-Tune client (atune-adm) A-Tune server (atuned/Golang) gRPC service Configuration Analysis Tuning Database Backend server (HTTP/Python 3) MPI/CPI0 码力 | 116 页 | 3.16 MB | 1 年前3
共 26 条
- 1
- 2
- 3