Skip to content

Commit b567c0e

Browse files
Merge remote-tracking branch 'origin' into mz/mobile-session-health-docs
2 parents f9c0773 + cdd1d8c commit b567c0e

File tree

45 files changed

+776
-566
lines changed

Some content is hidden

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

45 files changed

+776
-566
lines changed

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

+2-2
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ Defaults to `(empty)`.
7878
<dd><markdown>
7979
Declared in `config.yml`.
8080

81-
Should Sentry use SSL when connecting to the SMTP server?
81+
Should Sentry use SSL when connecting to the SMTP server? Mutually exclusive with `mail.use-tls`.
8282

8383
Defaults to `false`.
8484

@@ -88,7 +88,7 @@ Defaults to `false`.
8888
<dd><markdown>
8989
Declared in `config.yml`.
9090

91-
Should Sentry use TLS when connecting to the SMTP server?
91+
Should Sentry use STARTTLS when connecting to the SMTP server? Mutually exclusive with `mail.use-ssl`.
9292

9393
Defaults to `false`.
9494

develop-docs/sdk/data-model/envelope-items.mdx

+2-60
Original file line numberDiff line numberDiff line change
@@ -181,67 +181,9 @@ details.
181181

182182
### User Feedback
183183

184-
Item type `"feedback"`. This Item contains an [event payload](/sdk/data-model/event-payloads/) encoded in JSON, with an additional `feedback` context object.
184+
Item type `"feedback"` contains an event with a feedback context in the payload encoded in JSON.
185185

186-
Example payload:
187-
```json
188-
{
189-
"event_id": "9ec79c33ec9942ab8353589fcb2e04dc",
190-
"timestamp": "2011-05-02T17:41:36Z",
191-
"platform": "javascript",
192-
"level": "error",
193-
"contexts": {
194-
"feedback": {
195-
"contact_email": "[email protected]",
196-
"name": "John Smith",
197-
"message": "I love session replay!",
198-
"url": "https://sentry.io/replays/",
199-
"associated_event_id": "32fd1995636d446385016e2747623e11",
200-
"replay_id":"82840977e85b4ed3bc27f7b5b25cec15"
201-
}
202-
}
203-
}
204-
```
205-
206-
**Payload Attributes**
207-
208-
We only document attributes for the `contexts.feedback` object, which is **required**
209-
for this item type. For other attributes, see [Event Payloads](/sdk/data-model/event-payloads/).
210-
211-
`message`
212-
213-
: **String, required.** Comments of the user, describing what happened and/or sharing
214-
feedback. The max length is **4096 characters**.
215-
216-
`contact_email`
217-
218-
: *String, optional.* The email of the user who submitted the feedback. If excluded, Sentry attempts to fill this in with user context. Anonymous feedbacks (no name or email) are still accepted.
219-
220-
`name`
221-
222-
: *String, optional.* The name of the user who submitted the feedback. If excluded, Sentry attempts to fill this in with user context. Anonymous feedbacks (no name or email) are still accepted.
223-
224-
`url`
225-
226-
: *String, optional.* The URL of the webpage the user was on when submitting feedback.
227-
This may be used to search for or set alerts on feedback.
228-
229-
`associated_event_id`
230-
231-
: *UUID String, optional.* The identifier of an error event in the same project.
232-
Use this to explicitly link a related error in the feedback UI.
233-
234-
`replay_id`
235-
236-
: *UUID String, optional.* The identifier of a related Session Replay in the same
237-
project. Sentry uses this ID to render a Replay clip in the feedback UI.
238-
239-
**Attaching Screenshots:**
240-
241-
You can associate screenshots with a feedback by sending image data as
242-
[attachment items](/sdk/data-model/envelope-items/#attachment), with `event_id`
243-
corresponding to the feedback item. We recommend sending the items in the same
244-
Envelope.
186+
See the <Link to="/sdk/telemetry/feedbacks/">feedback</Link> documentation for the payload details.
245187

246188
**Constraints:**
247189

develop-docs/sdk/expected-features/rate-limiting.mdx

+2-1
Original file line numberDiff line numberDiff line change
@@ -92,11 +92,12 @@ While these [data categories](https://github.com/getsentry/relay/blob/master/rel
9292
- `attachment`: Attachment bytes stored (unused for rate limiting)
9393
- `session`: Session update events
9494
- `profile`: Profiling events
95+
- `profile_chunk`: Continuous Profiling chunks
9596
- `replay`: Session Replays
97+
- `feedback`: User Feedbacks
9698
- `metric_bucket`: Sentry Metrics sent via the `statsd` or `metrics` items. The `namespaces` component of the *quota_limit* defines which namespace(s) will be affected.
9799
- `internal`: a sentry/system internal event[^internal]
98100

99-
100101
- **Scope**: The unit / model in Sentry that quotas are enforced for.
101102
- `organization`
102103
- `project`
+129
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
---
2+
title: Feedbacks
3+
sidebar_order: 4
4+
---
5+
6+
This document is meant for Sentry SDK developers and maintainers of the Feedback ingestion pipeline.
7+
8+
## Feedback Protocol
9+
10+
Item type `"feedback"`. This Item contains an [event payload](/sdk/data-model/event-payloads/) encoded in JSON, with an additional `feedback` context object.
11+
12+
## `"feedback"` Item
13+
14+
### Feedback Context Attributes
15+
16+
| Key | Type | Description |
17+
| ---------------------- | ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
18+
| message | string | Required. Comments of the user, describing what happened and/or sharing feedback. The max length is **4096 characters**. |
19+
| contact_email | string | The email of the user who submitted the feedback. If excluded, Sentry (not the SDK) attempts to fill this in with user context. Anonymous feedbacks (no name or email) are still accepted. |
20+
| name | string | The name of the user who submitted the feedback. If excluded, Sentry (not the SDK) attempts to fill this in with user context. Anonymous feedbacks (no name or email) are still accepted. |
21+
| url | string | The URL of the webpage the user was on when submitting feedback. This may be used to search for or set alerts on feedback. |
22+
| associated_event_id | string | The identifier of an error event in the same project. Use this to explicitly link a related error in the feedback UI. |
23+
| replay_id | string | The identifier of a related Session Replay in the same project. Sentry uses this ID to render a Replay clip in the feedback UI. |
24+
25+
### Event Attributes
26+
27+
Below is a recap of the [required attributes](/sdk/data-model/event-payloads/#required-attributes) for the event payload.
28+
For the full list of attributes, see [Event Payloads](/sdk/data-model/event-payloads/).
29+
30+
| Key | Type | Description |
31+
| -------------------------- | ------ | ----------------------------------------------- |
32+
| timestamp | number | UNIX timestamp of the current time (in seconds) |
33+
| event_id | string | Hexadecimal string representing a uuid4 value |
34+
| platform | string | Platform of the SDK |
35+
36+
### Example
37+
```json
38+
{
39+
"event_id": "9ec79c33ec9942ab8353589fcb2e04dc",
40+
"timestamp": "2011-05-02T17:41:36Z",
41+
"platform": "javascript",
42+
"contexts": {
43+
"feedback": {
44+
"contact_email": "[email protected]",
45+
"name": "John Smith",
46+
"message": "I love session replay!",
47+
"url": "https://sentry.io/replays/",
48+
"associated_event_id": "32fd1995636d446385016e2747623e11",
49+
"replay_id":"82840977e85b4ed3bc27f7b5b25cec15"
50+
}
51+
}
52+
}
53+
```
54+
55+
### Attaching Screenshots
56+
57+
You can associate screenshots with a feedback by sending image data as
58+
[attachment items](/sdk/data-model/envelope-items/#attachment), with `event_id`
59+
corresponding to the feedback item. We recommend sending the items in the same
60+
Envelope.
61+
62+
## Full Envelope Example
63+
64+
```json
65+
{"event_id":"9ec79c33ec9942ab8353589fcb2e04dc","sent_at":"2024-03-19T15:18:27.581Z","sdk":{"name":"sentry.javascript.react","version":"7.105.0"}}
66+
{"type":"feedback"}
67+
{
68+
"event_id": "9ec79c33ec9942ab8353589fcb2e04dc",
69+
"timestamp": "2011-05-02T17:41:36Z",
70+
"platform": "javascript",
71+
"contexts": {
72+
"organization": { "id": "0", "slug": "sentry" },
73+
"feedback": {
74+
"contact_email": "[email protected]",
75+
"name": "John Smith",
76+
"message": "I love session replay!",
77+
"url": "https://sentry.io/replays/",
78+
"associated_event_id": "32fd1995636d446385016e2747623e11",
79+
"replay_id":"82840977e85b4ed3bc27f7b5b25cec15"
80+
}
81+
},
82+
"level": "error",
83+
"environment": "prod",
84+
"release": "frontend@f00",
85+
"sdk": {
86+
"integrations": [
87+
"BrowserTracing",
88+
"BrowserProfiling",
89+
"Replay",
90+
"ReplayCanvas"
91+
],
92+
"name": "sentry.javascript.react",
93+
"version": "7.105.0"
94+
},
95+
"tags": {
96+
"sentry_version": "24.4.0.dev0",
97+
},
98+
"user": {
99+
"ip_address": "127.0.0.1",
100+
"email": "[email protected]",
101+
"id": 1,
102+
"name": "John Smith"
103+
}
104+
}
105+
```
106+
107+
## Feedback SDK Pipeline
108+
109+
A feedback captured by capture_feedback is processed by the SDK. Note: The event can be discarded at any of the stages, at which point no further processing happens.
110+
111+
### BeforeSendFeedback
112+
113+
SDKs should implement a `beforeSendFeedback` callback to allow users to modify the feedback before it is sent. This callback should be similar to the existing [`beforeSend`](/sdk/expected-features/#before-send-hook) callback used for events.
114+
115+
### Scope Data and Event Processors
116+
117+
The scope is applied to the feedbacks, including tags, user, trace and contexts. The scope’s _event processors_ are invoked, too.
118+
119+
### Rate Limiting
120+
121+
[Rate limiting](/sdk/expected-features/rate-limiting/) is applied to feedbacks in the same way as it is applied to events.
122+
123+
### Dropped Feedback Reports
124+
125+
There is no sample rate for feedbacks, as they are always sampled. However, a feedback can be discarded at any of the pipeline stages, for reasons like rate limiting or an invalid message (too large or empty). The SDK should report dropped feedbacks through [client reports](/sdk/telemetry/client-reports/).
126+
127+
### Session Replay Integration
128+
129+
When sending feedback, SDKs are expected to flush the current Session Replay, if running. This ensures a meaningful replay recording exists and can be included in the `replay_id` attribute of the feedback context.

develop-docs/self-hosted/email.mdx

+6-2
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,18 @@ description: Set up and configure email notifications for your self-hosted Sentr
1111

1212
## Outbound Email
1313

14-
Self-hosted Sentry ships with a built-in outgoing SMTP server powered by [exim4](https://hub.docker.com/r/tianon/exim4). The default configuration is set to use this server. All you need to do is to set a valid address for `mail.from` setting in `config.yml` and the [FQDN](https://en.wikipedia.org/wiki/Fully_qualified_domain_name) of your Sentry instance for `SENTRY_MAIL_HOST` in `.env`. Keep in mind that if you start sending too many emails to public addresses, your new server may get marked as a spammer and banned.
14+
It is recommended to use an external SMTP server due to various sender requirements implemented by major email providers, but if you are testing or running a self-hosted Sentry instance on a local network, you can use the built-in SMTP server, powered by [exim4](https://hub.docker.com/r/tianon/exim4). The default configuration is set to use this server. All you need to do is to set a valid address for `mail.from` setting in `config.yml` and the [FQDN](https://en.wikipedia.org/wiki/Fully_qualified_domain_name) of your Sentry instance for `SENTRY_MAIL_HOST` in `.env`.
1515

16-
If you want to use an external SMTP server you can set the relevant `mail.*` settings in `config.yml` file and ignore the built-in SMTP server. Refer to our [email service documentation](/backend/email/) for all the details on what each setting means and does. If your MX records usually resolve to internal private network mail handlers, see [this ticket](https://github.com/getsentry/self-hosted/issues/1202) for some pointers.
16+
If you want to use an external SMTP server you can set the relevant `mail.*` settings in `config.yml` file and ignore the built-in SMTP server. If you don't have an external SMTP server, yet you need to see sent emails, you can set `mail.backend` to `console` on your `config.yml` file. Refer to our [email service documentation](/backend/email/) for all the details on what each setting means and does.
17+
18+
If your MX records usually resolve to internal private network mail handlers, see [this ticket](https://github.com/getsentry/self-hosted/issues/1202) for some pointers.
1719

1820
<Alert title="Warning" level="warning">
1921
Because of the way configuration is layered, if you update <code>mail</code> settings through the web interface, you will need to also comment out the <code>mail.host: 'smtp'</code> default in your <code>config.yml</code> in order for your desired settings to be picked up.
2022
</Alert>
2123

24+
Sentry does not support sending outbound email with any other protocol than SMTP (examples: Sendgrid's API, AWS SES API, Mailgun API). Usually, those services provide SMTP relay that you can use.
25+
2226
## Inbound Email
2327

2428
Sentry has very limited inbound mail support through [Mailgun](https://documentation.mailgun.com/en/latest/quickstart-receiving.html). You can find all the information regarding how to set this up over at our [inbound email service documentation](/backend/email/#inbound-email).

docs/organization/early-adopter-features/index.mdx

+1
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,4 @@ Limitations:
2424
- [New Trace Explorer With Span Metrics](/product/explore/new-trace-explorer/)
2525
- [Frontend Session Health on Insights](/product/insights/frontend/session-health/)
2626
- [Mobile Session Health on Insights](/product/insights/mobile/session-health/)
27+
- [Frontend Session Health on Insights](/product/insights/frontend/session-health/)

docs/organization/integrations/index.mdx

+1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ For more details, see the [full Integration Platform documentation](/organizatio
1919
| [All Quiet](https://docs.allquiet.app/integrations/inbound/sentry) | X | | |
2020
| [Blar](/organization/integrations/notification-incidents/blar/) | X | | |
2121
| [Datadog](https://docs.datadoghq.com/integrations/sentry/) | X | | |
22+
| [Glue.ai](/organization/integrations/notification-incidents/glueai/) | | X | |
2223
| [Microsoft Teams](/organization/integrations/notification-incidents/msteams/) | X | X | |
2324
| [Opsgenie](/organization/integrations/notification-incidents/opsgenie/) | X | X | |
2425
| [PagerDuty](/organization/integrations/notification-incidents/pagerduty/) | X | X | |
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
---
2+
title: Glue.ai
3+
sidebar_order: 1
4+
description: "Learn about Sentry's Glue.ai integration"
5+
---
6+
7+
The Glue.ai integration allows users to get notified about metrics alerts via Glue so that they can discuss and triage efficiently.
8+
9+
This integration is maintained and supported by Glue.ai. For more details, questions, or support feel free to contact [email protected].
10+
11+
## Install and Configure
12+
13+
<Alert>
14+
15+
Sentry Owner, Manager, or Admin permissions are required to install this integration.
16+
17+
</Alert>
18+
19+
1. Navigate to **Settings > Integrations > Glue.ai**
20+
21+
2. Follow the full [Glue.ai installation instructions](https://docs.glue.ai/integrations/sentry-coming-soon).

docs/organization/integrations/notification-incidents/index.mdx

+1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ description: "Learn more about Sentry's notification and incidents integrations.
77
- [All Quiet](https://docs.allquiet.app/integrations/inbound/sentry)
88
- [Blar](/organization/integrations/notification-incidents/blar/)
99
- [Datadog](https://docs.datadoghq.com/integrations/sentry/)
10+
- [Glue.ai](/organization/integrations/notification-incidents/glueai/)
1011
- [Microsoft Teams](/organization/integrations/notification-incidents/msteams/)
1112
- [Opsgenie](/organization/integrations/notification-incidents/opsgenie/)
1213
- [PagerDuty](/organization/integrations/notification-incidents/pagerduty/)

docs/organization/integrations/source-code-mgmt/github/index.mdx

+12-14
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,16 @@ sidebar_order: 1
44
description: "Learn more about Sentry's GitHub integration and how it can track and resolve bugs faster by using data from your GitHub commits, and streamline your triaging process by creating a GitHub issue directly from Sentry."
55
---
66

7-
If you're not sure which GitHub integration you need to configure, please take a look at the URL. URLs like `https://github.com/org-name` are usually for GitHub-hosted accounts and should use the regular GitHub (not GitHub Enterprise) integration. See [Install](#install) for more details.
7+
There are two types of GitHub integrations, so make sure you're choosing the correct one:
8+
- [GitHub](#installing-github) - For regular GitHub accounts, these will have URLs like `https://github.com/org-name`. Follow the '[Installing GitHub](#installing-github)' instructions, **do not use the GitHub Enterprise integration**.
9+
- [GitHub Enterprise](#installing-github-enterprise) - For GitHub Enterprise Cloud or GitHub Enterprise Server instances. Some example URLs:
10+
- `https://github.org-name.com`
11+
- `https://github.com/enterprises/org-name`
12+
- `https://org-name.ghe.com/`
813

9-
Self-hosted GitHub Enterprise accounts typically have URLs that look more like `https://github.org-name.com` (or some other customization of the domain). In this case, you should configure the [GitHub Enterprise integration](#github-enterprise).
14+
These [can also be modified](https://docs.github.com/en/enterprise-cloud@latest/admin/managing-your-enterprise-account/changing-the-url-for-your-enterprise) so make sure you have have the correct URL during installation. For these accounts, follow the '[Installing GitHub Enterprise](#installing-github-enterprise)' instructions, **do not use the regular GitHub integration**.
1015

11-
## Install
16+
## Installing GitHub
1217

1318
<Alert>
1419

@@ -34,23 +39,16 @@ Sentry owner, manager, or admin permissions, and GitHub owner permissions are re
3439

3540
The GitHub integration is available for all projects under your Sentry organization. You can connect multiple GitHub organizations to one Sentry organization, but you **cannot** connect a single GitHub organization to multiple Sentry organizations.
3641

37-
## GitHub Enterprise
42+
## Installing GitHub Enterprise
3843

39-
<Alert>
40-
41-
If your GitHub Enterprise instance is self-hosted/on-prem, follow the instructions below.
42-
If you're using GitHub Enterprise Cloud, follow the [instructions for GitHub](/organization/integrations/source-code-mgmt/github/#install).
43-
44-
</Alert>
45-
46-
#### Add new GitHub App
44+
### Add new GitHub App
4745

4846
1. Confirm [Sentry's IP ranges](/security-legal-pii/security/ip-ranges/) are allowed for your GitHub Enterprise instance.
4947
2. In your GitHub Enterprise organization, navigate to Settings > Developer Settings > **GitHub Apps** and click to add a new **New GitHub App**.
5048

5149
![Create GitHub Enterprise app](./img/github-e-new-app.png)
5250

53-
#### Register new GitHub App
51+
### Register new GitHub App
5452

5553
1. First, you'll need to generate a webhook secret. For example, in terminal:
5654

@@ -148,7 +146,7 @@ If you're using GitHub Enterprise Cloud, follow the [instructions for GitHub](/o
148146
</tbody>
149147
</table>
150148

151-
#### Install your GitHub App
149+
### Install your GitHub App
152150

153151
1. In Sentry, navigate to Organization Settings > **Integrations**.
154152
2. Next to GitHub Enterprise, click "Install".

0 commit comments

Comments
 (0)