Skip to content

chore(deps): Bump sentry-arroyo to 2.47.0 - #391

Merged
untitaker merged 1 commit into
mainfrom
bump-arroyo-2.47.0
Oct 19, 2026
Merged

untitaker merged 1 commit into
mainfrom
bump-arroyo-2.47.0

Conversation

@sentry-junior

@sentry-junior sentry-junior Bot commented Oct 19, 2026

Copy link
Copy Markdown
Contributor

Bumps arroyo to 2.47.0 on both sides: sentry-arroyo>=2.47.0 in Python, and the sentry_arroyo crate to 2.47.0, which drops the <2.44.0 cap.

Two arroyo 2.44.0 breaking changes needed code changes in the Rust runtime:

  • Metrics moved to metrics-rs (ref(metrics): Standardize on metrics-rs (breaking change) arroyo#567). sentry_arroyo::metrics (Recorder, init, MetricValue) is gone, so the MetricsFacadeRecorder adapter in src/metrics.rs is removed. Arroyo now emits arroyo.* metrics straight to the global metrics-rs recorder. To keep the dashboard names and the Python side unchanged, the DogStatsD recorder is now wrapped in a small recorder that renames arroyo.* keys to streams.pipeline.arroyo.*. Streams' own metrics already start with streams.pipeline.*, so they pass through unchanged.
  • Kafka producer constructors return Result (fix(producer): make Rust Kafka producer constructors fallible arroyo#563). KafkaProducer::new used to panic on failure. The StreamSink and DLQ producers now call .expect(...), so the failure behavior stays the same.

The other changes in the range didn't need code changes here: the ProducerError::Kafka variant (we don't match on it), the wider rdkafka range (we stay on 0.37), the produce-status tag changes, and the additions on the Python side.

This overlaps with #390, which only raises the Python requirement to >=2.46.0,<2.47.0.

via markus.

--

View Junior Session [Sentry]

Bump both the Python package and the Rust crate. Arroyo 2.44.0 moved the
Rust crate to metrics-rs and removed its own recorder API, so drop the
arroyo Recorder adapter and instead wrap the DogStatsD recorder to keep
arroyo metrics under the streams.pipeline namespace. Kafka producer
constructors now return Result; keep the previous panic-on-failure
behavior with expect().

Co-Authored-By: Markus Unterwaditzer <markus@sentry.io>
@sentry-junior
sentry-junior Bot requested a review from a team as a code owner October 19, 2026 14:26
@untitaker
untitaker requested a review from lvthanh03 October 19, 2026 14:27

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 53c69f7. Configure here.

Comment thread sentry_streams/src/metrics.rs

@lvthanh03 lvthanh03 left a comment •

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Left a comment on metrics, other than that looks good to me

Comment on lines +20 to +22
fn prefixed_name(name: &str) -> Option<String> {
name.starts_with(ARROYO_METRIC_PREFIX)
.then(|| format!("{STREAMS_METRIC_PREFIX}{name}"))

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Should arroyo metrics be prefixed with streams.pipeline.? We could add a global application metric label for arroyo metrics using configure_scope: https://github.com/getsentry/relay/blob/46f3659920eefc75b61e03fc5723a603d98b9dc9/relay/src/setup.rs#L110-L112

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Happy to do that, but it's a naming decision, so I'd like a call before changing it. Tradeoffs:

  • Keep the prefix (current PR): Rust arroyo metrics keep the names they had before the bump (streams.pipeline.arroyo.*; the old MetricsFacadeRecorder added the same prefix). They also match the Python side, where DatadogMetricsBackend uses the streams.pipeline namespace for arroyo metrics too. No dashboard or monitor changes.
  • Drop the prefix and use configure_scope: this is cleaner, and arroyo metrics would match other arroyo users like relay. But the Rust series get renamed to arroyo.*, which breaks existing dashboards and monitors. Rust and Python would also diverge unless we change the Python namespace in the same PR. Pipeline tags already reach arroyo metrics through DogStatsD with_global_labels, so configure_scope would only be needed for an extra label like application.

Should I switch to the unprefixed names plus configure_scope, or keep this PR name-preserving and do the rename as a follow-up?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

as part of this PR i think we should just retain compat, if you want to unprefix then i would do it in a separate pr

i'm mainly trying to bump arroyo now across the board so that we're unblocked across the various workstreams

@untitaker
untitaker merged commit b3dabf8 into main Oct 19, 2026
26 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants