Skip to content

Commit e36acd9

Browse files
authored
feat: add Definition list support (#11246)
* Revert "feat: Remove def list syntax (#11238)" This reverts commit 2dba05e. * add support for definition list * Revert "fix: Remove unsupported definition list syntax (#10739)" This reverts commit a715187. * fix build errors
1 parent 9619b2e commit e36acd9

37 files changed

+755
-349
lines changed

develop-docs/backend/outboxes.mdx

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ title: Outboxes
55
Outboxes are database backed deferred units of work that drive a large portion of our system's eventual consistency workflows. They were designed with a couple of key features in mind:
66

77
- **Durability:** Outboxes are stored as database rows that are typically committed transactionally alongside associated model updates. They are retained until the processing code signals that work has been completed successfully.
8-
- **Retriability:** If an outbox processor fails for whatever reason, it will be reprocessed indefinitely until it succeeds.
8+
- **Retriability:** If an outbox processor fails for whatever reason, it will be reprocessed indefinitely until it succeeds.
99
- _Note:_ We do not support deadlettering, which means a head of line blocking outbox will continue to backlog work until the processing code is fixed.
1010

1111
## Outbox Properties
@@ -22,7 +22,8 @@ An outbox consists of the following parts:
2222

2323
`object_identifier`
2424

25-
: The ID of the impacted model object (if applicable). <br/><br/>*Note:* Not every outbox has an explicit model target, so this can be set to an arbitrary unique value if necessary. Just be aware that this identifier is used in tandem with the `shard_identifier` for coalescing purposes.
25+
: The ID of the impacted model object (if applicable).
26+
*Note:* Not every outbox has an explicit model target, so this can be set to an arbitrary unique value if necessary. Just be aware that this identifier is used in tandem with the `shard_identifier` for coalescing purposes.
2627

2728
`category`
2829

@@ -107,9 +108,9 @@ Having both models aligned to the same database ensures that both the model chan
107108

108109
## Coalescing
109110

110-
Outboxes are coalesced in order to prevent backpressure from toppling our systems after a blocked outbox shard is cleared. We accomplish this by assuming the last message in a coalescing group is the source of truth, ignoring any preceding messages in the group.
111+
Outboxes are coalesced in order to prevent backpressure from toppling our systems after a blocked outbox shard is cleared. We accomplish this by assuming the last message in a coalescing group is the source of truth, ignoring any preceding messages in the group.
111112

112-
An outbox’s coalescing group is determined by the combination of its sharding, `category` and `object_identifier` columns.
113+
An outbox’s coalescing group is determined by the combination of its sharding, `category` and `object_identifier` columns.
113114

114115
This coalescing strategy means that any outbox payloads that are stateful and order dependent in the same coalescing group *will* result in data loss when the group is processed. If you want to bypass coalescing entirely, you can set an arbitrary *unique* object identifier to ensure messages are run individually and in order; however, this can cause severe bottlenecks so be cautious when doing so.
115116

develop-docs/sdk/client-reports.mdx

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ for events that were never sent. Chained relays are also able to emit these
1212
client reports to inform the next relay in chain about _some_ outcomes.
1313

1414
Due to a bug in Relay, which discards envelopes containing unknown envelope
15-
items, the minimum required version of Sentry for client reports is
15+
items, the minimum required version of Sentry for client reports is
1616
[21.9.0](https://github.com/getsentry/relay/blob/master/CHANGELOG.md#2190).
1717

1818
Before client reports were added there were no insights into the full number of events generated within applications instrumented with Sentry SDKs. It was always clear to track the number of events dropped on Sentry server side for any number of reason, but there was a gap in knowing just how many events were never sent from the SDKs at all. Are there patterns in different platforms? Are there problems we are not aware of? If a customer were to call Sentry and ask where there events are, we would have no answer, and no way to find out if there are truly missing events from their SDKs. Client reports removes some of this doubt. That being said we are not looking to perfectly measure every nuance and edge case of events being discarded in SDKs. It is more important to have a best effort and be able to gain insights to our SDKs and their host applications.
@@ -75,14 +75,11 @@ The following fields exist:
7575

7676
`timestamp`
7777

78-
_String | Number, optional_. The timestamp of when the client report was created.
79-
Must be an ISO DateTime string or a UNIX timestamp. If not sent, the server
80-
will assume the current UTC timestamp. In the data model, this is called
81-
`received`.
78+
: _String | Number, optional_. The timestamp of when the client report was created. Must be an ISO DateTime string or a UNIX timestamp. If not sent, the server will assume the current UTC timestamp. In the data model, this is called `received`.
8279

8380
`discarded_events`
8481

85-
_List of outcome objects_ (`reason`, `category`, `quantity`)
82+
: _List of outcome objects_ \{`reason`, `category`, `quantity`\}
8683

8784
- `reason`: A string reason that defines why events were lost.
8885
- `category`: The data category for which the discard reason applies. These are the same data categories used for [rate limits](/sdk/rate-limiting/#definitions).
@@ -111,7 +108,7 @@ that SDKs send these under normal operation:
111108

112109
`rate_limited_events`, `filtered_events`, `filtered_sampling_events`
113110

114-
_List of outcome objects_ (`reason`, `category`, `quantity`)
111+
: _List of outcome objects_ \{`reason`, `category`, `quantity`\}
115112

116113
These function like `discarded_events` but identify events that were rate limited,
117114
filtered or filtered by by dynamic sampling _at a relay_. Client SDKs must never

develop-docs/sdk/envelopes.mdx

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -119,19 +119,19 @@ Envelopes can have a number of headers which are valid in all situations:
119119

120120
`dsn`
121121

122-
**String, recommended.** An envelope can be self authenticated. This means that
122+
: *String, recommended.* An envelope can be self authenticated. This means that
123123
the envelope has all the information necessary to be sent to sentry. In this
124124
case the full DSN must be stored in this key.
125125

126126
`sdk`
127127

128-
**Object, recommended.** This can carry the same payload as the <Link to="/sdk/event-payloads/sdk/">`sdk` interface</Link>
128+
: *Object, recommended.* This can carry the same payload as the [`sdk` interface](/sdk/event-payloads/sdk/)
129129
in the event payload but can be carried for all events. This means that SDK
130130
information can be carried for minidumps, session data and other submissions.
131131

132132
`sent_at`
133133

134-
**String, recommended.** The timestamp when the event was sent from the SDK as string in
134+
: *String, recommended.* The timestamp when the event was sent from the SDK as string in
135135
[RFC 3339](https://tools.ietf.org/html/rfc3339) format. Used for clock drift
136136
correction of the event timestamp. The time zone must be UTC.
137137

@@ -153,22 +153,22 @@ The timestamp can be generated by any of the following (for example):
153153

154154
JavaScript
155155

156-
`new Date().toISOString()`
156+
: `new Date().toISOString()`
157157

158158
Python
159159

160-
`datetime.now(timezone.utc).isoformat()`<br />
160+
: `datetime.now(timezone.utc).isoformat()`<br />
161161
*Don't use `datetime.utcnow()`, as it will omit the time zone.*
162162

163163
.NET
164164

165-
`DateTime.UtcNow.ToString("o", CultureInfo.InvariantCulture)`
166-
or
165+
: `DateTime.UtcNow.ToString("o", CultureInfo.InvariantCulture)`
166+
or
167167
`DateTimeOffset.UtcNow.ToString("o", CultureInfo.InvariantCulture)`
168168

169169
Java
170170

171-
`Instant.now().toString()`
171+
: `Instant.now().toString()`
172172

173173
*Also note that the `sent_at` header replaces the `sentry_timestamp` key previously set in authorization headers,
174174
which has now been fully deprecated. You should only send `sent_at`, and not `sentry_timestamp`.*
@@ -184,13 +184,13 @@ There are two generic headers for every Item:
184184

185185
`type`
186186

187-
**String, required.** Specifies the type of this Item and its contents. Based
187+
: **String, required.** Specifies the type of this Item and its contents. Based
188188
on the Item type, more headers may be required. See [Data Model](#data-model) for a list
189189
of all Item types.
190190

191191
`length`
192192

193-
**int, recommended.** The length of the payload in bytes. If no `length` is
193+
: *int, recommended.* The length of the payload in bytes. If no `length` is
194194
specified, the payload implicitly goes to the next newline. For payloads
195195
containing newline characters, the `length` must be specified.
196196

@@ -323,7 +323,7 @@ encoded in JSON.
323323

324324
`event_id`
325325

326-
**UUID String, required.** Corresponds to the `event_id` field of the event
326+
: **UUID String, required.** Corresponds to the `event_id` field of the event
327327
payload. Clients are required to generate an event identifier ahead of time
328328
and set it at least in the Envelope headers. If the identifier mismatches
329329
between the Envelope and payload, the Envelope header takes precedence.
@@ -346,7 +346,7 @@ in JSON.
346346

347347
`event_id`
348348

349-
**UUID String, required.** Corresponds to the `event_id` field of the
349+
: **UUID String, required.** Corresponds to the `event_id` field of the
350350
transaction payload. Clients are required to generate an event identifier
351351
ahead of time and set it at least in the Envelope headers. If the identifier
352352
mismatches between the Envelope and payload, the Envelope header takes
@@ -380,17 +380,17 @@ file. It is always associated to an event or transaction.
380380

381381
`event_id`
382382

383-
**UUID String, required.** The identifier of the event or transaction.
383+
: **UUID String, required.** The identifier of the event or transaction.
384384

385385
**Additional Item Headers:**
386386

387387
`filename`
388388

389-
**String, required.** The name of the uploaded file without a path component.
389+
: **String, required.** The name of the uploaded file without a path component.
390390

391391
`attachment_type`
392392

393-
**String, optional.** The special type of this attachment. Possible values are:
393+
: *String, optional.* The special type of this attachment. Possible values are:
394394

395395
- **`event.attachment` (default)**: A standard attachment without special
396396
meaning.
@@ -402,11 +402,11 @@ file. It is always associated to an event or transaction.
402402
ingestion, event contexts and extra fields are extracted from this file.
403403
- `unreal.logs`: A plain-text log file obtained from UE4 crashes. During
404404
event ingestion, the last logs are extracted into event breadcrumbs.
405-
- `event.view_hierarchy`: An JSON file with a predefined structure, see [RFC #33](https://github.com/getsentry/rfcs/blob/main/text/0033-view-hierarchy.md).
405+
- `event.view_hierarchy`: An JSON file with a predefined structure, see [RFC #33](https://github.com/getsentry/rfcs/blob/main/text/0033-view-hierarchy.md).
406406

407407
`content_type`
408408

409-
**String, optional.** The content type of the attachment payload. Any [MIME type](https://www.iana.org/assignments/media-types/media-types.xhtml) may be used; the default is `application/octet-stream`.
409+
: *String, optional.* The content type of the attachment payload. Any [MIME type](https://www.iana.org/assignments/media-types/media-types.xhtml) may be used; the default is `application/octet-stream`.
410410

411411
### Session
412412

@@ -476,7 +476,7 @@ details.
476476

477477
### User Feedback
478478

479-
User Feedback was called User Report in the beginning. Therefore the envelope item type is `"user_report"`.
479+
User Feedback was called User Report in the beginning. Therefore the envelope item type is `"user_report"`.
480480
The item contains a user feedback / user report JSON payload:
481481
```json
482482
{"event_id":"9ec79c33ec9942ab8353589fcb2e04dc","email":"[email protected]","name":"John Me","comments":"It broke."}\n
@@ -486,20 +486,20 @@ The item contains a user feedback / user report JSON payload:
486486

487487
`event_id`
488488

489-
**UUID String, required.** The identifier of the event or transaction.
489+
: **UUID String, required.** The identifier of the event or transaction.
490490

491491

492492
`email`
493493

494-
**String, recommended.** The email of the user.
494+
: *String, recommended.* The email of the user.
495495

496496
`name`
497497

498-
**String, recommended.** The name of the user.
498+
: *String, recommended.* The name of the user.
499499

500500
`comments`
501501

502-
**String, recommended.** Comments of the user about what happened.
502+
: *String, recommended.* Comments of the user about what happened.
503503

504504
**Constraints:**
505505

@@ -511,7 +511,7 @@ The item contains a user feedback / user report JSON payload:
511511

512512
`event_id`
513513

514-
**UUID String, required.** The identifier of the event or transaction.
514+
: **UUID String, required.** The identifier of the event or transaction.
515515

516516
**Additional Item Headers:**
517517

@@ -577,7 +577,7 @@ details.
577577

578578
`length`
579579

580-
**integer, required.** The size of the Replay recording payload
580+
: **integer, required.** The size of the Replay recording payload
581581

582582
### Profile
583583

@@ -692,7 +692,7 @@ These limits are subject to future change and defined currently as:
692692
- *100MB* for each attachment item
693693
- *1MB* for event (errors and transactions), span, and metric (statsd, buckets, meta) items.
694694
- *100KB* for monitor check-in items
695-
- *50MB* for profile items
695+
- *50MB* for profile items
696696
- *10MB* for compressed replay item
697697
- *100MB* for replay item after decompression
698698
- *100 sessions* per envelope

0 commit comments

Comments
 (0)