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 3 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
45 changes: 45 additions & 0 deletions text/0121-draft-environment-variable-conventions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
- 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`

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