Set Up Performance
With performance monitoring, Sentry tracks your software performance, measuring metrics like throughput and latency, and displaying the impact of errors across multiple systems. Sentry captures distributed traces consisting of transactions and spans, which measure individual services and individual operations within those services. Learn more about our model in Distributed Tracing.
If you’re adopting Performance in a high-throughput environment, we recommend testing prior to deployment to ensure that your service’s performance characteristics maintain expectations.
Configure the Sample Rate
Sampling for transactions must also be configured before
- Setting a uniform sample rate for all transactions using the
traces_sample_rate
option in your SDK config to a number between0
and1
. (For example, to send 20% of transactions, settraces_sample_rate
to0.2
.) - Controlling the sample rate based on the transaction itself and the context in which it's captured, by providing a function to the
traces_sampler
config option.
The two options are meant to be mutually exclusive. If you set both, traces_sampler
will take precedence.
config/sentry.php
// Specify a fixed sample rate:
'traces_sample_rate' => 0.2,
// Or provide a custom sampler:
'traces_sampler' => function (\Sentry\Tracing\SamplingContext $context): float {
// return a number between 0 and 1
},
Learn more in Closures and Config Caching.
Learn more about how the options work in Sampling Transactions.
Verify
While you're testing, set traces_sample_rate
to 1.0
, as that ensures that every transaction will be sent to Sentry.
Once testing is complete, we recommend lowering this value in production by either lowering your traces_sample_rate
value, or switching to using traces_sampler
to dynamically sample and filter your transactions.
Improve Response Time
Using the performance capabilities of PHP has some impact on your response time (depending on the traces_sample_rate
you configured).
Because of the nature of PHP, in most cases, requests are sent in the same process as the one in which you serve your users' response.
In short, this process affects the time it takes to send a request to Sentry, because it is added to your servers' response time.
To account for this and reduce this addition to close to zero, you can use Relay running locally on the same machine or local network that acts as a proxy/agent. As a result, instead of your PHP process sending things to Sentry, the PHP process sends it to your local Relay, which then forwards it to Sentry.
To begin using Relay, check out our docs for getting started.
Currently, we recommend using Relay in managed
mode (which is the default).
Follow the instructions in the Relay docs to send a test event through Relay to Sentry.
Don't forget to update your DSN
to point to your running Relay instance.
After you set up Relay, you should see a dramatic improvement to the impact on your server.
Next Steps:
Our documentation is open source and available on GitHub. Your contributions are welcome, whether fixing a typo (drat!) to suggesting an update ("yeah, this would be better").
- Package:
- composer:sentry/sentry-laravel
- Version:
- 3.3.2
- Repository:
- https://github.com/getsentry/sentry-laravel