Be Amazed in 5 Minutes or Less,
Real-Time Diagnostics
for Your Business-Critical Software Applications

Real-time Analysis

Real-time Analysis

For target machine systems which newly install the XRay’s Agent service, the waiting time for the first graphs and analysis results will only be tens of seconds or 1 minute. All subsequent data updates will take merely a few seconds, achieving the level of soft real time.

Full-Stack Analysis

Full-Stack Analysis

Full-Stack Analysis

Automatically learns normal performance and formulates benchmarksOpenResty XRay can penetrate through multiple layers in a running software system, and can analyze all these layers as a whole. Typical layers include operating system kernels, network stacks and network layers, various systems software (like database systems), virtual machines and runtime for high level programming languages, higher level user applications and scripts written in high-level programming languages, and etc.

Programs as Data

Programs as Data

Programs as Data

OpenResty XRay can treat any running software processes as a database that can be directly queried and is changing at realtime. It provides various different ways to query such special “databases”, enabling the user to fetch any internal data and statistical metrics from inside her running programs at any time, regardless of the target programs. OpenResty XRay will also provide a SQL-like query language to make it feel more like a real relational database managuage system (RDBMS).

Flexible Targets for Analysis

Flexible Targets for Analysis

Flexible Targets for Analysis

OpenResty XRay can analyze a single service process (or daemon) which runs for a long time through its PID. It can also analyze a full UNIX process group (consisting of a parent process and multiple child processes, for example). Finally, all short-lived processes launched from a single executable file can also be analyzed as a whole.

Rich Visualization Methods

Rich Visualization Methods

Rich Visualization Methods

OpenResty XRay provides a rich set of visualization methods to help the user get insights and intuition into her target software systems. For instance it uses different kinds of flame graphs to show how a particular hardware resource (like CPU time, blocking or locking time, and file I/O time) is distributed across all the code paths in the target program quantitatively. Additionally, multi-layered pie graphs, directed acyclic graphs and etc are used to show usage details of computer memories and other resources.

Automatic Reasoning & Diagnostics

Automatic Reasoning & Diagnostics

Automatic Reasoning & Diagnostics

OpenResty XRay has built in a powerful real-time inference engine and a rich set of software knowledge base. It can analyze and find many common configuration mistakes or suboptimal bits, API usage mistakes and suboptimal places, as well as security vulnerabilities in various kinds of open source software. The inference engine will intelligently decide when to use which analyzer to collect what kind of data from the target software system, based on each step’s results. It automatically narrows down the problem with multiple steps until reaching the root cause of the problem. Many times, the engine is able to provide concrete suggestions for the user to improve, fix, and optimize her software systems.

Universal Applicability

Universal Applicability

Universal Applicability

OpenResty XRay is based on our world-leading dynamic tracing technologies. It does *not* require any collaborations of the target software, not relying on any special mechanism or interfaces provided by the target. The target can be any program the user has access to, including those written from scratch by the user herself. OpenResty XRay can analyze programs written in different kinds of programming languages, various database systems, various desktop applications, and even operating system kernels.

Negligible Overhead

Negligible Overhead

Negligible Overhead

OpenResty XRay only incurs some overhead during the sampling time window. This overhead is usually less than 5% even for extremely performance applications under extreme load. For common applications, such overhead is too small to measure. And when OpenResty XRay is not sampling, the overhead is strictly zero for the target software processes.

OpenResty XRay does not rely on the target software to produce any log data. In fact, even when the target program produces no logs at all, OpenResty XRay can still perform all its analysis and inspection. The amount of data collected and transferred by the OpenResty XRay Agent service is also very low, taking very little bandwidth usually. This is because the Agent only collects the data it actually needs for the current problem or analysis goal. It never attempts to collect more data.

Noninvasive

Noninvasive

Noninvasive

OpenResty XRay never injects into the target process any bytecode or code in any other forms. It never changes any data, execution state, or memory state inside the target process, making sure that it will never affects the target process’s behavior in any way. For this reason, it can even analyze and diagnose deep bugs in the programming language runtime, virtual machine, and Just-In-Time compilers without affecting the reproducibility of any bugs in action.

Safety

Safety

Safety

OpenResty XRay makes sure the target process is always read only to its analyzers and data collectors. Even if the analyzers attempt to read any memory pages inside the target process space which may lead to “page faults” or “segmentation faults”, they will never really trigger any page faults or segmentation faults at all, but simply fail gracefully. This ensures that the target process will never crash accidentally or incur any other behavioral issues just in the presence of the analyzers.

The target processes being analyzed will not know that they are being analyzed, especially when they are running in some kind of “containers” or virtual machines. This makes sure that those malicious target processes cannot intentionally change their behaviors by detecting the presence of any analyzers (they do this just to bypass security scans).

Powerful Extensibility and Customization Capabilities

Powerful Extensibility and Customization Capabilities

Powerful Extensibility and Customization Capabilities

OpenResty XRay supports user-defined analyzers and data collectors. It provides various domain-specific languages including the Y language for user extensions and customizations. In fact, OpenResty XRay’s own standard analyzers and data collectors are written in exactly the same languages and tool chains.

Easy to Install, Trivial to Remove

Easy to Install, Trivial to Remove

It is only required to install the OpenResty XRay Agent software package to analyze all the services, applications, and containers in the target machine. The Agent software package is so small that it is merely of several megabytes. The user can then check out and manage all her target machines’ details in OpenResty XRay’s console web UI. All the OpenResty XRay software packages are distributed and managed by the standard package management systems of the user’s operating system (like yum and apt-get). Therefore, upgrading and removing the software is extremely easy.

Native Support for Virtualization

Native Support for Virtualization

Native Support for Virtualization

The OpenResty XRay Agent services installed on the host operating system can easily penetrate and analyze any applications run in containers like Docker’s. It is not required to install any extra software or files inside the target containers. In the near future, OpenResty XRay will also support penetrating and analyzing applications inside virtual machines powered by KVM or VirtualBox.

Trust & Compliance

Trust & Compliance

(coming soon)
AICPA SOC 2AICPA SOC 2
AICPA SOC 2AICPA SOC 2AICPA SOC 2

Trust is the building block of every enduring partnership

OpenResty undergoes rigorous audits by third-party services - our protocols are transparent, documented and verified

AICPA Soc-2 (cloud security)
Cloud Security Alliance (cloud security)
Cobalt (penetration testing)
GDPR (government regulation)
ISO (information security management)