Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

rfc(decision): Environment Variable conventions #121

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open
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
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,4 +58,5 @@ This repository contains RFCs and DACIs. Lost?
- [0101-revamping-the-sdk-performance-api](text/0101-revamping-the-sdk-performance-api.md): Revamping the SDK Performance API
- [0106-artifact-indices](text/0106-artifact-indices.md): Improvements to Source Maps Processing
- [0116-sentry-semantic-conventions](text/0116-sentry-semantic-conventions.md): Sentry Semantic Conventions
- [0117-mobile-transactions-and-spans](text/0117-mobile-transactions-and-spans.md): Transactions and Spans for Mobile Platforms
- [0117-mobile-transactions-and-spans](text/0117-mobile-transactions-and-spans.md): Transactions and Spans for Mobile Platforms
- [0121-draft-environment-variable-conventions](text/0121-draft-environment-variable-conventions.md): Environment Variable conventions
46 changes: 46 additions & 0 deletions text/0121-draft-environment-variable-conventions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
- Start Date: 2023-11-07
- RFC Type: decision
- RFC PR: https://github.com/getsentry/rfcs/pull/121
- RFC Status: draft

# Summary

We already expose certain environment variables that are consumed by SDKs, such as `SENTRY_DSN` and `SENTRY_RELEASE`.
To further ease usage, we should expose more options as such.
This RFC aims to find a set of conventions mainly aimed for server-side SDKs.

# Motivation

Changing the SDK configuration most often requires a re-deployment of the application. This can be cumbersome for small changes,
such as updating the `traces_sample_rate`. Given the rise in populairty of server-less or containerized deployments, where
most configuration hails from envrionment variables, we should strive to make this workflow less cumbersome for our users.

# Background

The Laravel SDK exposes the majority of its configuration as environment variables, making it a breeze to update the configuration of the SDK easily.
For a complete list of exposed variables, see https://github.com/getsentry/sentry-laravel/blob/9624a88c9cd9a50c22443fcdf3a0f77634b11210/config/sentry.php

# Options Considered

A first list of environment variables that all server sides SDKs should support could look like:

- `SENTRY_DSN`
- `SENTRY_RELEASE`
- `SENTRY_ENVIRONMENT`
- `SENTRY_SAMPLE_RATE`
- `SENTRY_TRACES_SAMPLE_RATE`
- `SENTRY_PROFILES_SAMPLE_RATE`
- `SENTRY_DEBUG`
Comment on lines +27 to +33
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just stumbled across this RFC. We could also list SENTRY_TRACE and SENTRY_BAGGAGE, which could be picked up to continue traces.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep, there is/was another RFC for that, but I can add it and actually move this RFC forward 😬


cleptric marked this conversation as resolved.
Show resolved Hide resolved
Further additions could include but are not limited to:

- `SENTRY_TAGS_<tag-key>` - An environment variable of `SENTRY_TAGS_foo = "bar"` would result in a tag of `foo: bar` being attached to all events.

or SDK/framework-specific options, such as to control integrations or features

- `SENTRY_BREADCRUMBS_LOGS_ENABLED`
- `SENTRY_TRACE_MISSING_ROUTES_ENABLED`

# Drawbacks

TBD