• 2025-01-07编译时插桩,Go 应用监控最佳选择
    可观测性是以系统的指标、日志、链路追踪、持续剖析四大数据支柱为基础,从宏观到微观,通过不同数据之间互相关联,衍生出如数据监控、问题分析、系统诊断等一系列的能力。Java[1]可以通过字节码增强的技术实现无侵入的应用监控(开源社区有非常多的无侵入Agent实现方案,技术非常成熟),可
  • 2024-12-24【GO应用】编译时插桩,Go应用监控的最佳选择
    阿里妹导读本文讲解了阿里云编译器团队和可观测团队为了实现Go应用监控选择编译时插桩的原因,同时还介绍了其他的监控方案以及它们的优缺点。可观测性是以系统的指标、日志、链路追踪、持续剖析四大数据支柱为基础,从宏观到微观,通过不同数据之间互相关联,衍生出如数据监控、问题分
  • 2024-12-23云原生周刊:利用 eBPF 增强 K8s
    开源项目推荐Slurm-operatorSlurm-operator是一个高效可扩展的框架,用于在K8s环境中部署和运行Slurm工作负载。它结合了Slurm的可靠性和Kubernetes的灵活性,支持快速部署Slurm集群、动态扩展HPC工作负载,并提供高度灵活的定制配置,同时充分利用K8s的云原生功能(如监
  • 2024-12-04eBPF 运行原理和流程
    前言极客时间eBPF核心技术与实战的学习笔记.本章说一下ebpf的运行原理,本章有些内容是直接copy自课程原文eBPF虚拟机(执行器)包含了什么官方的说话,eBPF是运行在eBPF虚拟机中,而不是直接作用于系统.但是也有人说,eBPF执行系统更应该称之为执行器,因为他并不如
  • 2024-12-01ebpf发展简史
    前言极客时间eBPF核心技术与实战的学习笔记.本章简单介绍一下eBPF的发展和概述正文eBPF发展历史注意区分BPF和eBPF提案1992年USENUX会议上提出BPF机制来在linux中进行包过滤在内核态中引入虚拟机执行BPF指令在用户态使用BPF字节码来进行表达式的自定
  • 2024-11-27eCapture:一个无需 CA 证书,就能实现 SSL/TLS 加密明文捕获的工具
    今天给大家分享一款基于eBPF技术实现的用户态数据捕获工具【eCapture】什么是eCapture?eCapture是一款基于eBPF(ExtendedBerkeleyPacketFilter)技术实现的用户态数据捕获工具。能够无需CA证书即可捕获HTTPS和TLS通信的明文内容,非常适合于网络监控、安全审计和故障排查等场
  • 2024-11-24基于eBPF验证iptables mark设置在skb mark字段上
    结论iptables设置的mark加在了skb的mark字段上,不是报文里面。skb是报文载体,skb的data指针指向报文起始地址,data_end指针指向报文终止地址。验证#只针对icmp发包设置mark12345iptables-tmangle-AOUTPUT-picmp--icmp-typeecho-request-jMARK--set-mark12345主机
  • 2024-11-30测试
    includeincludedefineINF1e5usingnamespacestd;intflag[1000];intminu(pair<int,int>*a,intn){inti;pair<int,int>min={INF,INF};intm=-1;for(i=0;i<n;i++){if(!flag[i]&&min>a[i]){min=a[i];m=i;}}returnm;}pair<
  • 2024-10-11内核级流量治理引擎Kmesh八大新特性解读
    本文分享自华为云社区《内核级流量治理引擎Kmeshv0.5发布!进击的Sidecarless服务网格》,作者:云容器大未来。我们非常高兴地宣布Kmeshv0.5.0的发布。首先,感谢我们的贡献者在过去两个月中的辛勤工作。在v0.5.0版本中,我们进行了许多重要的增强,包括命令行工具kmeshctl、更全面
  • 2024-09-13Cilium网络插件
    一、基础知识:eBPF和XDP1.1BPF全称为“BerkeleyPacketFilter”,于1997年自Linux2.1.75版本的内核引入。基于寄存器(CPU之上的小型存储空间)的虚拟机,运行于内核空间。主要功能包括:负责运行从用户空间(通过系统调用)注入的代码而无须对内核进行编程(开发内核模块)。使用自定义的64
  • 2024-09-06Buzzer:一款针对eBPF的安全检测与模糊测试工具
    关于BuzzerBuzzer是一款功能强大的模糊测试工具链,该工具基于Go语言开发,可以帮助广大研究人员简单高效地开发针对eBPF的模糊测试策略。功能介绍下面给出的是当前版本的Buzzer整体架构:元素解析:1、ControlUnit:通过命令行标志--fuzzing_strategy启动指定的FuzzingStra
  • 2024-09-03观测云核心技术解密:eBPF Tracing 实现原理
    前言eBPF是一种强大的内核技术,允许在内核中安全地执行自定义代码。通过eBPF,开发者可以在不修改内核源码的情况下,对内核功能进行扩展和监控。eBPFTracing利用这一技术,对系统调用、内核函数等进行跟踪,从而实现对应用行为的深入洞察。与传统的监控方式相比,eBPFTracing具有以下
  • 2024-08-26数据库性能诊断利器 聚好看DBdoctor亮相中国数据库技术大会
       2024年8月22-24日,备受瞩目的第15届中国数据库技术大会(DTCC2024)于北京隆总召开。数字化创新浪潮汹涌澎湃,数据库作为信息技术的核心基础设施,正以前所未用的速度推动各行各业的智能化升级。作为在数据库技术领域率先掌握前沿eBPF技术的企业,聚好看科技于本次大会展示自研数据
  • 2024-08-20使用cilium开发ebpf程序
    使用go开发ebpf程序最常见的一个框架就是cilium。开发前需要了解ebpf,了解go语言的基础知识。在本地安装go之后下载bpf2gogogetgithub.com/cilium/ebpf/cmd/bpf2go从最简单的开发框架开始下载示例源码gitclonehttps://github.com/cilium/ebpf.git在ebpf/examples下是官方
  • 2024-08-14(转)《eBPF 核心技术与实战》
    原文:https://fanlv.fun/2022/11/05/study-ebpf/概览eBPF 是什么呢?从它的全称“扩展的伯克利数据包过滤器(ExtendedBerkeleyPacketFilter)”来看,它是一种数据包过滤技术,是从 BPF(BerkeleyPacketFilter) 技术扩展而来的。BPF 提供了一种在内核事件和用户程序事件发
  • 2024-07-30基于BPF提升postgres可观测性的前提或条件
    最近看到一个新产品(dbdoctor)使用了eBPF技术,可实现对sql级别的监控,其涵盖了,cpu,内存,io,网络等,功能非常强大,目前mysql版本的已经开卖了。经过一番了解发现,该技术对于数据库的性能分析,故障排查方面很有用处。下面对了解到的内容总结一下。参考:Linux可观测性BPF&eBPF以及BCC&bpf
  • 2024-07-16eBPF bpf_redirect函数
    函数定义https://www.man7.org/linux/man-pages/man7/bpf-helpers.7.html网卡响应报文网卡要响应报文,不是经过该网卡就可以。报文必须进入这个网口才行,bpf_redirect表示进入这个网口(虚拟机网口除外,需要指定BPF_F_INGRESS才行)。因为网卡响应在tcingress之前,所以左侧流程虚拟
  • 2024-07-12基于eBPF的procstat软件追踪程序Offcpu时间
    在现代计算机系统中,性能调优和问题诊断是大家经常会面临的问题,解决这些性能问题是确保程序高效运行的关键。有时不知为何程序的吞吐量和时延出现抖动,有一种可能就是程序发生了Offcpu。了解程序的Offcpu时间有助于识别潜在的性能瓶颈和系统资源调度问题。今天,我们将介绍一
  • 2024-07-11eBPF 容器持久化map到宿主机上
    问题现象k8s上启动pod后,使用主机网络的容器,加载eBPF程序到网口上,持久化map只能保存在容器文件系统/sys/fs/bpf中。容器复位后,新容器与原来eBPF程序使用的不是同一个map。问题分析新容器使用新的文件系统,无法找回原来的/sys/fs/bpf挂载点,需要持久化到宿主机上。k8s挂载传播,实现
  • 2024-07-11eBPF 用户态和内核态基于ringbuf交互
    相比于perf_event_array,ringbuf优势在于1.读取数据是有序的,即提交顺序和消费顺序保持一致。2.避免数据复制,即提交数据到map和传递到用户态都不需要拷贝。内核态ringbuf/ringbuf.c#include"../headers/vmlinux.h"#include"../headers/bpf_endian.h"#include"../headers/b
  • 2024-07-09基于eBPF的procstat软件追踪等待锁和持有锁的时间
    在并发编程中,锁的使用是保证线程安全的重要手段。然而,过度使用锁或者锁竞争可能导致性能瓶颈。为了分析程序中锁的使用情况,我们可以借助procstat软件来追踪程序加锁时间和等待锁的时间。procstat是一个基于eBPF(extendedBerkeleyPacketFilter)的软件,能够对系统的各种行为进
  • 2024-07-08香橙派编译linux内核支持ebpf和虚拟WIFI
    前言上一篇文章香橙派5plus上跑云手机方案一redroid(带硬件加速)中说了怎么运行redroid,这篇补一下怎么修改参数编译内核。补充上篇文章有个内容需要补充一下:更新完内核需要用下面的命令防止内核被apt更新,不然后面使用aptupdate又回到官方的内核(注意版本号,当前是1009)。sudo
  • 2024-05-27cilium 基础
    cilium概述Cilium是一种网络、可观察性和安全解决方案,具有基于eBPF的数据平面。它提供了一个简单的扁平第3层网络,能够以本机路由或覆盖模式跨越多个集群。它具有L7协议感知能力,可以使用与网络寻址分离的基于身份的安全模型在L3-L7上实施网络策略。Cilium为Pod之间
  • 2024-05-21Kmesh进入CNCF云原生全景图,实现网格治理sidecarless化
    本文分享自华为云社区《Kmesh进入CNCF云原生全景图》 ,作者:云容器大未来。近日,Kmesh 正式进入CNCF云原生全景图,位于ServiceMesh 类别下。CNCFLandscape在云原生实践过程中的每个环节帮助用户了解有哪些具体的软件和产品选择,Kmesh进入CNCFLandscape,成为了CNCF构建云
  • 2024-05-19eBPF常用map类型
    map种类map类型特点HashMapBPF_MAP_TYPE_HASHhashmap。BPF_MAP_TYPE_PERCPU_HASHpercore的hashmap。BPF_MAP_TYPE_LRU_HASHmap塞满之后,继续插入,自动删除最近最少使用的entry。ArrayMapBPF_MAP_TYPE_ARRAY数组,key是整数。