Skip to content

build(streams): Require sentry-arroyo 2.46 for its healthcheck command - #390

Draft
oioki wants to merge 1 commit into
mainfrom
build/arroyo-2.46
Draft

oioki wants to merge 1 commit into
mainfrom
build/arroyo-2.46

Conversation

@oioki

@oioki oioki commented Oct 15, 2026

Copy link
Copy Markdown
Member

Raises the Python sentry-arroyo requirement from >=2.39.2,<2.44.0 to >=2.46.0,<2.47.0.

arroyo 2.46.0 adds python -m arroyo.healthcheck <path> (getsentry/arroyo#580). It's the liveness check for the file arroyo's Healthcheck strategy touches, which is the /tmp/health.txt the Rust consumer writes when write_healthcheck is on. Requiring it here puts the command in every image that runs sentry_streams, so the PipelineStep probe can switch to it in #389 from rm /tmp/health.txt, which doesn't work on distroless images.

The <2.44.0 cap came in with #377 without a stated reason. On the Python side, 2.43 → 2.46 only adds the healthcheck module and batch-reason tracking in reduce/buffer. The breaking metrics change in 2.44 (getsentry/arroyo#567) is Rust-only, so the Rust crate keeps its cap. @fpacifici, is there another reason for the Python cap?

The lockfile was regenerated with uv 0.7 to keep the lock format unchanged.

Merge blocker: none on its own. It must be released and picked up by consumers (super-big-consumers) before #389 is released.

🤖 Generated with Claude Code

arroyo 2.46.0 ships `python -m arroyo.healthcheck`, the liveness check
for the file arroyo's Healthcheck strategy touches. Requiring it puts the
command in every image that runs sentry_streams, so the PipelineStep
probe can switch to it from `rm /tmp/health.txt`, which doesn't work on
distroless images.

Only the Python dependency moves. The Python changes between 2.43 and
2.46 are the healthcheck module and batch-reason tracking in reduce and
buffer; the breaking metrics change in 2.44 is Rust-only, so the Rust
crate keeps its <2.44.0 cap.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@fpacifici

Copy link
Copy Markdown
Contributor

The <2.44.0 cap came in with #377 without a stated reason. On the Python side, 2.43 → 2.46 only adds the healthcheck module and batch-reason tracking in reduce/buffer. The breaking metrics change in 2.44 (getsentry/arroyo#567) is Rust-only, so the Rust crate keeps its cap. @fpacifici, is there another reason for the Python cap?

No, I don't think so but I would ask streaming.

untitaker added a commit that referenced this pull request Oct 19, 2026
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 (getsentry/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`
(getsentry/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`.

<!-- junior-request-attribution:start -->
via **markus**.
<!-- junior-request-attribution:end -->

<!-- junior-session-footer:start -->
<!-- junior-conversation-id:agent%3Ae2c3e344d6704a3750c4d1337ff0123e -->

--

[View Junior
Session](https://junior-prod.sentry.dev/conversations/agent%3Ae2c3e344d6704a3750c4d1337ff0123e)
[[Sentry]](https://sentry.sentry.io/explore/conversations/agent%3Ae2c3e344d6704a3750c4d1337ff0123e/?project=4510944073809921)

<!-- junior-session-footer:end -->

Co-authored-by: sentry-junior[bot] <264270552+sentry-junior[bot]@users.noreply.github.com>
Co-authored-by: Markus Unterwaditzer <markus@sentry.io>

This branch has not been deployed

No deployments
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