Ylang is our universal dynamic tracing language that is compatible with C. It is employed in the OpenResty XRay product, which includes a Web IDE. This IDE allows users to use Ylang for writing and running various dynamic tracing analysis tools.
For instance, a demonstration screenshot shows the use of Ylang to create a custom dynamic tracing tool. This tool places a dynamic probe on the `ngx_http_finalize_request` function of Nginx, printing information such as the URI, URI parameters, and response status codes of up to five requests when the probe is triggered.
The screenshot displays the entered Ylang source code (seen in the top-left editing box), the configuration of the application being traced (top-right), and the output after running it online (in the black box at the bottom-left).
![ylang.jpeg](https://groups.google.com/group/openresty-en/attach/19111898d2519/ylang.jpeg?part=0.1&view=1)
Ylang can be executed through various backends, including eBPF+, making it suitable for online production environments. The target application being traced does not require any modifications or restarts, ensuring a 100% non-intrusive process.
Compared to other open-source dynamic tracing languages like BCC, eBPF C, bpftrace, D language of dtrace, systemtap's scripting language, and gdb python, Ylang is significantly more concise and powerful.
For more details about Ylang, refer to a series of articles I previously published:
https://blog.openresty.com/en/ylang-intro-part1/