← Back
Trending
OpenResty XRay Aug 24, 2022
OpenResty XRay Aug 24, 2022
Resolving Bilibili’s major site incident with OpenResty XRay

- The incident
- Process of resolution
- Hardening after the incident
- OpenResty XRay Services
OpenResty XRay Feb 18, 2023
OpenResty XRay Feb 18, 2023
When Lua IPC Pipes Block OpenResty or Nginx's Event Loops

- The Problem
- Analyses
- Solutions
- Results
OpenResty XRay Feb 16, 2023
OpenResty XRay Feb 16, 2023
The Wonderland of Dynamic Tracing (Part 1 of 3)

- Dynamic Tracing
- What It Is
- Too Good to be True?
- How it Works
- Still Having Doubts?
- The Advantages of Dynamic Tracing
- DTrace
- SystemTap
- DTrace and SystemTap
- Applications of SystemTap in Production
OpenResty XRay Jan 14, 2023
OpenResty XRay Jan 14, 2023
Automatic Analysis Reports in OpenResty XRay

- The Past
- The Present
- The Future
OpenResty XRay Aug 31, 2020
OpenResty XRay Aug 31, 2020
Introduction to Lua-Land CPU Flame Graphs

- What is a Flame Graph
- Simple Lua samples
- Complicated Lua applications
- Sampling overhead
- Safety
- Compatibility
- Other types of Lua-land Flame Graphs
OpenResty XRay Aug 10, 2020
OpenResty XRay Aug 10, 2020
Memory Fragmentation in OpenResty and Nginx's Shared Memory Zones

- An empty zone
- Filling entries of similar sizes
- Deleting odd-numbered keys
- Deleting the keys in the first half
- Mitigating Fragmentation
OpenResty XRay Aug 4, 2020
OpenResty XRay Aug 4, 2020
How OpenResty and Nginx Shared Memory Zones Consume RAM

- Slabs and pages
- What is allocated is not what is paid for
- Fake Memory Leaks
- HUP reload
OpenResty XRay Jan 21, 2020
OpenResty XRay Jan 21, 2020
How OpenResty and Nginx Allocate and Manage Memory

- On The System Level
- On The Application Level
- For Traditional Nginx Servers
Latest Articles
OpenResty XRay Jul 8, 2025
OpenResty XRay Jul 8, 2025
Case Study: How to Trace a Memory Leak Caused by an LRU Cache Using OpenResty XRay

- The Silent Killer: How Invisible Memory Leaks Threaten Business Stability
- A Deep Dive into a Memory Leak Investigation
- From Predicament to Breakthrough: A Pinpoint Diagnosis
OpenResty XRay Jul 2, 2025
OpenResty XRay Jul 2, 2025
Performance Breakthrough: 60% DNS Optimization Success with OpenResty XRay

- When the “Lifeline” DNS Service Faces a Performance Crisis
- How to Investigate the Culprit Step by Step with OpenResty XRay
- Precision “Treatment”: Three Steps to Rebirth
- Summary: What We Achieved in Just a Few Minutes
- What is OpenResty XRay
OpenResty XRay Jul 1, 2025
OpenResty XRay Jul 1, 2025
The Swiss Army Knife for Dynamic Tracing, How Ylang Tames Complexity

- Industry Pain Point: Why We Desperately Need a New Tracing Language
- The Core Tech: What Makes Y Language a Game-Changer?
- Ylang Syntax: The Familiarity of C, The Power of Advanced Tracing
- Killer Applications: Solving Problems Beyond the Reach of Traditional Tools
- Universal Platform Support: Y Lang Goes Everywhere
- Compiler Wizardry: Forging a Superior Language with Superior Tools
OpenResty XRay Jun 27, 2025
OpenResty XRay Jun 27, 2025
Why Dynamic Tracing is the Future of Production Troubleshooting

- The Unseen Crisis in Modern Software
- Why Traditional Tools Are Failing
- Dynamic Tracing: The New Paradigm for Troubleshooting
- The OpenResty XRay Difference
- From Firefighting to True Observability
OpenResty XRay Jun 27, 2025
OpenResty XRay Jun 27, 2025
Major Breakthrough for OpenResty XRay: Non-Intrusive Analysis of Java Application Memory & Envoy Lua Performance

- Gain Complete Insight into Java Application Memory, Non-Intrusively
- Unlocking the Lua Performance Black Box Inside Envoy
- The Road Ahead
Archives
2025 Jul
2025 Jun
2025 May
- OpenResty 1.27.1.2 Released May 30, 2025
- Deep Dive into Dynamic Tracing Technology: How OpenResty XRay Revolutionizes Problem Diagnosis May 30, 2025
- Why is Dynamic Tracing Difficult to Implement? How Does OpenResty XRay Break Through? May 26, 2025
- Traditional Methods vs. Dynamic Tracing: A Revolution in Efficiency and Control May 26, 2025
- The Next Stop for Observability: How OpenResty XRay Redefines Problem Troubleshooting May 26, 2025
- From Black Box to White Box: OpenResty XRay Makes System Issues Nowhere to Hide May 7, 2025
2025 Apr
- OpenResty XRay Empowers LLVM clang Performance Optimization Practices April 18, 2025
- Self-Optimization: The Performance Evolution of OpenResty XRay April 17, 2025
- OpenResty XRay Helps Boost Script Performance by 44 Times April 7, 2025
- Cross-Media Data Structure Drift: OpenResty XRay Enables 20x Performance Improvement April 3, 2025
- From OOM to O(1): The Implementation Path of Streaming JSON Parser April 2, 2025
- From Days to Hours: How OpenResty XRay Accelerated the Linux shred Tool by Dozens of Times April 1, 2025
2024 Oct
2024 Sep
2024 Aug
2024 Jun
2024 May
- Pinpointing the Hottest Rust Code Paths with High Disk I/O (using OpenResty XRay) May 24, 2024
- Introduction to OpenResty XRay Mobile Apps May 12, 2024
- Locate Large Memory Objects inside PHP Processes (using OpenResty XRay) May 11, 2024
- Enable Automatic Healthcheck for Gateway Servers in OpenResty Edge May 8, 2024
2024 Apr
2024 Mar
- How to Trace Exceptions inside Perl Applications (using OpenResty XRay) March 30, 2024
- Analyze OpenResty/Nginx Applications without Debug Symbols (using OpenResty XRay) March 27, 2024
- Automatic Core Dump Analysis (using OpenResty XRay) March 13, 2024
- Install OpenResty XRay’s Agents on Amazon Linux via Package Bundles March 11, 2024
- Pinpointing the Hottest Go Code Paths with High Disk I/O (using OpenResty XRay) March 10, 2024
2024 Feb
- Control Access to DNS Applications in OpenResty Edge's Admin Console February 28, 2024
- Pinpointing the hottest PHP code paths with high CPU usage (using OpenResty XRay) February 27, 2024
- How CPU Time is Spent inside Envoy Servers (using OpenResty XRay) February 27, 2024
- How to Locate Exceptions inside Go Applications (using OpenResty XRay) February 19, 2024
- Call Lua modules by Edgelang in OpenResty Edge February 6, 2024
- How CPU Time is Spent inside PHP Laravel Apps (using OpenResty XRay) February 1, 2024
2024 Jan
- Find Blocking Perl Code Paths Holding back CPU Usage (Using OpenResty XRay) January 26, 2024
- How to Locate Exceptions inside Rust Applications (using OpenResty XRay) January 19, 2024
- Pinpointing CPU-Hottest Go Code Paths Inside Prometheus (using OpenResty XRay) January 16, 2024
- OpenResty 1.25.3.1 Released January 12, 2024
- Global Search in OpenResty Edge January 7, 2024
2023 Dec
- How to Diagnose HTTP 504 Timeout Errors using OpenResty XRay December 29, 2023
- Performance Overhead of OpenResty XRay when Tracing Perl Apps December 25, 2023
- How CPU Time is Spent inside Go’s CockroachDB (using OpenResty XRay) December 25, 2023
- How to Use Gateway Staging Servers in OpenResty Edge December 21, 2023
- Locate Large Memory Objects inside Perl Processes (using OpenResty XRay) December 15, 2023
- Performance Overhead of OpenResty XRay when Tracing Go Apps December 7, 2023
- Install OpenResty XRay’s Agents on Ubuntu via Deb Packages December 5, 2023
- Configuring Webhooks in OpenResty Edge December 4, 2023
- Performance Impact of OpenResty XRay when Tracing PHP Apps (using OpenResty XRay) December 1, 2023
2023 Nov
- Performance Impact of OpenResty XRay when Tracing Rust Apps (using OpenResty XRay) November 27, 2023
- Performance Impact of OpenResty XRay when Tracing Python Apps (using OpenResty XRay) November 27, 2023
- Dynamic-Tracing Custom Go Programs with Custom Ylang Analyzers (using OpenResty XRay) November 24, 2023
- Configure Custom Error Pages in OpenResty Edge November 23, 2023
- Configure DNS Records in OpenResty Edge November 21, 2023
- Adding Custom Response Headers in OpenResty Edge November 15, 2023
- How to Use OpenResty Edge's Global Server Load Balancing (GSLB) Feature November 9, 2023
2023 Oct
2023 Sep
- How CPU time is spent inside Rust’s Sled library (using OpenResty XRay) September 28, 2023
- Find the largest Python objects or values taking the most RAM (using OpenResty XRay) September 28, 2023
- How CPU time is spent inside Go's etcd server (using OpenResty XRay) September 27, 2023
- How CPU time is spent inside llama.cpp + LLaMA2 (using OpenResty XRay) September 21, 2023
- Find Blocking Go Code Paths Holding back CPU Usage (Using OpenResty XRay) September 1, 2023
2023 Aug
- Pinpointing the hottest Go code paths with high CPU usage (using OpenResty XRay) August 23, 2023
- Pinpointing the blocking Python code paths (using OpenResty XRay) August 8, 2023
- Two bugs in Linux kernels' tracing subsystem (found by OpenResty XRay) August 6, 2023
- Pinpointing hottest Perl code paths (using OpenResty XRay) August 4, 2023
2023 Jul
- Pinpointing hottest Lua code paths in online OpenResty/Nginx servers (using OpenResty XRay) July 28, 2023
- OpenResty 1.21.4.2 Released July 28, 2023
- Memory and CPU usage statistics among Kong plugins online (using OpenResty XRay) July 15, 2023
- How we solved a CPU bottleneck caused by Lua exceptions in a custom Kong plugin (using OpenResty XRay) July 15, 2023
- Troubleshooting the extra 200-ms request latency online July 5, 2023
2023 Jun
- EdgeLang: A Powerful and Efficient Language for Gateway Logic June 30, 2023
- Pinpointing leaked Lua tables with OpenResty XRay's command-line tools June 27, 2023
- Real-Time Request Counting against Nginx Processes via YSQL June 23, 2023
- Using request IDs to troubleshoot problematic requests in OpenResty Edge gateways June 7, 2023
- Configuring hCaptcha’s captcha webpages in OpenResty Edge June 6, 2023
- Pushing static resources to OpenResty Edge gateways June 5, 2023
- Configuring SNI proxies in OpenResty Edge June 5, 2023
- Configuring the built-in captcha webpages in OpenResty Edge June 3, 2023
2023 May
- Configuring gateway access log files in OpenResty Edge May 30, 2023
- Load-balancing TCP applications via OpenResty Edge May 29, 2023
- Configuring error log files in OpenResty Edge May 28, 2023
- Configuring sticky cookies in OpenResty Edge gateways May 25, 2023
- How to use standard dynamic metrics in OpenResty Edge May 22, 2023
- Managing traffic to Kubernetes (K8s) upstreams in OpenResty Edge May 8, 2023
- How to deploy the on-premises version of OpenResty XRay on Microsoft's Azure cloud May 5, 2023
2023 Apr
- High-Performance Web Application Firewall (WAF) in OpenResty Edge April 25, 2023
- Configure distributed gRPC proxy in OpenResty Edge April 25, 2023
- The EdgeLang DSL in OpenResty Edge April 19, 2023
- OpenResty 1.21.4.2 RC1 is out April 17, 2023
- How to pass the real client IP addresses to backend servers via special request headers April 12, 2023
2023 Feb
- When Lua IPC Pipes Block OpenResty or Nginx's Event Loops February 18, 2023
- The Wonderland of Dynamic Tracing (Part 3 of 3) February 16, 2023
- The Wonderland of Dynamic Tracing (Part 2 of 3) February 16, 2023
- The Wonderland of Dynamic Tracing (Part 1 of 3) February 16, 2023
- Optimize Memory Fragmentation due to Huge Nginx Configuration February 14, 2023
- New FAQ Doc for OpenResty XRay February 7, 2023
2022 Jun
2021 Dec
2021 Nov
2021 Sep
- Auto-Generate Demo Videos for Google Search from Screenplay Docs (via OpenResty Showman) September 26, 2021
- Set Different Host Headers for Upstream Requests in OpenResty Edge September 16, 2021
- Official OpenResty Debian 11 package repo September 9, 2021
- Redirect to different URIs Based on Clients' Language Settings (OpenResty Edge) September 6, 2021
2021 Jun
2021 May
2021 Apr
2021 Mar
2021 Feb
2020 Dec
2020 Nov
- Install OpenResty on CentOS 8 via dnf November 30, 2020
- The resty Command-Line Utility Demo November 29, 2020
- Memory Reduced by 60%, OpenResty XRay Precisely Locates Problem Code, Quickly Completes Fixes and Deployment November 19, 2020
- Write Your Own Lua Modules for OpenResty Applications November 15, 2020
- Hello World HTTP Example in OpenResty November 14, 2020
- OpenResty 1.19.3.1 released November 5, 2020