Skip to content

Conversation

@philipphofmann
Copy link
Member

Rename all the telemetry buffer pages to telemetry processor and clarify that the processor does more than buffering.

This is the first step of migrating the Notion doc concept of the telemetry processor to the develop docs.

Rename all the telemetry buffer pages to telemetry processor and clarify
that the processor does more than buffering.
@vercel
Copy link

vercel bot commented Dec 18, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Review Updated (UTC)
develop-docs Ready Ready Preview, Comment Dec 18, 2025 9:03am
sentry-docs Ready Ready Preview, Comment Dec 18, 2025 9:03am

Comment on lines +14 to +30
The telemetry processor ensures data is delivered efficiently to Sentry. It receives data from the client and forwards it to the transport. Its key responsibilities include buffering, rate limiting, client reporting, priority-based sending, and, on some platforms, offline caching.


```mermaid
flowchart LR
Client -- send Data --> TelemetryProcessor
TelemetryProcessor -- sendEnvelope --> Transport
```

Once an SDK adds the telemetry processor, its client **SHOULD** only forward data to the telemetry processor, and not directly to the transport. The TelemetryProcessor consists of two major components:

- **TelemetryBuffer**: Focuses on buffering high-volume data, such as spans and logs, into batches to minimize HTTP requests.
- **TelemetryDispatcher**: Takes buffered data from the TelemetryBuffer and manages prioritized sending, including potential offline caching and sending of client reports.

Because telemetry workloads and platform constraints vary widely, the requirements differ across environments. For example, backend SDKs need high throughput and backpressure management to handle large data volumes. Mobile SDKs have lower throughput and don't need to worry much about backpressure, but they do need to minimize data loss in the event of abnormal process termination. Browser and GDX SDKs also have different requirements.

Therefore, we recommend implementing different types of telemetry processors tailored to the platform's needs. As of Dec 18th, 2025, this page is under development, and we're currently refining the requirements for different platforms:
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm sorry the git mv command somehow got messed up here. This is basically the new part. The rest already existed before.

Copy link
Member

@isaacs isaacs Dec 18, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

git mv is basically just sugar around git rm + git add. If the file contents don't change, it's reflected as a rename; but if you add more than a certain percentage, it'll be interpreted as a new different file. (Ie, you did nothing wrong, this is just git's heuristics working as designed, but you can avoid this in the future by having separate commits: one to rename the file, then another to edit it. But that's usually more trouble than it's worth, to be honest.)

Once an SDK adds the telemetry processor, its client **SHOULD** only forward data to the telemetry processor, and not directly to the transport. The TelemetryProcessor consists of two major components:

- **TelemetryBuffer**: Focuses on buffering high-volume data, such as spans and logs, into batches to minimize HTTP requests.
- **TelemetryDispatcher**: Takes buffered data from the TelemetryBuffer and manages prioritized sending, including potential offline caching and sending of client reports.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I personally prefer TelemetryScheduler as a name, since for me it more clearly represents what the component actually does. But that's a nit, so leaving it as is, is fine.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@giortzisg, I don't think that's a nit. It's an important point. I think we can also follow up on this later. The concept is still WIP, and we will get to a close to ideal solution step by step. @isaacs, what is your suggestion for a proper name for the TelemetryDispatcher?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would think of a "dispatcher" as the thing that manages the actual sending as well as scheduling. For example, if it had multiple different clients, and was deciding where to send different types of data.

In this case, we have exactly one client (the HTTP client that uploads to Sentry), and this component is just deciding which things get placed in its queue in which order, so I agree Scheduler is probably a slightly better term.

But I also agree with @giortzisg that this is a nit ;) I could easily see how it could grow into a full "dispatcher" if one had multiple endpoints, for example.

Copy link
Member

@isaacs isaacs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This rename seems fine to me, possibly with the scheduler/dispatcher nit resolved.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants