You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@apisix.apache.org by ≮云微≯ <10...@qq.com.INVALID> on 2022/07/24 07:12:55 UTC

Re: [DISCUSS]Do we need to create a new subproject of the Apache APISIX for profiling

Hi community! My name is YuSheng Zheng and I am an Open Source Promotion Plan 
2022 student working with hui li(yousa). This Apache APISIX Profile tool is a
OSPP project and the initial content will be developed by us.

Currently we already have a prove-of-concept demo repo for this tool, which 
can be the initial content for this project in the future:

https://github.com/yunwei37/nginx-lua-ebpf-toolkit

This POC is written in C/C++ with libbpf, and can be used as a binary cmd 
tool run on any supported Kernel versions. More details about how it works can 
be found in this POC repo.

I would like to hear comments and suggestions from the community. 
Thanks very much!

Jintao Zhang <zh...@apache.org> 于2022年7月23日(星期六) 晚上11:17写道:

&gt; Hi, hui
&gt; 
&gt; I'm also looking forward to see such a project.
&gt; 
&gt; But I have a few questions:
&gt; 
&gt; * Where did the initial content for this project come from?
&gt; * Who will develop the initial content for this project?
&gt; 
&gt; Also, from the description I don't see the relevant design of this project,
&gt; if there is more detailed information, I will upvote +1
&gt; 
&gt; Zexuan Luo <sp...@apache.org> 于2022年7月22日周五 10:40写道:
&gt; 
&gt; &gt; Do we need to create a new subproject of the Apache APISIX for profiling
&gt;
&gt; Yes, I will vote for it. I am looking forward to such a project!
&gt;
&gt; hui li <yo...@apache.org> 于2022年7月21日周四 15:51写道:
&gt; &gt;
&gt; &gt; The current Apache APISIX Profile tool is based on systemtap, which can
&gt; &gt; draw flame maps for Apache APISIX, but the original project is no longer
&gt; &gt; continuously maintained, and Systemtap is not friendly to new versions of
&gt; &gt; the kernel support, the tool is more complicated to use (you need to
&gt; &gt; install systemtap, debug symbol, etc.)
&gt; &gt;
&gt; &gt; So I would like to discuss that, 'Do we need to create a new subproject
&gt; of
&gt; &gt; the Apache APISIX for profiling?'
&gt; &gt;
&gt; &gt; Considering the functionality of the project, I think it is more
&gt; &gt; appropriate to call the subproject 'apisix-profile'.
&gt; &gt;
&gt; &gt; Subroject Function List:
&gt; &gt; 1. Use eBPF to capture and parse lua call stack information in Apache
&gt; &gt; APISIX, summarize it and generate cpu flame graphs.
&gt; &gt; 2. Use eBPF to capture and parse both C and Lua mixed call stack
&gt; &gt; information, summarize it and generate cpu flame graph.
&gt; &gt; 3. Support fetching Apache APISIX processes running in Docker
&gt; &gt; 4. Support to get Apache APISIX Openresty luajit 32/luajit 64 mode
&gt;</y...@apache.org>