Skip to content

clarify definition of events and attachments #5106

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 14 additions & 10 deletions src/docs/product/accounts/pricing.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,15 @@ This document clarifies concepts and frequently asked questions around pricing.

### Events

An event is an error, attachment, or transaction sent to Sentry’s server for processing. Additional metadata around the event (breadcrumbs, user context, environment, traces) do not count separately.
An event is an error or transaction sent to Sentry’s server for processing. Errors events may also have attachments: stored additional files, such as config or log files that are attached to it. Additional metadata around the event (breadcrumbs, user context, environment, traces) do not count separately.

### Capacity

Capacity is the total number of events sent by and billed to your organization. You can purchase capacity in two ways: on-demand and reserved.

#### On-Demand Capacity

On-demand capacity is billed at the end of each billing cycle. You are charged per processed event, rounded up to the nearest cent. You have the ability to set on-demand caps so you can stay on budget. Your on-demand capacity is determined by your on-demand budget, which can be configured on either a shared or per-category (errors, transactions, attachments) basis. Learn more in [On-Demand Budgets](#on-demand-cap).
On-demand capacity is billed at the end of each billing cycle. You are charged per processed event or attachment, rounded up to the nearest cent. You have the ability to set on-demand caps so you can stay on budget. Your on-demand capacity is determined by your on-demand budget, which can be configured on either a shared or per-category (errors, transactions, attachments) basis. Learn more in [On-Demand Budgets](#on-demand-cap).

#### Prepaid (Reserved) Capacity

Expand Down Expand Up @@ -60,11 +60,11 @@ You have two choices for setting your on-demand budget strategy:

#### Rate Limits

Business plans have the option to configure rate limits for each project that let you specify the number of events and time interval for rate limiting.
Business plans have the option to configure rate limits for each project that let you specify the number of events and a time interval for rate limiting.

## Managing Your Event Volume

If your projects have a high volume of events, you can control how many errors Sentry receives by reviewing Sentry's guide to [Manage Your Event Stream](/product/accounts/quotas/manage-event-stream-guide/).
If your projects have a high volume of events, you can control how many errors Sentry receives by reviewing Sentry's guides to managing your [error](/product/accounts/quotas/manage-event-stream-guide/) or [transaction](/product/accounts/quotas/manage-transaction-quota/) quotas.

## FAQ

Expand Down Expand Up @@ -295,9 +295,13 @@ You will be downgraded to the same plan you were on prior to starting the trial.

You control who can see events. We allow you to add your team members, as well as share events with anonymous users should you wish to do so.

#### Events now include transactions, errors, and attachments? What's the difference?
#### Events now include transactions and errors. What's the difference? {#events-now-include-transactions-errors-and-attachments-whats-the-difference}

An _event_ is one instance of you sending Sentry data. What can be captured as an error depends on your platform. In general, if you have something that looks like an exception, it will be sent to Sentry as an error event. _Attachments_ are files uploaded in the same request, such as log files. In addition, the files within the crash uploaded to Sentry can be persisted by enabling storage of crash reports. A _transaction_ represents a single instance of a service being called to support an operation you want to measure or track, like a page load.
An _event_ is one instance of you sending Sentry data, excluding attachments. What can be captured as an error depends on your platform. In general, if you have something that looks like an exception, it will be sent to Sentry as an _error event_. A _transaction event_ represents a single instance of a service being called to support an operation you want to measure or track, like a page load.

#### What is an attachment?

_Attachments_ are stored additional files, such as config or log files that are attached to an error event. The files within a crash uploaded to Sentry can be persisted by enabling storage of crash reports.

#### What is included in the free trial for current customers?

Expand All @@ -313,11 +317,11 @@ New plans take effect immediately.

#### Can I buy a plan for only transactions?

Our minimum plan provides 100k transactions, 50k errors, and 1GB of attachments. If you need more of any of the three types of events we track, use the slider on our [pricing](https://sentry.io/pricing/) page to add what you need.
Our minimum plan provides 100k transactions, 50k errors, and 1GB of attachments. If you need more of any of these, use the slider on our [pricing](https://sentry.io/pricing/) page to add what you need.

#### How do I manage my monthly spending?

The slider on the [pricing](https://sentry.io/pricing/) page allows you to choose the volume you'd like for each type of event - errors, transactions, or attachments storage.
The slider on the [pricing](https://sentry.io/pricing/) page allows you to choose the volume you'd like for errors, transactions, or attachments storage.

#### If I downgrade mid-year, when does it apply?

Expand All @@ -343,11 +347,11 @@ Your plan will continue until the end of the current billing cycle. After this,

#### Where can I find my previous invoices/receipts?

Users with the role of [Billing or Owner](/product/accounts/membership/) can find all previous invoices by going to **Organization > Usage & Billing > Usage & Payments > Receipts**.
Users with the role of [Billing or Owner](/product/accounts/membership/) can find all previous invoices by going to **Settings > Subscription** and clicking the "Receipts" tab.

<Note>

You must have either `Billing` or `Owner` permissions to access and/or make changes to information on this page. If you don't have those permissions, or you are not a member of the organization in Sentry, please reach out to a Billing member or an Owner to obtain invoices.
You must have either Billing or Owner permissions to access and/or make changes to information on this page. If you don't have those permissions, or you are not a member of the organization in Sentry, please reach out to a Billing member or an Owner to obtain invoices.

</Note>

Expand Down
50 changes: 27 additions & 23 deletions src/docs/product/accounts/quotas/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,19 @@ redirect_from:
description: "Learn about what counts towards your quota and how to manage your quota."
---

Events and quotas are interconnected in Sentry. At the most basic, when you [subscribe to Sentry](https://sentry.io/pricing/), you pay for the number of events - errors, attachments, and transactions - to be tracked. Each of these type of events has a quota. When Sentry accepts an event, it counts toward your quota for that type of event.
Events and quotas are interconnected in Sentry. At the most basic level, when you [subscribe to Sentry](https://sentry.io/pricing/), you pay for the number of events errors and transactions — and related attachments to be tracked. Each of these has a quota, and when Sentry accepts an event, it counts toward your quota for that type of event. We also track and provide a quota for for those attachments.

Sentry’s flexibility means you can exercise fine-grained control over which events count toward your quota.
Sentry’s flexibility means you can exercise fine-grained control over which events and attachments count toward your quota.

## Key Terms

Let’s clarify a few terms to start:

- **Event** - An event is one instance of you sending data to Sentry. Generally, this data is an error or a transaction.
- **Event** - An _event_ is one instance of you sending Sentry data, excluding attachments. Generally, this data is an error or a transaction.
- **Issue** - An issue is a grouping of similar error events. Every error event has a set of characteristics called its fingerprint, which is what Sentry uses for grouping. For example, Sentry groups events together when they are triggered by the same part of your code. Learn more in our full [Issue Grouping documentation](/product/data-management-settings/event-grouping/).
- **Attachment** - Attachments are files uploaded in the same request, such as log files. Unless the option to store crash reports is enabled, Sentry will use these files only to create an event, and then drop them.
- **Attachment** - Attachments are stored additional files, such as config or log files that are related to an error event. Unless the option to store crash reports is enabled, Sentry will use these files only to create an event, and then drop them.
- **Transaction** - A [transaction](/product/performance/transaction-summary/#what-is-a-transaction) represents a single instance of a service being called to support an operation you want to measure or track, like a page load. Transaction events are grouped by the transaction name.
- **Quota** - Your quota is the monthly number of events errors, attachments, and transactions that you pay Sentry to track.
- **Quota** - Your quota is the monthly number of events (errors and transactions) and attachments that you pay Sentry to track.

## What Counts Toward My Quota, an Overview

Expand All @@ -35,15 +35,15 @@ Sentry completes a thorough evaluation of each event to determine if it counts t

3. **Quota availability**

Events that exceed your quota are not accepted. Once your event volume is approaching or has exceeded the quota, teammates with the "owner" organization permission level will receive [notification](/product/alerts/notifications/#quota-notifications) emails. Learn about adding to your quota and what happens when you exceed it in [Increasing Quotas](#increasing-quotas).
Events or attachments that exceed your quota are not accepted. Once your event or attachment volume is approaching or has exceeded the quota, teammates with the "owner" organization permission level will receive [notification](/product/alerts/notifications/#quota-notifications) emails. Learn about adding to your quota and what happens when you exceed it in [Increasing Quotas](#increasing-quotas).

4. **Event repetition**

Event repetition only applies to error events, not transactions or attachments. The following rules apply for event repetition and your quota:
Event repetition only applies to error events, not transactions or attachments. The following rules apply for event repetition and your quota:

- If you have chosen to "Delete & Discard" an issue, then _future_ error events with the same fingerprint do not count toward your quota.
- If you previously resolved an issue, a new error event counts toward your quota because it may represent a regression in your code.
- If you have chosen to ignore alerts about error events with the same fingerprint, a new event counts toward your quota because the event is still occurring. Learn more in [Inbound Filters](#inbound-data-filters).
- If you have chosen to "Delete & Discard" an issue, then _future_ error events with the same fingerprint do not count toward your quota.
- If you previously resolved an issue, a new error event counts toward your quota because it may represent a regression in your code.
- If you have chosen to ignore alerts about error events with the same fingerprint, a new event counts toward your quota because the event is still occurring. Learn more in [Inbound Filters](#inbound-data-filters).

5. **Spike protection**

Expand All @@ -57,14 +57,16 @@ In addition, depending on your project’s configuration and the plan you subscr

7. **Inbound filters**

If any inbound filter is set for a type of error event, and your subscription allows, the event will not be counted. Learn more in the [Inbound Filters section of our error quota management guide](/product/accounts/quotas/manage-event-stream-guide/#3-inbound-data-filters) or in [Inbound Data Filter](#inbound-data-filters). This does not apply to transactions or attachments.
If any inbound filter is set for a type of event or attachment, and your subscription allows, the event will not be counted. Learn more in the [Inbound Filters section of our error quota management guide](/product/accounts/quotas/manage-event-stream-guide/#3-inbound-data-filters) or in [Inbound Data Filter](#inbound-data-filters).

After these checks are processed, the event counts toward your quota. It is accepted into Sentry, where it persists and is stored.

<Alert>
If the event exceeds 200KB compressed or 1MB decompressed for events and 20MB
compressed or 100MB decompressed for minidump uploads (all files combined),
the event will be rejected.

If the event exceeds 200KB compressed or 1MB decompressed for events and 20MB
compressed or 100MB decompressed for minidump uploads (all files combined),
the event will be rejected.

</Alert>

## What Counts Toward my Quota, Table View
Expand Down Expand Up @@ -93,7 +95,7 @@ After these checks are processed, the event counts toward your quota. It is acce
<td>Set</td>
</tr>
<tr>
<td>Quota</td>
<td>Quota (includes attachments)</td>
<td>Not reached</td>
<td>Exceeded</td>
</tr>
Expand Down Expand Up @@ -129,15 +131,17 @@ After these checks are processed, the event counts toward your quota. It is acce
</td>
</tr>
<tr>
<td>Inbound filters (errors only)</td>
<td>Inbound filters (includes attachments)</td>
<td>Not set</td>
<td>Set for this error event</td>
<td>Set for this event</td>
</tr>
</tbody>
</table>
<Alert>
Delete and discard and per-project rate limits are available only for Business
plans.

Delete and discard and per-project rate limits are available only for Business
plans.

</Alert>

## Increasing Quotas
Expand Down Expand Up @@ -194,7 +198,7 @@ Per-key rate limits allow you to set the maximum volume of error events a key wi

For example, you may have a project in production that generates a lot of noise. A rate limit allows you to set the maximum amount of data to “500 events per minute”. Additionally, you can create a second key for the same project for your staging environment, which is unlimited, ensuring your QA process is still untouched.

To set up rate limits, navigate to **[Project] > Settings > Client Keys** and click "Configure"**". Select an individual key or create a new one, then you’ll be able to define a rate limit as well as view a breakdown of events received by that key. For additional information and examples, see [Rate Limiting in our guide to managing your error quota](/product/accounts/quotas/manage-event-stream-guide/#6-rate-limiting).
To set up rate limits, navigate to **[Project] > Settings > Client Keys** and click "Configure"\*\*". Select an individual key or create a new one, then you’ll be able to define a rate limit as well as view a breakdown of events received by that key. For additional information and examples, see [Rate Limiting in our guide to managing your error quota](/product/accounts/quotas/manage-event-stream-guide/#6-rate-limiting).

<Note>

Expand All @@ -220,7 +224,7 @@ Inbound filters include:
- From specific release versions of your code
- From certain IP addresses.

Explore these by navigating to **[Project] > Settings > Inbound Filters**. Commonly-set filters are discussed here for your quick reference. For additional information and examples, see [Inbound Data Filters in our guide to managing your error quota](/product/accounts/quotas/manage-event-stream-guide/#3-inbound-data-filters). Commonly-set filters include:
Explore these by navigating to **[Project] > Settings > Inbound Filters**. Commonly-set filters are discussed here for your quick reference. For additional information and examples, see Inbound Data Filters in our guides to [managing your error quota](/product/accounts/quotas/manage-event-stream-guide/#3-inbound-data-filters) and [transaction quota](/product/accounts/quotas/manage-transaction-quota/#2-inbound-data-filters).

### IP Filters

Expand Down Expand Up @@ -264,7 +268,7 @@ You can view and restore previously discarded issues by navigating to the "Disca

<Alert level="info">

Spike protection is not currently available for transactions nor attachments.
Spike protection is not currently available for transactions or attachments.

</Alert>

Expand All @@ -290,7 +294,7 @@ The 24-hour window ends at the beginning of the current hour, not at the current

This means if you experience a spike, we'll temporarily protect you, but if the increase in volume is sustained, the spike protection limit will gradually **increase until Sentry accepts all events**.

For example, in the last 24 hours, your organization has been receiving, on average, 10 events per minute (after any inbound filters have been applied). That means your current per-minute limit is 6 * 10 or 60 events. There have been no spikes in that time, so spike control is "inactive". Something breaks, and in the next minute, your organization sends Sentry 100 events. When we see the 61st event, three things happen:
For example, in the last 24 hours, your organization has been receiving, on average, 10 events per minute (after any inbound filters have been applied). That means your current per-minute limit is 6 \* 10 or 60 events. There have been no spikes in that time, so spike control is "inactive". Something breaks, and in the next minute, your organization sends Sentry 100 events. When we see the 61st event, three things happen:

1. Spike protection becomes "active".

Expand Down
12 changes: 8 additions & 4 deletions src/docs/product/accounts/quotas/manage-transaction-quota.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,17 @@ description: "Learn how to use the tools Sentry provides to control the type and

In most cases, sending all [transaction](/product/performance/transaction-summary/#what-is-a-transaction) events to Sentry would generate more performance data than you might find useful and might use up your transactions quota too quickly. Sentry provides tools to control the _type_ and _amount_ of transactions that are monitored. This allows you to have transaction data that's actionable and meaningful, and to manage your quota. Applying the proper SDK configuration is an iterative and on-going process, but these tips will show you how to best use Sentry's tools to get the most out of your transaction events.

## 1. SDK Filtering: beforeSend
## 1. SDK Configuration: Tracing Options {#2-sdk-configuration-tracing-options}

All Sentry SDKs support the `beforeSend` callback method. Once implemented, the method is invoked when the SDK captures an event, right before sending it to your Sentry account. It receives the event object as a parameter, so you can use that to modify the event's data or drop it completely (by returning `null`) based on your custom logic and the data available on the event, like _tags_, _environment_, _release version_, and so on. Learn more in [Filtering Events](/platform-redirect/?next=/configuration/filtering/).
When you configure your the SDK, you can control the number of transactions that are sent to Sentry by setting the [tracing options](/platform-redirect/?next=/configuration/options/%23tracing-options). You can also set up [custom instrumentation](/platform-redirect/?next=/performance/instrumentation/custom-instrumentation/) for performance monitoring to capture certain types of transactions.

## 2. SDK Configuration: Tracing Options
## 2. Inbound Data Filters

When you configure your the SDK, you can control the number of transactions that are sent to Sentry by setting the [tracing options](/platform-redirect/?next=/configuration/options/%23tracing-options). You can also set up [custom instrumentation](/platform-redirect/?next=/performance/instrumentation/custom-instrumentation/) for performance monitoring to capture certain types of transactions.
While SDK configuration requires changes to your source code and depends on your next deployment, server-side filters can be easily configured per project in the "Data Filters" section of **[Project] > Settings > Inbound Filters**. Learn more in [Inbound Filters](/product/accounts/quotas/#inbound-data-filters).

Once applied, you can track the filtered events (numbers and cause) using the graph provided at the top of the "Inbound Filters" page.

![Built-in Inbound Filters](manage-event-stream-03.png)

## 3. Event Usage Stats

Expand Down
Loading