Google PHP Stackdriver Debugger
Idiomatic PHP client for Stackdriver Debugger.
NOTE: This repository is part of Google Cloud PHP. Any support requests, bug reports, or development contributions should be directed to that project.
A feature of Google Cloud Platform that lets you inspect the state of an application, at any code location, without stopping or slowing down the running app. Stackdriver Debugger makes it easier to view the application state without adding logging statements.
Installation
Install the PHP extension from PECL.
$ pecl install stackdriver_debugger-alpha
On Windows, you can download pre-built .dll files from PECL.
You may also need to enable the extension in your
php.ini
file:# on Unix extension=stackdriver_debugger.so # on Windows extension=php_stackdriver_debugger.dll
Install with
composer
or add to yourcomposer.json
.$ composer require google/cloud-debugger
Run the batch daemon script in the background.
On Unix-based systems that have semaphore extensions installed, run the BatchDaemon:
$ vendor/bin/google-cloud-batch daemon
On Windows or systems that do not have semaphore extensions installed, run the Debugger Daemon:
$ vendor/bin/google-cloud-debugger -s <SOURCE_ROOT>
The
SOURCE_ROOT
is the base location of your deployed application.Alternatively, you can provide a configuration script:
$ vendor/bin/google-cloud-debugger -c <CONFIG_FILE>
Include and start the debugger
Agent
as the first action in your application:$agent = new Google\Cloud\Debugger\Agent();
If this file is not in your source root, you will need to provide the path to your application's source root as an optional parameter:
$agent = new Google\Cloud\Debugger\Agent([ 'sourceRoot' => '/path/to/source/root' ]);
This component supports both REST over HTTP/1.1 and gRPC. In order to take advantage of the benefits offered by gRPC (such as streaming methods) please see our gRPC installation guide.
Authentication
Please see our Authentication guide for more information on authenticating your client. Once authenticated, you'll be ready to start making requests.
Sample
use Google\Cloud\Debugger\DebuggerClient;
$debugger = new DebuggerClient();
$debuggee = $debugger->debugee();
$debuggee->register();
Configuration
Snapshots
Debugger snapshots allow you to capture and inspect the call stack and local variables in your application without stopping or slowing it down. In general, you will set breakpoints via the Stackdriver Debugger UI in the Cloud Platform Console.
See Using Debug Snapshots for more information on snapshots.
Logpoints
Debugger logpoints allow you to inject logging into running services without restarting or interfering with the normal function of the service. This can be useful for debugging production issues without having to add log statements and redeploy.
By default, we will send all log messages to Stackdriver Logging, but you can
customize this by providing any PSR-3 compatible logger. For example, to use
monolog
:
$agent = new Google\Cloud\Debugger\Agent([
'logger' => new Monolog\Logger('name')
]);
See Using Debug Logpoints for more information on logpoints.
Version
This component is considered GA (generally available). As such, it will not introduce backwards-incompatible changes in any minor or patch releases. We will address issues and requests with the highest priority.
Next Steps
- Understand the official documentation.
- Take a look at in-depth usage samples.