Skip to content

Commit 5505925

Browse files
Merge branch 'master' into tobias-wilfert/feat/migrate-process-client-reports
2 parents 673958e + afb5ee4 commit 5505925

File tree

63 files changed

+2144
-766
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

63 files changed

+2144
-766
lines changed

.github/workflows/ci.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -464,7 +464,7 @@ jobs:
464464
- uses: docker/setup-qemu-action@v3
465465
- uses: docker/setup-buildx-action@v3
466466

467-
- uses: actions/download-artifact@v5
467+
- uses: actions/download-artifact@v6
468468
with:
469469
pattern: "${{ matrix.image_name }}@*"
470470
merge-multiple: true
@@ -543,7 +543,7 @@ jobs:
543543
gcloud auth configure-docker us-central1-docker.pkg.dev
544544
545545
# Logic taken from: build-docker
546-
- uses: actions/download-artifact@v5
546+
- uses: actions/download-artifact@v6
547547
with:
548548
pattern: "internal-${{ matrix.image_name }}@*"
549549
merge-multiple: true
@@ -663,7 +663,7 @@ jobs:
663663
# You must use the Cloud SDK version 390.0.0 or later to authenticate the bq and gsutil tools.
664664
version: ">= 390.0.0"
665665

666-
- uses: actions/download-artifact@v5
666+
- uses: actions/download-artifact@v6
667667
with:
668668
pattern: "internal-${{ matrix.image_name }}@*"
669669
merge-multiple: true
@@ -797,7 +797,7 @@ jobs:
797797

798798
- name: Download Docker Image
799799
if: "github.event.pull_request.head.repo.fork || github.actor == 'dependabot[bot]'"
800-
uses: actions/download-artifact@v5
800+
uses: actions/download-artifact@v6
801801
with:
802802
name: relay-docker-image
803803

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,17 @@
1010
- Add `sentry.origin` attribute to OTLP spans. ([#5294](https://github.com/getsentry/relay/pull/5294))
1111
- Normalize deprecated attribute names according to `sentry-conventions` for logs and V2 spans. ([#5257](https://github.com/getsentry/relay/pull/5257))
1212
- Allow sample rate per trace metric. ([#5317](https://github.com/getsentry/relay/pull/5317))
13+
- Remove the profile context from transactions if profiles are currently rate limited. ([#5346](https://github.com/getsentry/relay/pull/5346))
14+
- Replace `is_remote` with `is_segment` on the Span V2 schema. ([#5306](https://github.com/getsentry/relay/pull/5306))
15+
- Add `response_timeout` config setting for Redis. ([#5329](https://github.com/getsentry/relay/pull/5329))
1316

1417
**Breaking Changes**:
1518

1619
- Simplify proxy mode to forward without processing. ([#5165](https://github.com/getsentry/relay/pull/5165))
1720

1821
**Bug Fixes**:
1922

23+
- Fix array attributes not being applied to standalone spans. ([#5337](https://github.com/getsentry/relay/pull/5337))
2024
- Envelopes created from integrations can now be spooled. ([#5284](https://github.com/getsentry/relay/pull/5284))
2125
- Make referer optional in Vercel Log Drain Transform. ([#5273](https://github.com/getsentry/relay/pull/5273))
2226
- Fix potentially missing attachment outcomes when rate limiting. ([#5301](https://github.com/getsentry/relay/pull/5301))

Cargo.lock

Lines changed: 5 additions & 13 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,6 @@ criterion = "0.5.1"
106106
crossbeam-channel = "0.5.15"
107107
data-encoding = "2.9.0"
108108
deadpool = "0.12.3"
109-
deadpool-redis = "0.20.0"
110109
debugid = "0.8.0"
111110
dialoguer = "0.11.0"
112111
dynfmt = "0.1.5"
@@ -177,7 +176,7 @@ sentry = { version = "0.41.0", default-features = false, features = [
177176
"transport",
178177
] }
179178
sentry-core = "0.41.0"
180-
sentry-kafka-schemas = { version = "2.1.7", default-features = false }
179+
sentry-kafka-schemas = { version = "2.1.14", default-features = false }
181180
sentry-release-parser = { version = "1.3.2", default-features = false }
182181
sentry-types = "0.41.0"
183182
sentry_protos = "0.4.2"

py/CHANGELOG.md

Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,16 @@
11
# Changelog
22

3-
# Unreleased
4-
5-
- Introduces a project scope sampling rule type. ([#5077](https://github.com/getsentry/relay/pull/5077))
6-
- Add InstallableBuild and SizeAnalysis data categories. ([#5084](https://github.com/getsentry/relay/pull/5084))
7-
- Add `retentions` to the project configuration. ([#5135](https://github.com/getsentry/relay/pull/5135))
8-
- Normalization: Trim event tag keys & values to 200 chars instead of dropping them. ([#5198](https://github.com/getsentry/relay/pull/5198))
9-
- Add TraceMetric data category. ([#5206](https://github.com/getsentry/relay/pull/5206))
10-
113
## 0.9.19
124

135
### Various fixes & improvements
146

15-
- build(py): Upgrade python to 3.13 (#5323) by @jjbayer
16-
- build(py): Revert `uv`, `devenv`, `pre-commit` (#5321) by @jjbayer
17-
- build(py): Remove py/pyproject.toml altogether (#5314) by @jjbayer
18-
- build(py): Revert dynamic version, ignore pyproject.toml instead (#5313) by @jjbayer
19-
- build(py): Use dynamic version (#5311) by @jjbayer
20-
- feat(dev): Add devenv, uv, pre-commit (take 2) (#5248) by @joshuarli
7+
- fix(billing): Use camel case for retentions config #5303 by @jjbayer
218

229
## 0.9.17
2310

2411
### Various fixes & improvements
2512

26-
- Revert "feat(dev): Add devenv, uv, pre-commit" (#5232) by @Dav1dde
27-
- feat(dev): Add devenv, uv, pre-commit (#5070) by @joshuarli
28-
- feat(spans): Map span.status unknown_error to internal_error (#5202) by @obostjancic
2913
- feat(billing): Add TraceMetric datacategory (#5206) by @k-fish
30-
- feat(normalization): Trim tag keys & values (#5198) by @jjbayer
31-
- release: 0.9.16 (4b63e713) by @getsentry-bot
32-
- feat(billing): Add retentions to project configs (#5135) by @vbro
3314

3415
## 0.9.16
3516

relay-cardinality/benches/redis_impl.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ fn build_redis_client() -> AsyncRedisClient {
2121
let url =
2222
std::env::var("RELAY_REDIS_URL").unwrap_or_else(|_| "redis://127.0.0.1:6379".to_owned());
2323

24-
AsyncRedisClient::single(&url, &RedisConfigOptions::default()).unwrap()
24+
AsyncRedisClient::single("bench", &url, &RedisConfigOptions::default()).unwrap()
2525
}
2626

2727
async fn build_limiter(client: AsyncRedisClient, reset_redis: bool) -> RedisSetLimiter {

relay-cardinality/src/redis/limiter.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,7 @@ mod tests {
290290
max_connections: 1,
291291
..Default::default()
292292
};
293-
let redis = AsyncRedisClient::single(&url, &opts).unwrap();
293+
let redis = AsyncRedisClient::single("test", &url, &opts).unwrap();
294294

295295
RedisSetLimiter::new(
296296
RedisSetLimiterOptions {

relay-cardinality/src/redis/script.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@ mod tests {
226226
max_connections: 1,
227227
..Default::default()
228228
};
229-
AsyncRedisClient::single(&url, &opts).unwrap()
229+
AsyncRedisClient::single("test", &url, &opts).unwrap()
230230
}
231231

232232
fn keys(prefix: Uuid, keys: &[&str]) -> impl Iterator<Item = String> {

relay-config/src/config.rs

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1173,6 +1173,9 @@ pub struct Processing {
11731173
/// Maximum rate limit to report to clients.
11741174
#[serde(default = "default_max_rate_limit")]
11751175
pub max_rate_limit: Option<u32>,
1176+
/// Configuration for attachment uploads.
1177+
#[serde(default)]
1178+
pub upload: UploadServiceConfig,
11761179
}
11771180

11781181
impl Default for Processing {
@@ -1191,6 +1194,7 @@ impl Default for Processing {
11911194
attachment_chunk_size: default_chunk_size(),
11921195
projectconfig_cache_prefix: default_projectconfig_cache_prefix(),
11931196
max_rate_limit: default_max_rate_limit(),
1197+
upload: UploadServiceConfig::default(),
11941198
}
11951199
}
11961200
}
@@ -1239,6 +1243,26 @@ impl Default for OutcomeAggregatorConfig {
12391243
}
12401244
}
12411245

1246+
/// Configuration values for attachment uploads.
1247+
#[derive(Serialize, Deserialize, Debug)]
1248+
#[serde(default)]
1249+
pub struct UploadServiceConfig {
1250+
/// Maximum concurrency of uploads.
1251+
pub max_concurrent_requests: usize,
1252+
1253+
/// Maximum duration of an attachment upload in seconds. Uploads that take longer are discarded.
1254+
pub timeout: u64,
1255+
}
1256+
1257+
impl Default for UploadServiceConfig {
1258+
fn default() -> Self {
1259+
Self {
1260+
max_concurrent_requests: 100,
1261+
timeout: 60,
1262+
}
1263+
}
1264+
}
1265+
12421266
/// Determines how to emit outcomes.
12431267
/// For compatibility reasons, this can either be true, false or AsClientReports
12441268
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
@@ -2493,6 +2517,11 @@ impl Config {
24932517
&self.values.processing.topics.unused
24942518
}
24952519

2520+
/// Configuration of the attachment upload service.
2521+
pub fn upload(&self) -> &UploadServiceConfig {
2522+
&self.values.processing.upload
2523+
}
2524+
24962525
/// Redis servers to connect to for project configs, cardinality limits,
24972526
/// rate limiting, and metrics metadata.
24982527
pub fn redis(&self) -> Option<RedisConfigsRef<'_>> {

relay-config/src/redis.rs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,11 @@ pub struct PartialRedisConfigOptions {
3939
/// blocking when the pool is exhausted.
4040
#[serde(skip_serializing_if = "Option::is_none")]
4141
pub wait_timeout: Option<u64>,
42+
/// Sets the maximum time in seconds to wait for a result when sending a Redis command.
43+
///
44+
/// If a command exceeds this timeout, the connection will be recycled.
45+
#[serde(skip_serializing_if = "Option::is_none")]
46+
pub response_timeout: Option<u64>,
4247
/// Sets the number of times after which the connection will check whether it is active when
4348
/// being recycled.
4449
///
@@ -55,6 +60,7 @@ impl Default for PartialRedisConfigOptions {
5560
create_timeout: Some(3),
5661
recycle_timeout: Some(2),
5762
wait_timeout: None,
63+
response_timeout: Some(30),
5864
recycle_check_frequency: 100,
5965
}
6066
}
@@ -224,6 +230,7 @@ fn build_redis_config_options(
224230
create_timeout: options.create_timeout,
225231
recycle_timeout: options.recycle_timeout,
226232
wait_timeout: options.wait_timeout,
233+
response_timeout: options.response_timeout,
227234
recycle_check_frequency: options.recycle_check_frequency,
228235
}
229236
}
@@ -403,6 +410,7 @@ quotas:
403410
"idle_timeout": 60,
404411
"create_timeout": 3,
405412
"recycle_timeout": 2,
413+
"response_timeout": 30,
406414
"recycle_check_frequency": 100
407415
}
408416
"###);
@@ -425,6 +433,7 @@ quotas:
425433
"idle_timeout": 60,
426434
"create_timeout": 3,
427435
"recycle_timeout": 2,
436+
"response_timeout": 30,
428437
"recycle_check_frequency": 100
429438
}
430439
"###);
@@ -544,6 +553,7 @@ max_connections: 20
544553
"idle_timeout": 60,
545554
"create_timeout": 3,
546555
"recycle_timeout": 2,
556+
"response_timeout": 30,
547557
"recycle_check_frequency": 100
548558
}
549559
"###);
@@ -572,6 +582,7 @@ max_connections: 20
572582
"idle_timeout": 60,
573583
"create_timeout": 3,
574584
"recycle_timeout": 2,
585+
"response_timeout": 30,
575586
"recycle_check_frequency": 100
576587
}
577588
"###);
@@ -611,13 +622,15 @@ max_connections: 20
611622
"idle_timeout": 60,
612623
"create_timeout": 3,
613624
"recycle_timeout": 2,
625+
"response_timeout": 30,
614626
"recycle_check_frequency": 100
615627
},
616628
"cardinality": {
617629
"server": "redis://127.0.0.1:6379",
618630
"idle_timeout": 60,
619631
"create_timeout": 3,
620632
"recycle_timeout": 2,
633+
"response_timeout": 30,
621634
"recycle_check_frequency": 100
622635
},
623636
"quotas": {
@@ -629,6 +642,7 @@ max_connections: 20
629642
"idle_timeout": 60,
630643
"create_timeout": 3,
631644
"recycle_timeout": 2,
645+
"response_timeout": 30,
632646
"recycle_check_frequency": 100
633647
}
634648
}

0 commit comments

Comments
 (0)