Skip to content

Commit c574f62

Browse files
Merge branch 'master' into net-otel-http
2 parents b1bab59 + f1bc5c8 commit c574f62

File tree

17 files changed

+178
-38
lines changed

17 files changed

+178
-38
lines changed

.github/workflows/lint-404s.yml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,13 @@ jobs:
3636
${{ github.workspace }}/node_modules
3737
${{ github.workspace }}/.next/cache
3838
${{ github.workspace }}/.eslintcache
39-
key: node-${{ runner.os }}-${{ hashFiles('**/yarn.lock') }}
39+
key: node-${{ runner.os }}-${{ steps.setup-node.outputs.node-version }}-${{ hashFiles('**/yarn.lock') }}
4040
restore-keys: |
41-
node-${{ runner.os }}-
41+
node-${{ runner.os }}-${{ steps.setup-node.outputs.node-version }}-
4242
4343
- run: yarn install --frozen-lockfile
44-
if: steps.cache.outputs.cache-hit != 'true'
4544

46-
- run: yarn build
45+
- run: yarn next build
4746
if: steps.filter.outputs.docs == 'true'
4847
env:
4948
SENTRY_DSN: https://[email protected]/0

develop-docs/sdk/telemetry/scopes.mdx

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,57 @@ Data from all three scope types MUST be merged in a specific order before being
5252

5353
![Scope Inheritance](scope-inheritance.png)
5454

55+
## Scope Methods
56+
57+
### Setting Attributes
58+
59+
Users MUST be able to attach attributes to any scope using a dedicated method (e.g., `scope.setAttributes()` or `scope.setAttribute()`). These attributes follow the structure defined in the [Span Protocol](/sdk/telemetry/spans/span-protocol/#attribute-object-properties).
60+
61+
Attributes are key-value pairs where each value is an object containing:
62+
63+
- `type`: The data type (`"string"`, `"integer"`, `"double"`, `"boolean"`, `"string[]"`, `"integer[]"` and `"double[]"`)
64+
- `value`: The actual attribute value, which MUST match the specified type
65+
- `unit` (optional): The unit of measurement (e.g., `"ms"`, `"s"`, `"bytes"`, `"count"`, `"percent"`)
66+
67+
#### Example Usage
68+
69+
```javascript
70+
Sentry.getGlobalScope().setAttributes({
71+
"app.feature_flag.enabled": true,
72+
"app.session_duration": {
73+
type: "integer",
74+
value: 3600,
75+
unit: "s"
76+
}
77+
});
78+
```
79+
80+
```python
81+
sentry_sdk.get_global_scope().set_attributes({
82+
"app.feature_flag.enabled": True,
83+
"app.session_duration": {
84+
"type": "integer",
85+
"value": 3600,
86+
"unit": "s"
87+
}
88+
})
89+
```
90+
91+
#### Method Signature
92+
93+
The method SHOULD accept a dictionary/map/object where:
94+
- Keys are attribute names (strings)
95+
- Values are attribute objects with `type`, `value`, and optionally `unit` properties
96+
97+
#### Behavior
98+
99+
- Attributes set on the global scope MUST be applied to all logs
100+
- Attributes set on the isolation scope MUST be applied to all logs in that execution context
101+
- Attributes set on the current scope MUST be applied only to the current log
102+
- When the same attribute key exists in multiple scopes, the more specific scope's value takes precedence (current > isolation > global)
103+
104+
See [Span Protocol - Common Attribute Keys](/sdk/telemetry/spans/span-protocol/#common-attribute-keys) for a list of standard attributes and [Sentry Conventions](https://github.com/getsentry/sentry-conventions/) for the complete attribute registry.
105+
55106
## Related Documents
56107

57108
This document provides a concise summary of the [Hub & Scope Refactoring](/sdk/miscellaneous/hub_and_scope_refactoring/), focusing on implementation details and expected features. The original document remains unchanged, offering additional historical context and migration strategies.

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ Sentry owner, manager, or admin permissions, and GitHub owner permissions are re
5656

5757
The GitHub integration is available for all projects under your Sentry organization. You can connect multiple GitHub organizations to one Sentry organization. Connecting a GitHub organisation to multiple Sentry organisations is supported on Sentry organisations on a Business or Enterprise plans (not supported for GitHub Enterprise Server).
5858

59-
While you can install the GitHub integration from [GitHub](https://github.com/apps/sentry-io), we recommend installing it from Sentry for a more streamlined process.
59+
While you can install the GitHub integration from [GitHub](https://github.com/apps/sentry), we recommend installing it from Sentry for a more streamlined process.
6060

6161
### GitHub Permissions
6262

docs/organization/membership/index.mdx

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,15 @@ Organization-level roles enable broad access to the entire organization, as desc
3333

3434
| **Action** | **Billing** | **Member** | **Admin** | **Manager** | **Owner** |
3535
| ------------------------------------------------------------------------------- | ----------- | ---------- | --------- | ----------- | --------- |
36-
| Can see and edit billing information and subscription details || | | ||
36+
| Can edit billing information and subscription details || | | ||
37+
| Can see subscription details ||\* |\* |\* ||
3738
| Can see and edit legal and compliance details || | | ||
3839
| Can view and act on issues (such as assigning and resolving) | |||||
3940
| Can join and leave existing teams | |||||
4041
| Can add repositories (through GitHub integrations) | |||||
4142
| Can create and remove teams from the organization | | ||||
42-
| Can change project settings | |\* ||||
43-
| Can create and remove projects for the organization | |\*\* ||||
43+
| Can change project settings | |\*\* ||||
44+
| Can create and remove projects for the organization | |\*\*\* ||||
4445
| Can edit Global Integrations | | ||||
4546
| Can remove repositories | | ||||
4647
| Can add, remove, and change Org Members | | | |||
@@ -52,9 +53,11 @@ Organization-level roles enable broad access to the entire organization, as desc
5253
| Can transfer projects to another organization | | | | ||
5354
| Can remove an organization | | | | ||
5455

55-
\*Org Members will only be able to edit [ownership rules](https://sentry.io/orgredirect/organizations/:orgslug/settings/projects/action-release/ownership/) for the project.
56+
\*Only Owners and Billing users can see complete subscription details. Org Members, Admins, and Managers have access to a limited view of the subscription details.
5657

57-
\*\*If your organization is on a Business or Enterprise plan, anyone who's part of the org will be able to create a project without having to be a Team Admin. When org members create a project, they'll become the Team Admin for that project by default and have all the permissions of the [Team Admin](#permissions-1) for that project.
58+
\*\*Org Members will only be able to edit [ownership rules](https://sentry.io/orgredirect/organizations/:orgslug/settings/projects/action-release/ownership/) for the project.
59+
60+
\*\*\*If your organization is on a Business or Enterprise plan, anyone who's part of the org will be able to create a project without having to be a Team Admin. When org members create a project, they'll become the Team Admin for that project by default and have all the permissions of the [Team Admin](#permissions-1) for that project.
5861

5962
## Team-level Roles
6063

docs/platforms/godot/configuration/options.mdx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -264,9 +264,11 @@ func _before_send(event: SentryEvent) -> SentryEvent:
264264
if event.environment.contains("editor"):
265265
# Discard event if running from the editor.
266266
return null
267-
if event.message.contains("Bruno"):
267+
var error_message: String = event.get_exception_value(0)
268+
if error_message.contains("Bruno"):
268269
# Remove sensitive information from the event.
269-
event.message = event.message.replace("Bruno", "REDACTED")
270+
var redacted_message := error_message.replace("Bruno", "REDACTED")
271+
event.set_exception_value(0, redacted_message)
270272
return event
271273
```
272274

85.5 KB
Loading

docs/platforms/godot/user-feedback/index.mdx

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,57 @@ sidebar_order: 6000
77

88
Sentry makes it possible to collect user feedback, and optionally associate it with an error event.
99

10+
<Alert level="info">
11+
12+
The User Feedback feature requires Sentry Godot SDK version `1.1.0` or higher.
13+
14+
</Alert>
15+
16+
## Using User Feedback UI
17+
18+
The Sentry Godot SDK includes a reference User Feedback UI, which you can find in `addons/sentry/user_feedback/`. This folder contains:
19+
20+
- `user_feedback_gui.tscn` + script: A complete, ready-to-use user feedback UI scene that automatically scales to different viewport resolutions.
21+
- `user_feedback_form.tscn` + script: A minimal user feedback form, designed for integration into existing UI.
22+
- `sentry_theme.tres`: The reference theme file used to customize the looks of user feedback UI.
23+
24+
For quick implementation, drag and drop `user_feedback_gui.tscn` from the addon folder to your scene tree under a `CanvasLayer` node and call `show()` to display the feedback form. The form automatically scales to different viewport resolutions and handles its own visibility, hiding when users click "Submit" (sending feedback to Sentry) or "Cancel".
25+
26+
![Feedback Form](./img/user_feedback_form.png)
27+
28+
You can customize which elements are displayed by toggling optional components such as the logo, name input field, and email input field through the inspector properties. `minimum_words` property controls the minimum number of words required in the feedback message.
29+
30+
To customize the form's appearance, use the provided reference theme file (`sentry_theme.tres`). You can duplicate this file, and edit it to create custom styling, then assign your theme to the `theme` property in the Inspector for the feedback UI node. It can be used to customize fonts, colors, separation, etc. For more advanced customizations involving layout changes, copy the entire `user_feedback/` folder into your project and modify the scenes and scripts as needed.
31+
32+
<Alert level="success" title="Tip">
33+
34+
Add `user_feedback_form.tscn` as a preview while editing the theme file to see your changes in real-time.
35+
36+
</Alert>
37+
38+
### Integrating the Form Into Existing UI
39+
40+
For custom UI integration, use `user_feedback_form.tscn` instead. This component scene provides a flexible panel that can be embedded into other UI controls. Unlike the standalone GUI, you'll need to manage its visibility manually. The form exposes two signals for handling user interactions: `feedback_submitted` (triggered when feedback is sent) and `feedback_cancelled` (triggered when the user cancels the operation). After you instantiate the form inside your UI scene, you can use the provided signals to hide the form when it's no longer needed (or perform some other action):
41+
42+
```GDScript
43+
# Assuming you have already added the form to your scene with "UserFeedbackForm" unique name.
44+
@onready var user_feedback_form = %UserFeedbackForm
45+
46+
func _ready():
47+
user_feedback_form.feedback_submitted.connect(
48+
func(_feedback: SentryFeedback) -> void:
49+
user_feedback_form.hide()
50+
print("User feedback submitted.")
51+
)
52+
user_feedback_form.feedback_cancelled.connect(
53+
func() -> void:
54+
user_feedback_form.hide()
55+
print("User feedback cancelled.")
56+
)
57+
```
58+
59+
To customize the form's appearance, use the provided reference theme file (`sentry_theme.tres`), which can be duplicated to create a custom UI style. Simply assign your customized theme to the form's `theme` property in the Inspector to apply your styling changes.
60+
1061
## User Feedback API
1162

1263
The User Feedback API allows you to collect user feedback while using your own UI controls. You can submit feedback directly by creating an instance of `SentryFeedback` class, setting the required `message` and optional fields, then submitting it using `SentrySDK.capture_feedback(feedback)`.
477 KB
Loading
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
---
2+
title: External Crash Reporter
3+
description: "How to configure an external crash reporter with the Native SDK."
4+
sidebar_order: 2100
5+
---
6+
The Native SDK can be configured to work with an external crash reporter, which
7+
can be used to display crash information to the user, collect user feedback, or
8+
perform other actions when a crash occurs.
9+
10+
The external crash reporter is a user-defined executable, distinct from the
11+
system crash reporter, that is launched by the Native SDK upon a crash. It
12+
receives the path to the crash report as its only command-line argument and
13+
is responsible for submitting the crash report to Sentry.
14+
15+
[Sentry Desktop Crash Reporter](https://github.com/getsentry/sentry-desktop-crash-reporter)
16+
is a ready-made crash reporter reference implementation. It is a cross-platform
17+
desktop application made with [.NET](https://dot.net) and [Uno Platform](https://platform.uno/).
18+
19+
![Sentry Desktop Crash Reporter](./img/sentry-desktop-crash-reporter.png)
20+
21+
To configure the Native SDK to use an external crash reporter, set the
22+
`external_crash_reporter_path` option to the path of the external crash reporter
23+
executable when initializing the SDK:
24+
25+
```c
26+
sentry_options_t *options = sentry_options_new();
27+
sentry_options_set_external_crash_reporter_path(options, "/path/to/external_crash_reporter");
28+
/* ... */
29+
sentry_init(options);
30+
```

docs/platforms/python/tracing/instrumentation/custom-instrumentation/caches-module.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ description: "Learn how to manually instrument your code to use Sentry's Caches
55
---
66
A cache can be used to speed up data retrieval, thereby improving application performance. Because instead of getting data from a potentially slow data layer, your application will be getting data from memory (in a best case scenario). Caching can speed up read-heavy workloads for applications like Q&A portals, gaming, media sharing, and social networking.
77

8-
Sentry offers a [cache-monitoring dashboard](https://sentry.io/orgredirect/organizations/:orgslug/insights/backend/caches/) that can be auto-instrumented for popular Python caching setups (like <PlatformLink to="/integrations/django/">Django</PlatformLink>, <PlatformLink to="/integrations/redis/">Redis</PlatformLink>, and memcached (coming soon)).
8+
Sentry offers a [cache-monitoring dashboard](https://sentry.io/orgredirect/organizations/:orgslug/insights/backend/caches/) that can be auto-instrumented for popular Python caching setups (like <PlatformLink to="/integrations/django/">Django</PlatformLink> and <PlatformLink to="/integrations/redis/">Redis</PlatformLink>).
99

1010
If you're using a custom caching solution that doesn't have auto instrumentation, you can manually instrument it and use Sentry to get a look into how your caching solution is performing by following the setup instructions below.
1111

@@ -17,7 +17,7 @@ For detailed information about which data can be set, see the [Cache Module Deve
1717

1818
## Manual Instrumentation
1919

20-
If you're using anything other than <PlatformLink to="/integrations/django/">Django</PlatformLink>, <PlatformLink to="/integrations/redis/">Redis</PlatformLink>, memcached (coming soon), you'll need to manually instrument the [Cache Module](https://sentry.io/orgredirect/organizations/:orgslug/insights/backend/caches/) by following the steps below.
20+
If you're using anything other than <PlatformLink to="/integrations/django/">Django</PlatformLink> or <PlatformLink to="/integrations/redis/">Redis</PlatformLink>, you'll need to manually instrument the [Cache Module](https://sentry.io/orgredirect/organizations/:orgslug/insights/backend/caches/) by following the steps below.
2121

2222
### Add Span When Putting Data Into the Cache
2323

0 commit comments

Comments
 (0)