This is a middleware for Guzzle 7 that leaves Sentry breadcrumbs for all requests.
Via Composer
composer require swisnl/guzzle-sentry-breadcrumbs-middleware
use GuzzleHttp\Client as Guzzle;
use GuzzleHttp\HandlerStack;
use Swis\Guzzle\Sentry\BreadcrumbMiddleware;
$stack = HandlerStack::create();
$stack->push(new BreadcrumbMiddleware());
$client = new Guzzle(['handler' => $stack]);
Now when you send a request, a Sentry breadcrumb is logged with the following metadata:
- method
- uri
- status code
- response body (summary), in case of client or server exceptions (status code >= 400)
- duration
You can configure the middleware using the constructor arguments:
The category of the breadcrumb.
The message of the breadcrumb.
A list of secret strings, such as API keys, that should be filtered out of the metadata.
The length of the response body summary, which is added to the breadcrumb in case of client or server exceptions. Use null to disable logging response/request body.
By default, it does not log the request body and only logs the response body in case of client or server exceptions (status code >= 400). If you'd like to change this behaviour, you can provide your own GuzzleHttp\BodySummarizerInterface
implementation. You can use the default GuzzleHttp\BodySummarizer
for example, to log all request and response bodies. Please be aware not to log sensitive information!
Please see CHANGELOG for more information on what has changed recently.
composer test
Please see CONTRIBUTING and CODE_OF_CONDUCT for details.
If you discover any security related issues, please email security@swis.nl instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.
This package is Treeware. If you use it in production, then we ask that you buy the world a tree to thank us for our work. By contributing to the Treeware forest you’ll be creating employment for local families and restoring wildlife habitats.
SWIS is a web agency from Leiden, the Netherlands. We love working with open source software.