-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' into antonis/react-native-capture-feedback
- Loading branch information
Showing
24 changed files
with
592 additions
and
18 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
--- | ||
title: Snuba | ||
description: A service that provides a rich data model on top of Clickhouse together with a fast ingestion consumer and a query optimizer. | ||
--- | ||
|
||
Repository: https://github.com/getsentry/snuba | ||
|
||
Documentation: https://getsentry.github.io/snuba/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
--- | ||
title: Symbolic | ||
description: A library written in Rust for symbolication of native stack traces and more. | ||
--- | ||
|
||
Repository: https://github.com/getsentry/symbolic | ||
|
||
Documentation: https://docs.rs/symbolic/latest/symbolic/ |
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,97 @@ | ||
--- | ||
title: Distributed Tracing with Uptime | ||
sidebar_order: 52 | ||
description: "Learn how to use distributed tracing to troubleshoot downtime." | ||
--- | ||
|
||
Sentry's Uptime Monitoring uses [distributed tracing](/product/tracing/#whats-distributed-tracing) to track the flow and timing of requests and operations during uptime checks. This helps you quickly find the root cause of downtime by connecting related errors and performance data. | ||
|
||
You can trace errors to identify and diagnose issues like crashes or exceptions. This is automatically enabled for all Uptime Alerts. You can also trace spans to monitor the performance and flow of operations, such as API calls or database queries. Span tracing is disabled by default, but can be enabled by allowing sampling in your Uptime Alert settings. Errors focus on problems, while spans focus on performance. | ||
|
||
## How Uptime Tracing Works | ||
|
||
Sentry Uptime Tracing automatically appends a `sentry-trace` header to every outgoing request made to the configured URL in your Uptime Alert settings. This header propagates a trace identifier. | ||
|
||
If one of Sentry's supported backend SDKs is configured for the application handling the incoming uptime check request, the trace will continue through your application. Learn more about [how distributed tracing works](/product/tracing/). | ||
|
||
Example Uptime check request: | ||
|
||
```HTTP | ||
GET /example-uptime-endpoint HTTP/1.1 | ||
Host: sentry.io | ||
User-Agent: SentryUptimeBot/1.0 (+http://docs.sentry.io/product/alerts/uptime-monitoring/) | ||
Sentry-Trace: 32d4011600324838afcd666edadc1d09-8d5ca7419a02ca36 | ||
``` | ||
|
||
## Tracing Errors | ||
|
||
Error tracing is enabled by default for uptime checks. When downtime is detected, an [Uptime Issue](/product/issues/issue-details/uptime-issues/) is created. You can then go to Sentry's [**Trace Explorer**](/product/explore/traces/) page to view any related errors. | ||
|
||
Because uptime requests won't override your SDK’s error sampling rate, some errors may not appear in traces if that rate is set to below 1. | ||
|
||
### Disabling Uptime Error Tracing | ||
|
||
To disable error tracing for uptime checks, configure a [before send](/platform-redirect/?next=/configuration/filtering/) filter in your SDK to ignore errors from Sentry's `User-Agent`. Here's an example: | ||
|
||
```typescript {tabTitle: Node.js Express} {filename: instrument.mjs} | ||
import * as Sentry from "@sentry/node"; | ||
|
||
Sentry.init({ | ||
dsn: "___PUBLIC_DSN___", | ||
// Filtering example for a Node.js Express app | ||
beforeSend(event) { | ||
const userAgent = event.request?.headers?.["user-agent"]; | ||
|
||
// Ignore events captured in a request from SentryUptimeBot | ||
if (userAgent && userAgent.includes("SentryUptimeBot")) { | ||
return null; | ||
} | ||
|
||
// Process other events | ||
return event; | ||
}, | ||
}); | ||
``` | ||
## Tracing Spans | ||
Unlike error tracing, span tracing is **disabled** by default for uptime checks, but can be enabled by allowing sampling in your Uptime Alert settings. Enabling span tracing can be helpful because it provides a detailed view of the timing and flow of requests and operations during uptime checks, which is especially useful for diagnosing timeouts or performance issues. | ||
### Enabling Uptime Tracing for Spans | ||
To enable span tracing, modify your Uptime Alert settings with the "Allow Sampling" option. This will ensure that Sentry defers the sampling decision to your SDK, which will follow the trace sample rate you've configured. | ||
Because uptime requests won't override your SDK’s error sampling rate, some errors may not appear in traces if that rate is set to below 1. | ||
![Uptime Alert Allow Sampling Configuration](./img/uptime-allow-sampling.png) | ||
### Custom Sampling | ||
To ensure that all spans from uptime checks are sampled, even if your SDK's trace sampling rate is below 1, you can configure a [sampling function](/platform-redirect/?next=/configuration/sampling/). Here's an example: | ||
```typescript {tabTitle: Node.js Express} {filename: instrument.mjs} | ||
import * as Sentry from "@sentry/node"; | ||
|
||
Sentry.init({ | ||
dsn: "___PUBLIC_DSN___", | ||
// Custom tracer function for a Node.js Express app | ||
tracesSampler: ({ name, attributes, parentSampled }) => { | ||
const userAgent = attributes?.["http.user_agent"]; | ||
|
||
if ( | ||
typeof userAgent === "string" && | ||
userAgent.includes("SentryUptimeBot") | ||
) { | ||
// Sample 100% of spans from SentryUptimeBot | ||
return 1; | ||
} | ||
|
||
// Sample 50% of other spans | ||
return 0.5; | ||
}, | ||
}); | ||
``` | ||
## Billing Considerations | ||
Errors and spans captured during uptime checks are [billed as regular events](https://sentry.io/pricing/) in Sentry. Configure sampling thoughtfully to manage costs. |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
--- | ||
title: Dev Toolbar | ||
sidebar_order: 120 | ||
description: "Bring critical Sentry insights and tools directly into your web app for easier troubleshooting with the Dev Toolbar." | ||
--- | ||
|
||
<Alert level="info"> | ||
The Dev Toolbar is currently in **beta**. Beta features are still in progress and may have bugs. Please reach out on | ||
[GitHub](https://github.com/getsentry/sentry-toolbar/issues) if you have any feedback or concerns. | ||
</Alert> | ||
|
||
Developers spend a lot of time troubleshooting their web apps on local, staging, and production environments. The Sentry Dev Toolbar pulls data from [sentry.io](http://sentry.io) and surfaces relevant, actionable issues to you when you have the most context for understanding it: as you browse your own site. The Dev Toolbar is a floating widget in your web app, offering meaningful Sentry insights for the specific page being viewed through three different **page-aware** panels: Issues, Feedback, and Feature Flags. | ||
|
||
![Collapsed Dev Toolbar in context of a website](./img/toolbar-collapsed.png) | ||
|
||
## Issues Panel | ||
|
||
The issues panel shows you your highest priority frontend [issues](https://docs.sentry.io/product/issues/) for the page you are currently viewing. From the Dev Toolbar, you can quickly jump into specific issues in Sentry to get more detailed information (examples: Sentry project, issue title, description, and when the issue was first and last seen) and take action (examples: assign to a team member or mark as resolved). With the issues panel, you can browse the pages that are most important to your business and understand the top issues impacting your user base. | ||
|
||
![Dev Toolbar with the Issues Panel open](./img/issues-panel.png) | ||
|
||
## Feedback Panel | ||
|
||
The feedback panel shows you the most recent user feedback messages for the page you are on, so you can more easily contextualize it. The feedback often describes suboptimal experiences that are not strictly code-thrown errors, such as misleading UX, broken links, and typos. The feedback panel works by pulling feedback messages from [Sentry’s User Feedback Widget](https://docs.sentry.io/product/user-feedback/#user-feedback-widget). Just like with the Issues panel, clicking on a particular user feedback will take you to the full detailed User Feedback page within Sentry. | ||
|
||
![Dev Toolbar with the Feedback Panel open](./img/feedback-panel.png) | ||
|
||
## Feature Flags Panel | ||
|
||
Feature flags are a powerful tool that allow you to control the visibility of features in your app, enabling you to ship, test, and experiment with confidence. The feature flag panel allows you to quickly view and override feature flags locally. You can override any feature flag to be `true` or `false` for your browser session, so you can verify its behavior and observe the impact it might have on errors. Learn more about how to [configure the feature flag panel](/product/dev-toolbar/setup/#implement-feature-flag-adapter) and [what data Sentry can track](/product/explore/feature-flags/) related to your feature flagging system. | ||
|
||
|
||
![Dev Toolbar with the Feature Flags Panel open](./img/feature-flags-panel.png) | ||
|
||
## Login Flow | ||
|
||
After setting up the Dev Toolbar you’ll see a “Login to Sentry” button floating in the center of the page. To access any information from your Sentry organization, you have to click this button and login to Sentry. | ||
![Dev Toolbar login button](./img/login-button.png) | ||
|
||
After clicking the button, you will see a pop-up window for logging in to Sentry. | ||
![Sentry log in pop up](./img/login-popup.png) | ||
|
||
If it's your first time setting up the Dev Toolbar, there will be a button with a link to Sentry's Dev Toolbar settings page to configure your domain. | ||
![Dev Toolbar configure domains button](./img/configure-domain.png) | ||
|
||
You'll need to add your domain URL to Allowed Origins in Sentry on the **Settings > Project > Dev Toolbar** page. | ||
![Sentry's Dev Toolbar Settings Page](./img/sentry-toolbar-settings.png) | ||
|
||
Learn more about setting up the toolbar, including configuring a feature flag provider and integrating the toolbar in different environments, on the next page. |
Oops, something went wrong.