← Back
Openresty-Xray

OpenResty XRay Web Console: Insights, Dashboards & Guided Root-Cause Analysis

  • What the Insights page shows
  • How to read an analysis report
  • What metrics the Dashboard shows
  • Diagnosing high CPU usage with Guided Analysis
  • Configuring an OpenResty XRay agent
  • What is OpenResty XRay
  • What the Insights page shows
  • How to read an analysis report
  • What metrics the Dashboard shows
  • Diagnosing high CPU usage with Guided Analysis
  • Configuring an OpenResty XRay agent
  • What is OpenResty XRay

Diagnosing High Disk I/O in Python Applications with XRay

  • Identifying the Python process with high disk I/O
  • Tracing Python disk read and write code paths with flame graphs
  • Automatic disk I/O analysis and reports
  • What is OpenResty XRay
  • Frequently Asked Questions
  • Identifying the Python process with high disk I/O
  • Tracing Python disk read and write code paths with flame graphs
  • Automatic disk I/O analysis and reports
  • What is OpenResty XRay
  • Frequently Asked Questions

Install OpenResty XRay’s Agents on Kubernetes cluster

  • Logging in to the Console
  • Installing the Agent on Kubernetes cluster
  • Configuring and Detecting Applications
  • Initiating Analyzers and Viewing Insights
  • Install Another Agent
  • What is OpenResty XRay
  • Logging in to the Console
  • Installing the Agent on Kubernetes cluster
  • Configuring and Detecting Applications
  • Initiating Analyzers and Viewing Insights
  • Install Another Agent
  • What is OpenResty XRay

Why Your Rust Process Has High Disk I/O (and How to Find the Cause)

  • Identifying the Rust process with high disk I/O
  • Tracing the hottest Rust disk write code paths with flame graphs
  • Automatic disk I/O analysis and reports
  • What is OpenResty XRay
  • Frequently Asked Questions
  • Identifying the Rust process with high disk I/O
  • Tracing the hottest Rust disk write code paths with flame graphs
  • Automatic disk I/O analysis and reports
  • What is OpenResty XRay
  • Frequently Asked Questions

OpenResty XRay Mobile Apps: Monitor and Troubleshoot Your Apps from Android & iOS

  • Download and install OpenResty XRay for Android
  • Sign into OpenResty XRay
  • Automatic analysis report
  • View the performance chart data on the dashboard page
  • Guided analysis feature
  • Frequently asked questions
  • What is OpenResty XRay
  • Download and install OpenResty XRay for Android
  • Sign into OpenResty XRay
  • Automatic analysis report
  • View the performance chart data on the dashboard page
  • Guided analysis feature
  • Frequently asked questions
  • What is OpenResty XRay

PHP Memory Profiler: Locate the Largest Memory Objects in a Live PHP Process

  • Symptom: a PHP process using high memory in top
  • Profile the process with OpenResty XRay guided analysis to find the largest PHP objects
  • Trace the largest object back to its source line
  • Monitor PHP process memory automatically with Insights reports
  • FAQ
  • What is OpenResty XRay
  • Symptom: a PHP process using high memory in top
  • Profile the process with OpenResty XRay guided analysis to find the largest PHP objects
  • Trace the largest object back to its source line
  • Monitor PHP process memory automatically with Insights reports
  • FAQ
  • What is OpenResty XRay

Use C++ to Dynamic-Trace C++ Applications

  • Setting Up the Target C++ Program
  • Crafting the C++ (or Y++) Analyzer
  • Operationalizing the Target and Analyzer
  • Advancing Support for Complex C++ Applications
  • About the Debug Symbols
Photo by Yichun Zhang
  • Setting Up the Target C++ Program
  • Crafting the C++ (or Y++) Analyzer
  • Operationalizing the Target and Analyzer
  • Advancing Support for Complex C++ Applications
  • About the Debug Symbols

Erlang High CPU Usage: PCRE Regex Bottleneck Traced with Flame Graphs

  • Observing 200%+ CPU in an Erlang Process
  • Profiling Erlang CPU Usage with OpenResty XRay
  • C-Level Analysis: erts_pcre_exec and PCRE Backtracking
  • Why PCRE Regex Backtracking Is Expensive in the BEAM VM
  • Automatic Monitoring and Reports
  • FAQ: Erlang High CPU Usage
  • What is OpenResty XRay
  • Observing 200%+ CPU in an Erlang Process
  • Profiling Erlang CPU Usage with OpenResty XRay
  • C-Level Analysis: erts_pcre_exec and PCRE Backtracking
  • Why PCRE Regex Backtracking Is Expensive in the BEAM VM
  • Automatic Monitoring and Reports
  • FAQ: Erlang High CPU Usage
  • What is OpenResty XRay

Nginx 'No Debugging Symbols Found'? Rebuild Them Automatically with OpenResty XRay

  • Confirming Nginx Is Stripped and Debug Symbols Are Missing
  • Rebuild Missing Nginx Debug Symbols Automatically — No Recompile Needed
  • Continuous Analysis: Daily and Weekly Insights Reports
  • FAQ: nginx-dbg, recompiling, and profiling stripped binaries
  • Confirming Nginx Is Stripped and Debug Symbols Are Missing
  • Rebuild Missing Nginx Debug Symbols Automatically — No Recompile Needed
  • Continuous Analysis: Daily and Weekly Insights Reports
  • FAQ: nginx-dbg, recompiling, and profiling stripped binaries

Automatic Core Dump Analysis (using OpenResty XRay)

  • Locate the core dump file from a crashed OpenResty/Nginx worker
  • Start automatic (guided) core dump analysis in OpenResty XRay
  • Read the signal, CPU registers, and C backtrace of the crash
  • Follow the Lua backtrace to the exact crashing line
  • Automatic Insights reports for online core dumps
  • Locate the core dump file from a crashed OpenResty/Nginx worker
  • Start automatic (guided) core dump analysis in OpenResty XRay
  • Read the signal, CPU registers, and C backtrace of the crash
  • Follow the Lua backtrace to the exact crashing line
  • Automatic Insights reports for online core dumps

Install OpenResty XRay’s Agents on Amazon Linux via Package Bundles

  • Logging in to the Console
  • Installing the Agent via Bundle Packages
  • Configuring and Detecting Applications
  • Initiating Analyzers and Viewing Insights
  • Install Another Agent
  • What is OpenResty XRay
  • Logging in to the Console
  • Installing the Agent via Bundle Packages
  • Configuring and Detecting Applications
  • Initiating Analyzers and Viewing Insights
  • Install Another Agent
  • What is OpenResty XRay

Debugging High Disk I/O in Go Services on Linux

  • Identifying the Go process with high disk I/O
  • Tracing Go disk read and write code paths with flame graphs
  • Automatic disk I/O analysis and reports
  • What is OpenResty XRay
  • Frequently Asked Questions
  • Identifying the Go process with high disk I/O
  • Tracing Go disk read and write code paths with flame graphs
  • Automatic disk I/O analysis and reports
  • What is OpenResty XRay
  • Frequently Asked Questions

Envoy CPU Profiling: Find Hot C++ Paths with Flame Graphs

  • Scenario: Envoy Proxy Running at 90% CPU
  • Profile Envoy CPU with C++ Flame Graphs
  • Continuous CPU Monitoring with Automated Reports
  • What is OpenResty XRay
  • FAQ: Envoy CPU Profiling
  • Scenario: Envoy Proxy Running at 90% CPU
  • Profile Envoy CPU with C++ Flame Graphs
  • Continuous CPU Monitoring with Automated Reports
  • What is OpenResty XRay
  • FAQ: Envoy CPU Profiling

PHP High CPU Usage: Find the Hottest Code Path with OpenResty XRay

  • Problem: high CPU usage
  • Find which PHP function is using the CPU with OpenResty XRay Guided Analysis
  • Read the CPU flame graph and the hottest PHP and C code paths
  • Automatic analysis and reports
  • What is OpenResty XRay
  • Problem: high CPU usage
  • Find which PHP function is using the CPU with OpenResty XRay Guided Analysis
  • Read the CPU flame graph and the hottest PHP and C code paths
  • Automatic analysis and reports
  • What is OpenResty XRay

Laravel High CPU Usage: Why Even Hello World Burns Half Its CPU

  • Why Laravel uses high CPU even in hello world apps
  • Laravel CPU profiling: the three hottest code paths
  • Automatic analysis and reports
  • What is OpenResty XRay
  • Why Laravel uses high CPU even in hello world apps
  • Laravel CPU profiling: the three hottest code paths
  • Automatic analysis and reports
  • What is OpenResty XRay

Perl Process Stuck at 13% CPU: Off-CPU Flame Graphs Pinpoint a Blocking HTTP Call

  • The symptom: Perl process CPU usage stays low under heavy requests
  • Find the blocking Perl code paths with OpenResty XRay’s off-CPU flame graphs
  • Automatic analysis and reports in the Insights page
  • FAQ
  • What is OpenResty XRay
  • About The Author
  • The symptom: Perl process CPU usage stays low under heavy requests
  • Find the blocking Perl code paths with OpenResty XRay’s off-CPU flame graphs
  • Automatic analysis and reports in the Insights page
  • FAQ
  • What is OpenResty XRay
  • About The Author

Pinpointing CPU-Hottest Go Code Paths Inside Prometheus (using OpenResty XRay)

  • Problem: high CPU usage
  • Use the guided analysis feature of OpenResty XRay to spot the CPU-hottest Go code paths
  • Automatic analysis and reports
  • What is OpenResty XRay
  • Problem: high CPU usage
  • Use the guided analysis feature of OpenResty XRay to spot the CPU-hottest Go code paths
  • Automatic analysis and reports
  • What is OpenResty XRay

How to Diagnose 504 Gateway Timeout Errors in OpenResty & Nginx

  • Confirm HTTP 504 gateway timeout errors in the OpenResty/Nginx access log
  • Diagnose the 504 root cause with OpenResty XRay Guided Analysis
  • Slow upstream, slow network link, or a too-short timeout setting
  • Automatic root-cause reports on the Insights page
  • Confirm HTTP 504 gateway timeout errors in the OpenResty/Nginx access log
  • Diagnose the 504 root cause with OpenResty XRay Guided Analysis
  • Slow upstream, slow network link, or a too-short timeout setting
  • Automatic root-cause reports on the Insights page

CockroachDB High CPU Usage: Profiling a Live Go Server with Flame Graphs

  • Problem: CockroachDB high CPU usage
  • Find the most CPU-intensive Go code paths with guided analysis
  • Automatic CPU analysis and reports
  • What is OpenResty XRay
  • Problem: CockroachDB high CPU usage
  • Find the most CPU-intensive Go code paths with guided analysis
  • Automatic CPU analysis and reports
  • What is OpenResty XRay

Locate the Largest Memory Objects in a Live Perl Process

  • Symptom: a Perl process using high memory in top
  • Profile the process with OpenResty XRay guided analysis to find the largest Perl objects
  • Trace the largest object back to its source file
  • Monitor Perl process memory automatically with Insights reports
  • FAQ
  • What is OpenResty XRay
  • Symptom: a Perl process using high memory in top
  • Profile the process with OpenResty XRay guided analysis to find the largest Perl objects
  • Trace the largest object back to its source file
  • Monitor Perl process memory automatically with Insights reports
  • FAQ
  • What is OpenResty XRay

Install OpenResty XRay’s Agents on Ubuntu via Deb Packages

  • Logging in to the Console
  • Installing the Agent via Deb Packages
  • Checking the Agent Status and Logs
  • Configuring and Detecting Applications
  • Initiating Analyzers and Viewing Insights
  • Install Another Agent
  • What is OpenResty XRay
  • Logging in to the Console
  • Installing the Agent via Deb Packages
  • Checking the Agent Status and Logs
  • Configuring and Detecting Applications
  • Initiating Analyzers and Viewing Insights
  • Install Another Agent
  • What is OpenResty XRay

Performance Impact of OpenResty XRay when Tracing PHP Apps

  • What Happens to CPU, Memory, and Load During Profiling?
  • How Much Does Profiling Affect Throughput and Latency?
  • OpenResty XRay vs. Always-On APM Agents
  • FAQ
  • What Happens to CPU, Memory, and Load During Profiling?
  • How Much Does Profiling Affect Throughput and Latency?
  • OpenResty XRay vs. Always-On APM Agents
  • FAQ

Tested in Production: The Performance Impact of OpenResty XRay When Tracing Rust Applications

  • What Happens to CPU, Memory, and Load During Profiling?
  • How Much Does Profiling Affect Throughput and Latency?
  • OpenResty XRay vs. Always-On APM Agents
  • FAQ
  • What Happens to CPU, Memory, and Load During Profiling?
  • How Much Does Profiling Affect Throughput and Latency?
  • OpenResty XRay vs. Always-On APM Agents
  • FAQ

Dynamic-Tracing Custom Go Programs with Custom Ylang Analyzers (using OpenResty XRay)

  • Insert two key-value Pairs into a Go Variable
  • Write a Customize Ylang Analyzer to Dynamically Trace the Go program
  • Test the Results
  • What is OpenResty XRay
  • Insert two key-value Pairs into a Go Variable
  • Write a Customize Ylang Analyzer to Dynamically Trace the Go program
  • Test the Results
  • What is OpenResty XRay

Django Memory Profiler: Analyze Object-Level Memory Usage in a Live App

  • Spot a high-memory Django process with ps
  • Profile the Django app’s memory usage with Guided Analysis
  • Read the flame graph: which Python module uses the most memory
  • Monitor Django memory usage automatically with Insights
  • What is OpenResty XRay
  • Spot a high-memory Django process with ps
  • Profile the Django app’s memory usage with Guided Analysis
  • Read the flame graph: which Python module uses the most memory
  • Monitor Django memory usage automatically with Insights
  • What is OpenResty XRay

Install OpenResty XRay’s Agents on CentOS via RPM Packages

  • Logging in to the Console
  • Installing the Agent via RPM Packages
  • Checking the Agent Status and Logs
  • Configuring and Detecting Applications
  • Initiating Analyzers and Viewing Insights
  • Install Another Agent
  • What is OpenResty XRay
  • Logging in to the Console
  • Installing the Agent via RPM Packages
  • Checking the Agent Status and Logs
  • Configuring and Detecting Applications
  • Initiating Analyzers and Viewing Insights
  • Install Another Agent
  • What is OpenResty XRay

Python Memory Profiler: Find the Largest Objects Eating RAM Without Code Changes

  • Find which Python process is using the most memory
  • Profile Python memory with guided analysis: find the largest objects and their modules
  • Automatically monitor Python memory usage with scheduled reports
  • What is OpenResty XRay
  • Find which Python process is using the most memory
  • Profile Python memory with guided analysis: find the largest objects and their modules
  • Automatically monitor Python memory usage with scheduled reports
  • What is OpenResty XRay

Rust CPU Profiling: Find the Hottest Code Paths in Sled with OpenResty XRay

  • The problem: a Sled-based cache service using over 100% CPU
  • Profile the running Rust process with Guided Analysis
  • Read the Rust CPU flame graph: the #1 hottest code path
  • The #2 hottest code path: get_inner and view_for_key
  • Automatic Rust CPU analysis reports
  • Frequently asked questions
  • The problem: a Sled-based cache service using over 100% CPU
  • Profile the running Rust process with Guided Analysis
  • Read the Rust CPU flame graph: the #1 hottest code path
  • The #2 hottest code path: get_inner and view_for_key
  • Automatic Rust CPU analysis reports
  • Frequently asked questions

etcd High CPU Usage: Find the Hottest Go Code Paths with Flame Graphs

  • Symptom: etcd consuming over 70% of a CPU core
  • Use OpenResty XRay Guided Analysis to find the hottest Go code paths
  • Automatic etcd CPU monitoring and reports
  • What is OpenResty XRay
  • Symptom: etcd consuming over 70% of a CPU core
  • Use OpenResty XRay Guided Analysis to find the hottest Go code paths
  • Automatic etcd CPU monitoring and reports
  • What is OpenResty XRay

llama.cpp CPU Usage: 400% CPU Traced to ggml Hot Functions

  • Running llama.cpp and Observing 400% CPU Usage
  • Profiling llama.cpp CPU Usage with OpenResty XRay
  • Findings: The Hottest C++ Code Paths
  • What is OpenResty XRay
  • Running llama.cpp and Observing 400% CPU Usage
  • Profiling llama.cpp CPU Usage with OpenResty XRay
  • Findings: The Hottest C++ Code Paths
  • What is OpenResty XRay

Go Off-CPU Analysis: Tracing a Running Process Stuck at 2% CPU to a Blocking Shell Call

  • The symptom: Go service CPU usage stays low under load
  • Running off-CPU analysis on the live Go process with OpenResty XRay
  • Root cause: a blocking shell command at a single source line
  • Automatic analysis and reports
  • The symptom: Go service CPU usage stays low under load
  • Running off-CPU analysis on the live Go process with OpenResty XRay
  • Root cause: a blocking shell command at a single source line
  • Automatic analysis and reports

Python Process Stuck at 8% CPU: Off-CPU Analysis Traces a Blocking subprocess.run Call

  • The symptom: Python process CPU usage stays low under heavy requests
  • Find the blocking Python code paths with OpenResty XRay’s Guided Analysis
  • Automatic analysis and reports in the Insights page
  • FAQ
  • What is OpenResty XRay
  • About The Author
  • The symptom: Python process CPU usage stays low under heavy requests
  • Find the blocking Python code paths with OpenResty XRay’s Guided Analysis
  • Automatic analysis and reports in the Insights page
  • FAQ
  • What is OpenResty XRay
  • About The Author

Lua High CPU Usage: Find the Hottest Lua Code Path in Nginx/OpenResty

  • The symptom: an Nginx worker process using almost 100% CPU
  • Find the hottest Lua code path with Guided Analysis
  • Monitor Lua CPU usage automatically with Insights reports
  • Frequently asked questions
  • The symptom: an Nginx worker process using almost 100% CPU
  • Find the hottest Lua code path with Guided Analysis
  • Monitor Lua CPU usage automatically with Insights reports
  • Frequently asked questions

Kong Plugin High CPU Usage: A Hidden Lua Exception Traced with Flame Graphs

  • The problem: Kong plugin high CPU usage under light traffic
  • Finding the CPU bottleneck with an OpenResty XRay flame graph
  • The result: Kong CPU usage cut from 80% to 50%
Photo by Yichun Zhang
  • The problem: Kong plugin high CPU usage under light traffic
  • Finding the CPU bottleneck with an OpenResty XRay flame graph
  • The result: Kong CPU usage cut from 80% to 50%

Find Leaked Lua Tables: the registry / _LOADED (package.loaded) Reference Path in OpenResty XRay

  • How LuaJIT manages memory
  • OpenResty XRay’s command-line tools
  • A leaking Lua table example
  • Breaking down memory by LuaJIT GC object type
  • Reading the lj-gco-ref flame graph: registry, _LOADED, package.loaded
  • Fully-automated Lua memory leak analysis
  • How LuaJIT manages memory
  • OpenResty XRay’s command-line tools
  • A leaking Lua table example
  • Breaking down memory by LuaJIT GC object type
  • Reading the lj-gco-ref flame graph: registry, _LOADED, package.loaded
  • Fully-automated Lua memory leak analysis

Real-Time Request Counting against Nginx Processes via YSQL

  • How to install the run-ysql tool
  • Count total requests served in real time
  • Filter out specific requests
  • Using YSQL in the Web Console
  • True non-invasive tracing
Photo by Yichun Zhang
  • How to install the run-ysql tool
  • Count total requests served in real time
  • Filter out specific requests
  • Using YSQL in the Web Console
  • True non-invasive tracing

How to deploy the on-premises version of OpenResty XRay on Microsoft's Azure cloud

  • Create a subscription and a resource group
  • Create the Azure Kubernetes service
  • Prepare the environment variables
  • Log in to Azure from the command line
  • Create the namespace and secret for Kubernetes
  • Create the Azure Disk
  • Update the configuration file for the persistent volume
  • Update the Kubernetes configuration file
  • Create the persistent volume
  • Deploy the Kubernetes service
  • Configure the application gateway
  • Create a subscription and a resource group
  • Create the Azure Kubernetes service
  • Prepare the environment variables
  • Log in to Azure from the command line
  • Create the namespace and secret for Kubernetes
  • Create the Azure Disk
  • Update the configuration file for the persistent volume
  • Update the Kubernetes configuration file
  • Create the persistent volume
  • Deploy the Kubernetes service
  • Configure the application gateway
Contact us

Love to hear from you, Get in touch 👋

Message was sent successfully!

Our Team will get back to you within 24 hours.
x