Skip to content
This repository was archived by the owner on Aug 14, 2024. It is now read-only.

Improve information architecture in SDK docs #1311

Draft
wants to merge 4 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
150 changes: 74 additions & 76 deletions src/components/sidebar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -192,92 +192,90 @@ export default () => {
</div>

<ul className="list-unstyled" data-sidebar-tree>
<SidebarLink to="/sdk/philosophy/">Philosophy</SidebarLink>
<SidebarLink to="/sdk/basics/">Basics</SidebarLink>
<SidebarLink to="/sdk/overview/">Overview</SidebarLink>
<SidebarLink to="/sdk/craft-quick-start/">Craft Quick Start</SidebarLink>
<SidebarLink to="/sdk/unified-api/" title="Unified API"></SidebarLink>
<SidebarLink to="/sdk/hub_and_scope_refactoring/">Hub & Scope Refactoring</SidebarLink>
<SidebarLink to="/sdk/">Overview</SidebarLink>
<SidebarLink to="/sdk/features/">Expected Features</SidebarLink>
<SidebarLink to="/sdk/data-handling/">Data Handling</SidebarLink>
<SidebarLink to="/sdk/envelopes/">Envelopes</SidebarLink>
<SidebarLink to="/sdk/event-payloads/" title="Event Payloads">
<SidebarLink to="/sdk/event-payloads/transaction/">
Transaction Type
</SidebarLink>
<SidebarLink to="/sdk/event-payloads/span/">Span Interface</SidebarLink>
<SidebarLink to="/sdk/event-payloads/breadcrumbs/">
Breadcrumbs Interface
</SidebarLink>
<SidebarLink to="/sdk/event-payloads/contexts/">
Contexts Interface
</SidebarLink>
<SidebarLink to="/sdk/event-payloads/debugmeta">
Debug Meta Interface
</SidebarLink>
<SidebarLink to="/sdk/event-payloads/exception/">
Exception Interface
</SidebarLink>
<SidebarLink to="/sdk/event-payloads/message/">Message Interface</SidebarLink>
<SidebarLink to="/sdk/event-payloads/request/">Request Interface</SidebarLink>
<SidebarLink to="/sdk/event-payloads/sdk/">SDK Interface</SidebarLink>
<SidebarLink to="/sdk/event-payloads/stacktrace/">
Stack Trace Interface

<SidebarLink to="/sdk/fundamentals/" title="Fundamentals">
<SidebarLink to="/sdk/fundamentals/philosophy/">Philosophy</SidebarLink>
<SidebarLink to="/sdk/fundamentals/unified-api/">Unified API</SidebarLink>
<SidebarLink to="/sdk/fundamentals/data-handling/" title="Data Handling">
<SidebarLink to="/sdk/fundamentals/data-handling/context-management/" title="Context Management">
<SidebarLink to="/sdk/fundamentals/data-handling/context-management/hub_and_scope_refactoring/">Hub & Scope Refactoring</SidebarLink>
</SidebarLink>
</SidebarLink>
<SidebarLink to="/sdk/event-payloads/template/">
Template Interface
<SidebarLink to="/sdk/fundamentals/reliability/" title="Reliability">
<SidebarLink to="/sdk/fundamentals/reliability/resiliency/" title="Resiliency">
<SidebarLink to="/sdk/fundamentals/reliability/resiliency/signal-handlers/">Signal Handlers</SidebarLink>
</SidebarLink>
</SidebarLink>
<SidebarLink to="/sdk/event-payloads/threads/">Threads Interface</SidebarLink>
<SidebarLink to="/sdk/event-payloads/user/">User Interface</SidebarLink>
</SidebarLink>
<SidebarLink to="/sdk/profiles/">Profiles</SidebarLink>
<SidebarLink to="/sdk/metrics/">Metrics</SidebarLink>
<SidebarLink to="/sdk/check-ins/">Check-Ins</SidebarLink>
<SidebarLink to="/sdk/sessions/">Sessions</SidebarLink>
<SidebarLink to="/sdk/client-reports/">Client Reports</SidebarLink>
<SidebarLink to="/sdk/distributed-tracing/">Distributed Tracing</SidebarLink>
<SidebarLink to="/sdk/performance/" title="Performance">
<SidebarLink to="/sdk/performance/span-operations/">
Span Operations
</SidebarLink>
<SidebarLink to="/sdk/performance/span-data-conventions/">
Span Data Conventions
</SidebarLink>
<SidebarLink to="/sdk/performance/trace-origin/">Trace Origin</SidebarLink>
<SidebarLink to="/sdk/performance/ui-event-transactions/">
UI Event Transactions
</SidebarLink>
<SidebarLink to="/sdk/performance/time-to-initial-full-display/">
Time to Initial/Full Display
</SidebarLink>
<SidebarLink to="/sdk/performance/frames-delay/">
Frames Delay
</SidebarLink>
<SidebarLink to="/sdk/performance/dynamic-sampling-context/">
Dynamic Sampling Context
</SidebarLink>
<SidebarLink to="/sdk/performance/opentelemetry/">
OpenTelemetry Support
</SidebarLink>
<SidebarLink to="/sdk/performance/modules/">
Modules


<SidebarLink to="/sdk/telemetry/" title="Telemetry">
<SidebarLink to="/sdk/telemetry/tracing/" title="Tracing">
<SidebarLink to="/sdk/telemetry/tracing/trace-propagation/">Trace Propagation</SidebarLink>
<SidebarLink to="/sdk/telemetry/tracing/span-operations/">Span Operations</SidebarLink>
<SidebarLink to="/sdk/telemetry/tracing/span-data-conventions/">Span Data Conventions</SidebarLink>
<SidebarLink to="/sdk/telemetry/tracing/trace-origin/">Trace Origin</SidebarLink>
<SidebarLink to="/sdk/telemetry/tracing/ui-event-transactions/">UI Event Transactions</SidebarLink>
<SidebarLink to="/sdk/telemetry/tracing/time-to-initial-full-display/">
Time to Initial/Full Display
</SidebarLink>
<SidebarLink to="/sdk/telemetry/tracing/frames-delay/">Frames Delay</SidebarLink>
<SidebarLink to="/sdk/telemetry/tracing/dynamic-sampling-context/">Dynamic Sampling Context</SidebarLink>
<SidebarLink to="/sdk/telemetry/tracing/opentelemetry/">OpenTelemetry Support</SidebarLink>
<SidebarLink to="/sdk/telemetry/tracing/modules/">Modules</SidebarLink>
<SidebarLink to="/sdk/telemetry/tracing/backpressure/">Backpressure Management</SidebarLink>
<SidebarLink to="/sdk/telemetry/tracing/research-performance-api/">Research: Performance Monitoring API</SidebarLink>
</SidebarLink>
<SidebarLink to="/sdk/performance/backpressure/">
Backpressure Management
<SidebarLink to="/sdk/telemetry/profiles/">Profiles</SidebarLink>
<SidebarLink to="/sdk/telemetry/metrics/">Metrics</SidebarLink>
<SidebarLink to="/sdk/telemetry/check-ins/">Check-Ins</SidebarLink>
</SidebarLink>

<SidebarLink to="/sdk/protocol/" title="Protocol">
<SidebarLink to="/sdk/protocol/envelopes/">Envelopes</SidebarLink>
<SidebarLink to="/sdk/protocol/event-payloads/" title="Event Payloads">
<SidebarLink to="/sdk/protocol/event-payloads/transaction/">Transaction Type</SidebarLink>
<SidebarLink to="/sdk/protocol/event-payloads/span/">Span Interface</SidebarLink>
<SidebarLink to="/sdk/protocol/event-payloads/breadcrumbs/">Breadcrumbs Interface</SidebarLink>
<SidebarLink to="/sdk/protocol/event-payloads/contexts/">Contexts Interface</SidebarLink>
<SidebarLink to="/sdk/protocol/event-payloads/debugmeta">Debug Meta Interface</SidebarLink>
<SidebarLink to="/sdk/protocol/event-payloads/exception/">Exception Interface</SidebarLink>
<SidebarLink to="/sdk/protocol/event-payloads/message/">Message Interface</SidebarLink>
<SidebarLink to="/sdk/protocol/event-payloads/request/">Request Interface</SidebarLink>
<SidebarLink to="/sdk/protocol/event-payloads/sdk/">SDK Interface</SidebarLink>
<SidebarLink to="/sdk/protocol/event-payloads/stacktrace/">Stack Trace Interface</SidebarLink>
<SidebarLink to="/sdk/protocol/event-payloads/template/">Template Interface</SidebarLink>
<SidebarLink to="/sdk/protocol/event-payloads/threads/">Threads Interface</SidebarLink>
<SidebarLink to="/sdk/protocol/event-payloads/user/">User Interface</SidebarLink>
</SidebarLink>
<SidebarLink to="/sdk/protocol/client-reports/">Client Reports</SidebarLink>
<SidebarLink to="/sdk/protocol/sessions/">Sessions</SidebarLink>
</SidebarLink>
<SidebarLink to="/sdk/research/performance">
Research: Performance Monitoring API

<SidebarLink to="/sdk/endpoints/" title="Endpoints">
<SidebarLink to="/sdk/endpoints/rate-limiting/">Rate Limiting</SidebarLink>
<SidebarLink to="/sdk/endpoints/envelope/">Envelope Endpoint</SidebarLink>
<SidebarLink to="/sdk/endpoints/store/">Store Endpoint</SidebarLink>
</SidebarLink>
<SidebarLink to="/sdk/setup-wizards/" title="Setup Wizards">
Setup Wizards

<SidebarLink to="/sdk/tooling/" title="Tooling">
<SidebarLink to="/sdk/tooling/setup-wizards/">Setup Wizards</SidebarLink>
<SidebarLink to="/sdk/tooling/spotlight/">Spotlight</SidebarLink>
</SidebarLink>
<SidebarLink to="/sdk/rate-limiting/">Rate Limiting</SidebarLink>
<SidebarLink to="/sdk/signal-handlers/">Signal Handlers</SidebarLink>
<SidebarLink to="/sdk/serverless/" title="Serverless SDKs">
<SidebarLink to="/sdk/serverless/aws-lambda">AWS Lambda</SidebarLink>

<SidebarLink to="/sdk/processes/" title="Processes">
<SidebarLink to="/sdk/processes/onboarding/">Onboarding</SidebarLink>
<SidebarLink to="/sdk/processes/development/" title="Development">
<SidebarLink to="/sdk/processes/development/overview/">Overview</SidebarLink>
<SidebarLink to="/sdk/processes/development/serverless/" title="Serverless SDKs">
<SidebarLink to="/sdk/processes/development/serverless/aws-lambda/">AWS Lambda</SidebarLink>
</SidebarLink>
</SidebarLink>
<SidebarLink to="/sdk/processes/testing/">Testing</SidebarLink>
<SidebarLink to="/sdk/processes/releasing/">Releasing</SidebarLink>
</SidebarLink>
<SidebarLink to="/sdk/store/">Store Endpoint</SidebarLink>
</ul>
</li>
<li className="mb-3" data-sidebar-branch>
Expand Down
2 changes: 1 addition & 1 deletion src/docs/analytics.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ This guide steps you through instrumenting your code with Sentry's 3rd-party ana

[BigQuery](https://cloud.google.com/bigquery/) is a Google data warehouse that a lot of our data calls home. This includes all our analytics data and some (not all) production data that might be of interest when joins are necessary for answering richer, more complex questions. From sentry/getsentry, our data goes through [reload](https://github.com/getsentry/reload), our ETL for BigQuery.

As a general rule, do not add an analytic event if it has the potential to be triggered over 1,000,000 times/day. If this threshold is exceeded, it may cause the analytics service to crash. If you are unsure of how frequently the analytic event will be triggered, add it as a Datadog [metric](https://develop.sentry.dev/analytics/#metrics) first.
As a general rule, do not add an analytic event if it has the potential to be triggered over 1,000,000 times/day. If this threshold is exceeded, it may cause the analytics service to crash. If you are unsure of how frequently the analytic event will be triggered, add it as a Datadog [metric](/analytics/#metrics) first.

## Amplitude

Expand Down
2 changes: 1 addition & 1 deletion src/docs/database-migrations.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -294,7 +294,7 @@ With postgres 14, columns can be added to tables of all sizes as deploy time
migrations if you follow the guidelines on default values & allowing nulls. When
creating new columns they should either be:

- Not null with a default. https://develop.sentry.dev/database-migrations/#adding-not-null-to-columns
- Not null with a default. [read more](/database-migrations/#adding-not-null-to-columns)
- Created as nullable. If no default value can be set on the column, then it's best just to make it nullable.

### Adding Columns With a Default
Expand Down
2 changes: 1 addition & 1 deletion src/docs/dynamic-sampling/fidelity-and-biases.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ A trace is a **collection of transactions that are related to each other**. For

Trace sampling ensures that **either all transactions of a trace are sampled, or none**. That is, these rules **always yield the same sampling decision** for every transaction in the same trace. This requires the cooperation of SDKs and thus allows sampling only by `project`, `release`, `environment`, and `transaction` name.

To achieve trace sampling, SDKs pass all fields that can be sampled by [Dynamic Sampling Context (DSC)](/sdk/performance/dynamic-sampling-context/) (defined [here](https://getsentry.github.io/relay/relay_sampling/dsc/struct.DynamicSamplingContext.html)) as they propagate traces. _This ensures that every transaction from the same trace comes with the same DSC._
To achieve trace sampling, SDKs pass all fields that can be sampled by [Dynamic Sampling Context (DSC)](/sdk/telemetry/tracing/dynamic-sampling-context/) (defined [here](https://getsentry.github.io/relay/relay_sampling/dsc/struct.DynamicSamplingContext.html)) as they propagate traces. _This ensures that every transaction from the same trace comes with the same DSC._

![Trace Sampling](/images/traceSampling.png)

Expand Down
2 changes: 1 addition & 1 deletion src/docs/frontend/working-on-getting-started-docs.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ The structure for the documentation is built on React and follows the following
1. Locate the language folder within [gettingStartedDocs](https://github.com/getsentry/sentry/tree/master/static/app/gettingStartedDocs).
2. Update the file `index.tsx` with the necessary changes.
3. You might need to update the tests present in the file `index.spec.tsx`
4. Finally, before concluding, please run Sentry locally or use the command `yarn dev-ui` [Frontend Development Server](https://develop.sentry.dev/frontend/development-server/) and perform a manual test to ensure that the getting started documentation renders correctly in both the onboarding process of a new organization and in the project creation flow. This step is essential for verifying the proper functioning and visual appearance of the documentation.
4. Finally, before concluding, please run Sentry locally or use the command `yarn dev-ui` [Frontend Development Server](/frontend/development-server/) and perform a manual test to ensure that the getting started documentation renders correctly in both the onboarding process of a new organization and in the project creation flow. This step is essential for verifying the proper functioning and visual appearance of the documentation.

### Framework

Expand Down
2 changes: 1 addition & 1 deletion src/docs/issue-platform-detectors.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ Reporting circumstantial data is not useful! This is a crucial distinction betwe

With every new issue type, we could be adding more and more noise to the Issues product. New issues fatigue is real for our customers. This is why it’s important to understand how a new detector you want to ship affects the overall noise of the Issue Stream.

Accurate detection of truly valuable problems and correct grouping can transform "noise" into "signal." Every detector should be evaluated against this standard. There is an option to [define a custom noise config](https://develop.sentry.dev/issue-platform/#register-an-issue-type) when creating a new detector.
Accurate detection of truly valuable problems and correct grouping can transform "noise" into "signal." Every detector should be evaluated against this standard. There is an option to [define a custom noise config](/issue-platform/#register-an-issue-type) when creating a new detector.

# Development

Expand Down
2 changes: 1 addition & 1 deletion src/docs/issue-platform.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ The most current version of this schema is documented here:
Schema
</Link>

The event schema should match the <Link to="/sdk/event-payloads">Sentry event schema</Link>. Any fields/interfaces defined here can be passed along with your event. It's best to fill in as many of these as makes sense for your issue type.
The event schema should match the <Link to="/sdk/protocol/event-payloads/">Sentry event schema</Link>. Any fields/interfaces defined here can be passed along with your event. It's best to fill in as many of these as makes sense for your issue type.

There's a minimum set of fields which should be included:

Expand Down
9 changes: 4 additions & 5 deletions src/docs/philosophy.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: "Development Philosophy"
title: Development Philosophy
---

This document sets guidelines for how we approach software development at
Expand All @@ -9,8 +9,7 @@ acquainted with the codebase, having this context will be valuable to understand
how to approach things.

This guidance only partially applies to SDKs, where slightly different rules
prevail. For that, please refer to the [SDK Philosophy and Design Principles
document](/sdk/philosophy/).
prevail. For that, please refer to the [SDK Philosophy](/sdk/fundamentals/philosophy/).

## Beware of Fancy Code

Expand Down Expand Up @@ -155,8 +154,8 @@ older versions of a library than to go to the bleeding edge. That does not mean
we don’t upgrade, but we recognize that this comes at a cost and needs to be
considered.

For SDKs we are even stricter. For that, please refer to the [SDK Philosophy
and Design Principles document](/sdk/philosophy/).
For SDKs we are even stricter. For that, please refer to the [SDK Philosophy
document](/sdk/fundamentals/philosophy/).

## Branches and Pull Requests

Expand Down
6 changes: 6 additions & 0 deletions src/docs/sdk/endpoints/envelope.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
title: Envelope Endpoint
sidebar_order: 2
---

See [Envelopes](/sdk/protocol/envelopes/).
6 changes: 6 additions & 0 deletions src/docs/sdk/endpoints/index.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
title: Endpoints
sidebar_order: 9000
---

<PageGrid />
Loading
Loading