Skip to content

Commit 395ee0d

Browse files
committed
Merge branch 'master' of github.com:getsentry/sentry-docs into smi/sveltekit/clean-up-manual-qs-instrumentation
2 parents 475781d + 0e28b54 commit 395ee0d

File tree

218 files changed

+6219
-976
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

218 files changed

+6219
-976
lines changed

.babelrc.js.bak

Lines changed: 0 additions & 16 deletions
This file was deleted.

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,8 @@ public/page-data
9393
# tsbuildinfo file generated by CI
9494
tsconfig.tsbuildinfo
9595

96+
# Ignore generated files
97+
/public/md-exports/
9698
public/mdx-images/*
9799

98100
# yalc

app/[[...path]]/page.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -199,10 +199,10 @@ export async function generateMetadata(props: MetadataProps): Promise<Metadata>
199199
? `https://${process.env.VERCEL_URL}`
200200
: domain;
201201
let title =
202-
'Sentry Docs | Application Performance Monitoring &amp; Error Tracking Software';
202+
'Sentry Docs | Application Performance Monitoring & Error Tracking Software';
203203
let customCanonicalTag: string = '';
204204
let description =
205-
'Self-hosted and cloud-based application performance monitoring &amp; error tracking that helps software teams see clearer, solve quicker, &amp; learn continuously.';
205+
'Self-hosted and cloud-based application performance monitoring & error tracking that helps software teams see clearer, solve quicker, and learn continuously.';
206206
// show og image on the home page only
207207
const images =
208208
((await props.params).path ?? []).length === 0

app/sitemap.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import {getDevDocsFrontMatter, getDocsFrontMatter} from 'sentry-docs/mdx';
55

66
export default async function sitemap(): Promise<MetadataRoute.Sitemap> {
77
if (isDeveloperDocs) {
8-
const docs = getDevDocsFrontMatter();
8+
const docs = await getDevDocsFrontMatter();
99
const baseUrl = 'https://develop.sentry.dev';
1010
return docsToSitemap(docs, baseUrl);
1111
}

develop-docs/backend/application-domains/metrics.mdx

Lines changed: 0 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -120,43 +120,3 @@ SENTRY_METRICS_OPTIONS = {
120120
```
121121

122122
Once configured, the metrics backend will emit to the DogStatsD server and then flushed periodically to Datadog over HTTPS.
123-
124-
## Logging Backend
125-
126-
The `LoggingBackend` reports all operations to the `sentry.metrics` logger. In addition to the metric name and value, log messages also include extra data such as the `instance` and `tags` values which can be displayed using a custom formatter.
127-
128-
```python
129-
SENTRY_METRICS_BACKEND = 'sentry.metrics.logging.LoggingBackend'
130-
131-
LOGGING['loggers']['sentry.metrics'] = {
132-
'level': 'DEBUG',
133-
'handlers': ['console:metrics'],
134-
'propagate': False,
135-
}
136-
137-
LOGGING['formatters']['metrics'] = {
138-
'format': '[%(levelname)s] %(message)s; instance=%(instance)r; tags=%(tags)r',
139-
}
140-
141-
LOGGING['handlers']['console:metrics'] = {
142-
'level': 'DEBUG',
143-
'class': 'logging.StreamHandler',
144-
'formatter': 'metrics',
145-
}
146-
```
147-
148-
## Composit Experimental Backend
149-
150-
The current implementation of the `MetricsBackend` is known as `CompositExperimentalMetricsBackend`. The `CompositeExperimentalMetricsBackend` reports all operations to both Datadog and Sentry. For this reason, you will be able to see your metrics on both platforms.
151-
152-
```python
153-
SENTRY_METRICS_BACKEND = "sentry.metrics.composite_experimental.CompositeExperimentalMetricsBackend"
154-
SENTRY_METRICS_OPTIONS = {
155-
"primary_backend": "sentry.metrics.dogstatsd.DogStatsdMetricsBackend",
156-
"primary_backend_args": {"statsd_host": "127.0.0.1", "statsd_port": 8126},
157-
"allow_list": {
158-
# List of metrics sent to Sentry (used for gradual rollout of DDM feature)
159-
"my_metric1",
160-
"my_metric2",
161-
}
162-
```

develop-docs/backend/application-domains/translations.mdx

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,9 @@ We use [**Transifex**](https://www.transifex.com/getsentry/sentry) to translate
77

88
Other things that mean translating: localization, internationalization, i18n, l10n
99

10-
If you need access to manage translations, translators, languages, or anything else, please talk to one of the following people:
11-
12-
- Ben Vinegar
13-
- Vlad Cretu
10+
<Alert level="info">
11+
If you're a sentry employee and need access to manage translations, translators, languages, or anything else, please open a ticket with IT for access to Transifex.
12+
</Alert>
1413

1514
## Approving Translators and Languages
1615

develop-docs/development-infrastructure/continuous-integration.mdx

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -23,21 +23,3 @@ We use Google Cloud Build to build our Docker containers. Every single commit (i
2323
## CI workflow for testing changes with getsentry
2424

2525
See [Workflow](/development/workflow/).
26-
27-
## Troubleshooting CI
28-
29-
You might also be interested in <Link to="/development/environment/#troubleshooting">troubleshooting the dev environment</Link>.
30-
31-
---
32-
33-
**Problem:**
34-
35-
When pushing your build to staging and it fails the `Ensure test image` step on Travis.
36-
37-
**Solution:**
38-
39-
You probably forgot to push your branch on Sentry to GitHub.
40-
41-
## Old Systems
42-
43-
For historical reference, we used to use Travis and Percy which have been replaced by GitHub actions and [a GitHub action](https://github.com/getsentry/action-visual-snapshot) respectively.

develop-docs/development-infrastructure/devservices.mdx

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ commands:
2424
update Update devservices to the latest version
2525
purge Purge the local devservices cache
2626
toggle Toggle how a service is run
27+
foreground Foreground a background process for debugging
28+
serve Start the devserver
2729
```
2830
2931
## Installation
@@ -70,18 +72,50 @@ docker volume rm sentry_postgres-data
7072
7173
## Running devservices with a specific mode
7274
73-
Common modes:
75+
Common modes in sentry:
7476
7577
- `symbolicator`: Bring up sentry dependencies and symbolicator
7678
- `chartcuterie`: Bring up sentry dependencies and chartcuterie
79+
- `taskbroker`: Bring up sentry dependencies, taskbroker, taskworker, and taskworker-scheduler
7780
- `minimal`: Bring up minimal services for local development
78-
- `profiling`: Bring up sentry dependencies and vroom
81+
- `profiling`: Bring up sentry dependencies, vroom, and profiling consumers
82+
- `crons`: Brings up sentry dependencies and monitor consumers
83+
- `tracing`: Brings up sentry dependencies and everything necessary for transactions, spans, and metrics
84+
- `ingest`: Brings up the most common sentry dependencies to support ingestion of errors and transactions
85+
- `ingest-all`: Brings up sentry dependencies to support ingesting everything
7986
- `full`: Bring up all services (symbolicator, taskbroker, snuba, vroom, etc)
8087
8188
```shell
8289
devservices up --mode symbolicator
8390
```
8491
92+
## Debugging a Background Process Interactively
93+
94+
There are a couple groups of processes that are running in the background. These include ingest consumers, post process forwarders, and taskworkers. You'll want to use the devservices foreground command to debug these interactively if you cannot do so with the devserver itself.
95+
96+
1. Bring up your development environment:
97+
``` sh
98+
devservices up --mode taskbroker
99+
devservices serve
100+
```
101+
102+
2. Add a breakpoint
103+
104+
``` python
105+
def example () -> None
106+
...
107+
breakpoint() // After python 3.7
108+
import pdb; pdb.set_trace() // Before python 3.7
109+
...
110+
```
111+
112+
3. Bring a process to the foreground for debugging
113+
``` sh
114+
devservices foreground taskbroker
115+
```
116+
117+
118+
85119
## Running a dependency locally
86120

87121
You can run a dependency locally instead of as a container by toggling its runtime via the `devservices toggle` command.

develop-docs/development-infrastructure/environment/index.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,12 +65,12 @@ First we will use [mkcert](https://github.com/FiloSottile/mkcert) to create and
6565
brew install mkcert
6666
brew install nss # if you use Firefox
6767
brew install caddy
68-
yarn mkcert-localhost
68+
pnpm mkcert-localhost
6969
```
7070

7171
Then we will run the reverse proxy as needed:
7272
```shell
73-
yarn https-proxy
73+
pnpm https-proxy
7474
```
7575

7676
After the server is running we can visit the dev server using `https` at port `:8003` instead of over `http` at `:8000`.

develop-docs/sdk/expected-features/index.mdx

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ ignore_transactions = ['GET /api/health','/api/v1/*']
6666

6767
## Rate Limiting
6868

69-
Respect Sentrys HTTP 429 `Retry-After` header, or, if the SDK supports multiple payload types (e.g. errors and transactions), the `X-Sentry-Rate-Limits` header. Outgoing SDK requests should be dropped during the backoff period.
69+
Respect Sentry's HTTP 429 `Retry-After` header, or, if the SDK supports multiple payload types (e.g. errors and transactions), the `X-Sentry-Rate-Limits` header. Outgoing SDK requests should be dropped during the backoff period.
7070

7171
See <Link to="/sdk/expected-features/rate-limiting">Rate Limiting</Link> for details.
7272

@@ -104,7 +104,7 @@ So users can easily spot errors during development, the SDK can automatically en
104104

105105
## In-App frames
106106

107-
Stack parsing can tell which frames should be identified as part of the users application (as opposed to part of the language, a library, or a framework), either automatically or by user configuration at startup, often declared as a package/module prefix.
107+
Stack parsing can tell which frames should be identified as part of the user's application (as opposed to part of the language, a library, or a framework), either automatically or by user configuration at startup, often declared as a package/module prefix.
108108

109109
## Surrounding Source in Stack Trace
110110

@@ -153,6 +153,22 @@ implement the `onCrashedLastRun` callback on the options. This callback gets cal
153153
terminated with a crash. The SDK should execute the callback only once during the entire run of the program to avoid multiple callbacks if there are multiple
154154
crash events to send.
155155

156+
#### Session Replay Integration with Feedback Widgets
157+
158+
When Session Replay's `onErrorSampleRate` is greater than 0, SDKs must integrate replay capture with feedback functionality. The timing of replay sampling depends on how feedback is captured:
159+
160+
**Feedback Widget Integration:**
161+
When a feedback widget is added to an application, the SDK must sample the replay when the widget **opens**, not when the feedback is submitted. This timing is critical because:
162+
163+
- Sampling when the widget opens captures the user's session leading up to the feedback moment
164+
- Sampling only when feedback is submitted would result in the replay buffer primarily showing the user typing their message, which provides minimal debugging context
165+
- The replay buffer should contain the user's actions and application state prior to encountering the issue they're reporting
166+
167+
SDKs should trigger replay sampling and flushing as soon as the feedback widget becomes visible to the user, ensuring the complete context is captured regardless of whether the user ultimately submits the feedback.
168+
169+
**Manual API Integration:**
170+
When feedback is captured using the manual API, the SDK must sample and flush the replay during the execution of the feedback capture API to ensure session context is preserved.
171+
156172
### Backend Platforms
157173

158174
On backend platforms, SDKs should document how to use the [last event ID](#retrieve-last-event-id) to prompt the user for feedback themselves.

0 commit comments

Comments
 (0)