Loading...

Solve PHP
production issues
5x faster

Add log statements to your production code instantly with just a few clicks, without altering the code or performing deployment.

Gain visibility into production issues quickly. Save hours investigating.

How it works

Troubleshoot live applications easily by adding log statements visually.
  • Dynamically add logs and snapshots to your live app from IDE

    With a few clicks and without issuing any hotfixes - skip the deployment and CI/CD pipeline.

    Virtual, non-breaking “breakpoints” (tracepoints) extract all the data you need for investigation and understanding the state of your application - without affecting code execution or altering the code.

  • Explore traces from live requests as they occur

    Receive information on variables and their values, arguments passed to methods/functions and their return values directly in your IDE.

  • Understand the conditions that led to a specific bug

    See and understand the state of your software at any point in time. Move forward and backwards through how your code was executed.

Advantages of continuous debugging

Increase developer productivity
and resolve bugs faster

Pinpoint error root causes instantly

Spend less time on issuing hotfixes and redeployments to debug production issues.

Save time on identifying and reproducing issues

Skip instrumenting the code (manually adding log statements) and get a faster feedback loop. Gain visibility into what’s happening immediately.

Focus more on value creating tasks

Reduce time spent on production maintenance tasks.

Empower your team

Allow support engineers, operations engineers, SREs and service owners to react fast to production issues, by providing them with a better debugging experience and easier way to understand the codebase.

Improve the collaboration between development and operations teams, allowing operations teams to quickly identify application owners.

Increase customer satisfaction and improve experience

Solve customer issues 5x faster. Identify and resolve bugs quicker and more easily with less downtime. Enhance site reliability and reduce mean time to resolve (MTTR).

Understand your software

Get "x-ray vision" into third party dependencies (libraries and packages) and legacy code.

Allow even the most junior of developers to understand the codebase they’re working on.

Seeing the whole 'dataflow history' (how a specific value flows through your program) makes learning a lesser-known codebase much easier and allows one to see how individual lines of code impact the behavior of running software.

Improve troubleshooting workflow

Unpredictability of production errors means that more often than not appropriate log lines are missing and prevents full dataflow analysis (determining how a value ended up in the location it did). Developers can't instrument everything and over-aggressive instrumentation would lead to maintenance overheads. Continuous debugging enables tracing of the application execution flow without the need to instrument the source code with additional log statements and redeployments, and gives full details of program state at any point in time.

Frequently asked questions

Solution consists of three components:
  • PHP extension to handle diagnostic info retrieval
  • PHP library that interacts with the PHP extension and sets up info retrieval
  • Agent (daemon process that runs separately and forwards gathered diagnostics info)
Agent sends information to a central websockets server that forwards information to an IDE connected to it.
CodeInsights PHP extension invalidates opcache for the PHP files that require debugging and adds diagnostic info retrieval instructions to the corresponding code lines in the PHP runtime. Performance overhead is almost as little as adding log statements to the code manually. Additionally, you may set usage quotas and cap the total execution time of additionally added log statements.
No data is stored on CodeInsights servers. Access to your source code is not needed. Connection with websockets server uses SSL. The only data transferred is path to the file and line number, as well as the log messages generated. Additionally you may set end-to-end encryption by supplying a custom 32 byte encryption key (shared secret) used to encrypt/decrypt payload data using Secretbox encryption standard. This ensures that the data is encrypted before it leaves your server. The data can be read only by encryption key holders and the encryption key is located only on your servers and IDEs. Alternatively, you may host websockets server on premises.
This product complements these services and enriches the error reports with additional data ("breadcrumbs") to help you understand the root cause of an error much quicker.
Xdebug induces heavy performance penalty and is a step-debugger - it "freezes" code execution until resumed from IDE, making it a powerful tool for local development but unsuitable for debugging issues occuring in production environment.
The teams that benefit most from the continuous debugging approach meet one or more of the following criteria:
  • Larger than average codebase
  • Mission-critical services that require fast error resolution
  • Errors can't be reproduced easily in a test environment (including time-consuming data replication or prohibited copying due to data sensitivity)
  • Move-forward mentality (instead of performing rollbacks bugs are being solved quickly)
  • Frequent or complex business-logic related errors that take time to investigate
  • Missing instrumentation - understanding root cause of errors requires adding additional / new log statements to the code
  • Deployment process (CI/CD) takes longer than a few minutes and you want to shorten the feedback loop and receive output from the new logs immediately

Sign up for private beta access

We're currently in a closed beta. Please sign up for the waitlist or if you just want to receive product updates.
Alternatively please feel free to reach out to us directly at [email protected].