Skip to content
Merged
Show file tree
Hide file tree
Changes from 10 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
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ repos:
- id: detect-private-key
exclude: |
(?x)^(
develop-docs/application/config.mdx|
develop-docs/architecture/config.mdx|
develop-docs/integrations/github.mdx|
develop-docs/self-hosted/sso.mdx
)$
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: API Development
sidebar_order: 1
sidebar_order: 20
---

As a developer-facing company it's critical for us to have simple, intuitive, and consistent APIs that our users can call from their dev environment to accomplish key tasks without going to the UI. If you're creating or editing an endpoint, this doc will help you achieve Sentry standards.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: A/B Tests with Amplitude
sidebar_order: 190
sidebar_order: 50
---

## Why AB testing?
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Asynchronous Workers
sidebar_order: 100
sidebar_order: 70
---

Sentry comes with a built-in queue to process tasks in a more asynchronous fashion. For example when an event comes in instead of writing it to the database immediately, it sends a job to the queue so that the request can be returned right away, and the background workers handle actually saving that data.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Database Migrations
sidebar_order: 30
sidebar_order: 20
---

Django migrations are how we handle changes to the database in Sentry.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Notification Digests
sidebar_order: 140
sidebar_order: 130
---

Sentry provides a service that will collect notifications as they occur and schedule them for delivery as aggregated “digest” notifications.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Email
sidebar_order: 110
sidebar_order: 150
---

Sentry provides support for both outbound, and incoming email.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: 'Feature Flags'
sidebar_order: 40
sidebar_order: 30
---

Feature flags are declared in Sentry's codebase (look for `SENTRY_FEATURES` in
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Grouping
sidebar_order: 60
sidebar_order: 100
---

Sentry has an extensive grouping system ([public documentation](https://docs.sentry.io/product/sentry-basics/grouping-and-fingerprints/))
Expand Down
6 changes: 6 additions & 0 deletions develop-docs/api-server/application-domains/index.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
title: Application Domains
sidebar_order: 40
---

<PageGrid />
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Kafka consumers
sidebar_order: 110
sidebar_order: 60
---

## Creating a new consumer in Sentry
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Metrics
sidebar_order: 120
sidebar_order: 180
---

Sentry provides an abstraction called ‘metrics’ which is used for internal monitoring, generally timings and various counters.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Node Storage
sidebar_order: 130
sidebar_order: 120
---

Sentry provides an abstraction called ‘nodestore’ which is used for storing key/value blobs.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Options
sidebar_order: 50
sidebar_order: 10
---

Options are a way to store generic system-wide configuration. They serve a similar purpose to configuration files, but they are backed by a database, so it's possible to change them at runtime without a deploy. Options are stored in the database and cached, so they are performant and reliable. This makes options well-suited for rates, quotas, and limits.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Outboxes
sidebar_order: 70
sidebar_order: 110
---

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:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Quotas
sidebar_order: 150
sidebar_order: 160
---

With the way Sentry works you may find yourself in a situation where you’ll see too much inbound traffic without a good way to drop excess messages. There’s a few solutions to this, and you’ll likely want to employ them all if you are faced with this problem.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Clustering URL Transactions
sidebar_order: 60
sidebar_order: 90
---

Sentry attempts to scrub high-cardinality identifiers from URL transactions
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Translations
sidebar_order: 180
sidebar_order: 40
---

We use [**Transifex**](https://www.transifex.com/getsentry/sentry) to translate Sentry.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Time-series Storage
sidebar_order: 160
sidebar_order: 140
---

Sentry provides a service to store time-series data. Primarily this is used to display aggregate information for events and projects, as well as calculating (in real-time) the rates of events.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Write Buffers
sidebar_order: 170
sidebar_order: 80
---

Sentry manages database row contention by buffering writes and flushing bulk changes to the database over a period of time. This is extremely helpful if you have high concurrency, especially if they’re frequently the same event.
Expand Down
8 changes: 8 additions & 0 deletions develop-docs/api-server/index.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
title: API Server
sidebar_order: 50
---

The monolith powering Sentry. The backend of our application.

<PageGrid />
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Issue Platform
sidebar_order: 80
sidebar_order: 30
---

The Issue Platform allows developers to create new issue types from arbitrary data sources. If you have data about something that you want to track via an issue, you can build it on the issue platform. For example, building profiling issues on the issue platform allowed us to turn things like “JSON decoding on the main thread” into their own issue types.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Issue Platform - Writing Detectors
sidebar_order: 90
title: Writing Detectors
sidebar_order: 10
---

Issue detectors identify application issues by examining one or more datasets collected by Sentry, and report detected issue occurrences via the <Link to="/backend/issue-platform/">Issue Platform</Link>. Detectors must fingerprint issues accurately and provide actionable information to developers.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Configuration
sidebar_order: 60
sidebar_order: 30
---

This document describes configuration available to the Sentry server itself.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: Dynamic Sampling
description: Dynamic Sampling is a feature of the ingestion pipeline that allows Sentry to automatically adjust the amount of data retained based on the value of the data.
sidebar_order: 10
sidebar_order: 50
---

From all the data received by the SDKs, Sentry is able to extract low-granularity information through metrics, while Dynamic Sampling makes the decision of whether to keep or drop data.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: User Feedback Architecture
sidebar_order: 20
sidebar_order: 60
---

**The goal of this doc is to give engineers an in-depth understanding of User Feedback's backend.**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: Application
title: Architecture
sidebar_order: 30
---

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Control Silo
sidebar_order: 30
sidebar_order: 10
---

Within the Control Silo are features that allow us to provide backwards compatibility for both customer API usage, and integrations
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Cross Region Replication
sidebar_order: 40
sidebar_order: 20
---

Our data-model includes many relations between users and the objects they create or interact with. Eventually users are deleted, and they need to be detached from the records they created, or those records need to be destroyed. Before sentry became a multi-region application, we relied on a mixture of Django callbacks, and postgres constraints to cascade deletions. However, in a multi-region state we arent't able to rely on these anymore as Users are in [Control Silo](/architecture/#silo-modes) and many of the objects they interact with are in the various Region Silos.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Cross Region RPC
sidebar_order: 50
sidebar_order: 30
---

When Sentry is deployed in a multi-region deployment (like sentry.io) there are many scenarios and workflows where a region silo requires information that is stored in Control Silo. Similarly there are flows where Control Silo operations need to read or mutate state stored in regions.
Expand Down
6 changes: 6 additions & 0 deletions develop-docs/architecture/multi-region-deployment/index.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
title: Multi-Region Deployment
sidebar_order: 40
---

<PageGrid />
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Architecture
sidebar_order: 1
title: Overview
sidebar_order: 10
---

## High level overview
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: sentry vs. getsentry
sidebar_order: 70
sidebar_order: 20
---

You'll find numerous references to both `sentry` and `getsentry` in our documentation. Both are [Django](https://www.djangoproject.com/) apps, but `sentry` [is open](https://github.com/getsentry/sentry) and `getsentry` is closed. What's in which?
Expand Down
6 changes: 0 additions & 6 deletions develop-docs/backend/index.mdx

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: Analytics
description: This guide steps you through instrumenting your code with Sentry's 3rd-party analytics infrastructure.
sidebar_order: 100
sidebar_order: 90
---


Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Backend Development Server
sidebar_order: 10
sidebar_order: 20
---

(*see also: [Frontend Development Server](/frontend/development-server/)*)
Expand Down Expand Up @@ -30,4 +30,3 @@ This will do literally nothing except bring up the web workers. You are now resp
Use `sentry run --help` to see what you might be missing by not running devserver.

To run the development server with ngrok, see [Developing with Ngrok](/development/ngrok/).

Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: Continuous Integration
description: Sentry uses a variety of continuous integration services to help ensure we don't accidentally break the application.
sidebar_order: 60
sidebar_order: 80
---

## Deployments
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Service Manager (devservices)
sidebar_order: 80
sidebar_order: 40
---

Sentry provides an abstraction to Docker to run required services within development called `devservices`.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Frontend Development Server
sidebar_order: 1
sidebar_order: 30
---

(*see also: [Backend Development Server](/backend/development-server/)*)
Expand Down
6 changes: 6 additions & 0 deletions develop-docs/development-infrastructure/index.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
title: Development Infrastructure
sidebar_order: 40
---

<PageGrid />
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Python Dependencies
sidebar_order: 20
sidebar_order: 100
---

Unlike our frontend JavaScript story, where we're generally very happy pulling in dependencies, we're much more conservative on
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: Testing Tips
description: We run several kinds of tests at Sentry as part of our CI process. This section aims to document some of the sentry specific helpers and give guidelines on what kinds of tests you should consider including when building new features.
sidebar_order: 50
sidebar_order: 60
---

## Getting Setup
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Workflow
sidebar_order: 40
sidebar_order: 50
---

You may also be interested in <Link to="/application/sentry-vs-getsentry/">sentry vs. getsentry</Link>.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: Development
title: Engineering Practices
sidebar_order: 20
---

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: Rust Development
description: This is a document that contains a bunch of useful resources for getting started with Rust and adhering to our coding principles.
sidebar_order: 90
sidebar_order: 40
---

## Getting Started
Expand Down
2 changes: 1 addition & 1 deletion develop-docs/frontend/index.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Frontend Handbook
sidebar_order: 40
sidebar_order: 60
---

This guide covers how we write frontend code at Sentry, and is specifically focussed on the [Sentry](https://github.com/getsentry/sentry) and [Getsentry](https://github.com/getsentry/getsentry) codebases. It assumes you are using the eslint rules outlined by [eslint-config-sentry](https://github.com/getsentry/eslint-config-sentry); hence code style enforced by these linting rules will not be discussed here.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
---
title: Relay Development
sidebar_order: 70
title: Ingestion
sidebar_order: 90
---

Relay is a service for event filtering, rate-limiting and processing. It can act as:
Ingestion is done by [Sentry Relay](https://github.com/getsentry/relay). Relay is a service for event filtering, rate-limiting and processing.

It can act as:

* the store endpoint for your Sentry installation. See [Relay developer
documentation](https://getsentry.github.io/relay/relay/).
* an additional middle layer between your application and Sentry. See [Relay product
documentation](https://docs.sentry.io/product/relay/).

Loading
Loading