Request-based Pricing and Upgrade Policy
If you have a request-based pricing plan, then you should know some important information about what happens when you exceed the request limit.
A request-based pricing plan has an organization wide limit of requests across all projects that have a request-based license. You might have a plan that has both request-based and fixed-price licenses for different projects.
Once a day we check if all projects with request-based licenses exceed the organization wide limit of monthly requests.
When the limit is reached, we send all admins of the organization a notification and increment a counter for consecutive months of exceeding the limit.
In the first two month nothing much happens when you exceed the limit, except those notification emails.
After the second month Tideways will schedule an automatic upgrade to the next matching request tier of your current plan. This automatic update will adjust or even stop itself when the request count goes back to the previous level in the 7 days prior to the scheduled upgrade date.
You can see the request limit and the current requsts of all projects in the Billing details screen of the organization and in the license screen of each project.
Limiting Requests
Tideways provides several ways that allow you to reduce the number of requests made to an organization to control which tier you end up with.
Errors, Exceptions or Triggered Traces that occur in Ignored requests are not reported to Tideways and no notifications get sent for them. |
For endpoints and transactions that are not providing valuable requests, such as health checks or simple tracking endpoints you can either:
-
Ignore them completly, either [from the UI or through the Profiler PHP API.
-
Deactivate a whole service, so that no requests are recorded for it. This only works for non-default services.
-
Disable data transmission for a selected server from the project settings > server screen.
-
Implement sampling of only a percentage of requests in code.
<?php
use Symfony\Component\HttpFoundation\Request;
$request = Request::createFromGlobals();
if (class_exists('Tideways\Profiler') &&
$request->getPathInfo() === '/health' &&
random_int(0, 100) < 10) {
\Tideways\Profiler::ignoreTransaction();
}
The tideways.sample_rate only controls how many full traces are collected
from all requests. It does not reduce the number of requests monitored by Tideways.
|