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

Commit

Permalink
Cleaned up some outdated documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
antonpirker committed Nov 23, 2023
1 parent fc5ba8d commit afffd9e
Show file tree
Hide file tree
Showing 7 changed files with 63 additions and 94 deletions.
56 changes: 28 additions & 28 deletions src/components/sidebar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -183,30 +183,7 @@ export default () => {
<SidebarLink to="/sdk/unified-api/" title="Unified API"></SidebarLink>
<SidebarLink to="/sdk/features/">Expected Features</SidebarLink>
<SidebarLink to="/sdk/data-handling/">Data Handling</SidebarLink>
<SidebarLink to="/sdk/store/">Store Endpoint</SidebarLink>
<SidebarLink to="/sdk/envelopes/">Envelopes</SidebarLink>
<SidebarLink to="/sdk/rate-limiting/">Rate Limiting</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/dynamic-sampling-context/">
Dynamic Sampling Context
</SidebarLink>
<SidebarLink to="/sdk/performance/opentelemetry/">
OpenTelemetry Support
</SidebarLink>
</SidebarLink>
<SidebarLink to="/sdk/event-payloads/" title="Event Payloads">
<SidebarLink to="/sdk/event-payloads/transaction/">
Transaction Type
Expand Down Expand Up @@ -239,18 +216,41 @@ export default () => {
<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/check-ins/">Check-Ins</SidebarLink>
<SidebarLink to="/sdk/sessions/">Sessions</SidebarLink>
<SidebarLink to="/sdk/client-reports/">Client Reports</SidebarLink>
<SidebarLink to="/sdk/check-ins/">Check-Ins</SidebarLink>
<SidebarLink to="/sdk/serverless/" title="Serverless SDKs">
<SidebarLink to="/sdk/serverless/aws-lambda">AWS Lambda</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/dynamic-sampling-context/">
Dynamic Sampling Context
</SidebarLink>
<SidebarLink to="/sdk/performance/opentelemetry/">
OpenTelemetry Support
</SidebarLink>
</SidebarLink>
<SidebarLink to="/sdk/signal-handlers/">Signal Handlers</SidebarLink>
<SidebarLink to="/sdk/research/performance">
Research: Performance Monitoring API
</SidebarLink>
<SidebarLink to="/sdk/profiles/">Profiles</SidebarLink>
<SidebarLink to="/sdk/setup-wizards/" title="Setup Wizards">Setup Wizards</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>
<SidebarLink to="/sdk/store/">Store Endpoint</SidebarLink>
</ul>
</li>
<li className="mb-3" data-sidebar-branch>
Expand Down
16 changes: 10 additions & 6 deletions src/docs/sdk/envelopes.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -593,13 +593,17 @@ SDKs should not rely on Envelope header authentication to retain backward compat
Event ingestion imposes limits on the size and number of Items in Envelopes.
These limits are subject to future change and defined currently as:

- *20MB* for a compressed Envelope request
- *100MB* for a full Envelope after decompression
- *20MB* for a compressed envelope request
- *100MB* for a full envelope after decompression
- *100MB* for all attachments combined
- *100MB* for each attachment Item
- *1MB* for event and transaction Items
- *100 sessions* per Envelope
- *100 pre-aggregated session buckets* per each `"sessions"` Item
- *100MB* for each attachment item
- *1MB* for event items (errors and transactions)
- *100KB* for check-in items
- *50MB* for profile items
- *10MB* for compressed replay item
- *100MB* for replay item after decompression
- *100 sessions* per envelope
- *100 pre-aggregated session buckets* per each `"sessions"` item

## External References

Expand Down
17 changes: 14 additions & 3 deletions src/docs/sdk/event-payloads/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,11 @@ title: Event Payloads
---

Events are the fundamental data that clients, often through the use of an SDK, send
to the Sentry server. Event payload size limit is 200KB compressed and 1 MB decompressed.
to the Sentry server.

The API endpoint on the Sentry server where event payloads are sent is
`/api/{PROJECT_ID}/store/`.
Events are packed into [Envelopes](/sdk/envelopes) and are sent to the `/api/{PROJECT_ID}/envelope/` API endpoint.

Sending event payloads to to the `/api/{PROJECT_ID}/store/` API endpoint is deprecated.

<Alert title="Note on backwards compatibility" level="info"><markdown>

Expand Down Expand Up @@ -279,6 +280,16 @@ Fingerprints](https://docs.sentry.io/data-management/event-grouping/).
[eventerror]: https://github.com/getsentry/sentry/blob/master/src/sentry/models/eventerror.py
[opening an issue]: https://github.com/getsentry/sentry/issues/new/choose

## Size Limits

Event ingestion imposes limits on the size of events.
These limits are subject to future change and defined currently as:

- *1MB* decompressed (and `200KB` compressed) for events of type `error`
- *1MB* decompressed (and `200KB` compressed) for events of type `transaction`

Sessions, Client Reports, Replays, Check Ins, and Profiles are not Events and have different size limits. See [Envelope Size Limits](/sdk/envelopes/#size-limits).

## Core Interfaces

All values in the event payload that are not basic attributes are data
Expand Down
Binary file not shown.
62 changes: 5 additions & 57 deletions src/docs/sdk/serverless/aws-lambda.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ instrumentation of Lambda functions written in Javascript and Python.
See the [Sentry Documentation](https://docs.sentry.io/product/integrations/cloud-monitoring/)
on how to set up serverless instrumentation.

## A short primer into AWS Lambda functions, layers, and extensions.
## A short primer into AWS Lambda functions, and layers.

A Lambda function is a zipped directory that contains everything the Lambda
language runtime needs to execute the code in it. You need to have your
Expand All @@ -24,43 +24,13 @@ as well and contain additional code used by your Lambda function.
Layers are used for sharing code between functions or to add third-party functionality,
like the Sentry SDK to your Lambda function.

### Lambda extensions

![AWS Lambda Function Lifecycle](aws-lambda-extension-lifecycle.png)

A Lambda layer can also contain a Lambda extension, which is an executable
that lives in the special `/extensions` directory inside the layer directory.

When a Lambda function is invoked a Lambda execution environment is
initialized, during which it starts multiple things in parallel.
First, the Lambda execution environment checks if it can find any executables
in the `/extensions` directory and invokes those Lambda extensions. (Extension
INIT) Second, a runtime for the function is initialized and the "handler
method" of the function is invoked. (Function INVOCATION)

When the execution of the handler method finishes, the invocation of the
function ends and after a timeout, the runtime and the extension will be shut
down. (SHUTDOWN phase) If the Lambda function is invoked again when the execution
environment is still alive it will be reused (called a "warm" start).
If the execution environment is already gone the whole process described above
will happen again ("cold" start).

Lambda extensions run in a separate process and survive the shutting down of the
Lambda function. Extensions can therefore be long-running processes and cater to
multiple Lambda function invocations.

See the official [Lambda Extensions API documentation](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-extensions-api.html)
for further details.

## Sentry AWS Lambda Integration

![Sentry Lambda Integration](sentry-lambda-layer.png)

With the AWS Lambda Integrations users can add Sentry functionality to their
Lambda function without changing the code of the Lambda function.

Sentry is providing a Lambda Layer including the Javascript SDK (or Python
SDK) and the Sentry Lambda Extension.
SDK).

See the documentation to learn how customers can instrument their Lambda
functions: https://docs.sentry.io/product/integrations/cloud-monitoring/aws-lambda/
Expand All @@ -72,22 +42,15 @@ Sentry is deploying one Lambda Layer for Node-based Lambda functions
functions (`SentryPythonServerlessSDK`). Those Lambda layers are distributed
to various AWS regions to be close to the users.

Both these layers include:

- The latest Sentry Javascript SDK (or Python SDK)
- The latest Sentry Lambda Extension

Because the Extension is a rust binary we currently only support Intel-based
Lambda functions. ARM-based Lambda functions are planned, but there is no timeline yet.
Both these layers include the latest Sentry Javascript SDK (or Python SDK).

### Building of the Python Layer

The contents of the Layer directory for the Python layer are built during the
"CI" workflow in Github actions. The steps necessary can be found
[here](https://github.com/getsentry/sentry-python/blob/master/.github/workflows/ci.yml).

This will prepare the Lambda layer directory, include the latest Sentry
Lambda Extension, compress everything and upload the resulting zip file as
This will prepare the Lambda layer directory, compress everything and upload the resulting zip file as
an artifact to GitHub.

### Deployment of the Python Layer
Expand All @@ -105,8 +68,7 @@ The contents of the Layer directory for the Javascript/Node layer are built duri
"Build & Test" workflow in Github actions. The steps necessary can be found
[here](https://github.com/getsentry/sentry-javascript/blob/master/.github/workflows/build.yml).

This will prepare the Lambda layer directory, include the latest Sentry
Lambda Extension, compress everything and upload the resulting zip file as
This will prepare the Lambda layer directory, compress everything and upload the resulting zip file as
an artifact to GitHub.

### Deployment of the Javascript/Node Layer
Expand All @@ -117,17 +79,3 @@ this can be found [here](https://github.com/getsentry/sentry-javascript/blob/mas

To deploy a new version of the Lambda layer to AWS, you need to trigger a new
release of the Javascript SDK.

## Sentry Lambda Extension

The Sentry Lambda Extension is [Relay](/services/relay/) running in proxy mode
alongside the Lambda function. This way the Lambda function does not send data
to https://sentry.io but only to Relay running alongside in the same Lambda
execution environment. This reduces latency and keeps the overhead in processing
time Sentry puts on the Lambda function at a minimum.

### Development, Deployment, and Releases

As the Sentry Lambda Extension is built into Relay the deploy and release
processes of Relay are in place.
See [Relays README.md](https://github.com/getsentry/relay/blob/master/README.md)
Binary file removed src/docs/sdk/serverless/sentry-lambda-layer.png
Binary file not shown.
6 changes: 6 additions & 0 deletions src/docs/sdk/store.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,12 @@ title: Store Endpoint
sidebar_order: 50
---

<Alert title="DEPRECATED" level="warning"><markdown>

The `/store` endpoint is deprecated. All data should be sent to the `/envelope` endpoint. See [Envelopes](/sdk/envelopes/).

</markdown></Alert>

The store endpoint is used to send JSON event payloads to Sentry. It is located
at:

Expand Down

0 comments on commit afffd9e

Please sign in to comment.