Evaluate `SpanStatus` against the sentry.status convention

オープン
#1,401 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 3 日以内に返信

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
25/100
issue の種類
機能追加
明瞭さ
説明が足りない
活発さ
活発
技術スタック
rust

調査の方向性

Start by reading the SpanStatus documentation linked in the issue, then compare it with the span protocol specification and Relay’s v1 and v2 status handling in the referenced files. The issue asks for a design decision across transaction serialization, future span-first support, and integrations such as Actix, Tower, and OpenTelemetry. Done means resolving those questions and documenting the chosen compatibility approach.

索引モデルが issue の本文から書いたものです。

説明

Spans Task Traces

The sentry.status convention allows only "ok" and "error", and marks more specific errors set by older SDKs as deprecated. SpanStatus still uses the older set of 17 statuses (not_found, internal_error, ...) and has no error variant. Evaluate how SpanStatus should relate to the convention. This was split out of #1399, which only touches the sentry-tracing field.

Context from Relay and the conventions:

  • The two-value status belongs to the span-first (v2) protocol. Relay's SpanV2Status (ok, error, plus a catch-all variant) was added in getsentry/relay#4717 (2025-05-14) as a subset of the OTel statuses. A review thread there removed unset from that set.
  • Relay still parses the transaction/v1 status with the legacy enum in relay-base-schema/src/spans.rs. That enum accepts the 17 statuses plus the aliases success, failure and unknown_error, but rejects "error". Its comment says it's stored as a u8 in Snuba/ClickHouse.
  • Relay converts v1 spans to v2 by mapping ok to ok and every other status to error (relay-spans/src/v1_to_v2.rs, added in getsentry/relay#5139).
  • The convention was added in getsentry/sentry-conventions#453 (2026-06-26). It describes sentry.status as set during ingestion: v2 spans can only be ok or error, while v1 spans have the longer list.
  • The span-first SDK spec sets the span status to either "ok" or "error", and setStatus accepts 'ok' | 'error' (develop docs).

Open questions:

  • Should SpanStatus change while the SDK sends transactions, given that Relay's transaction parser rejects "error"?
  • How should this tie in with span-first support in the Rust SDK?
  • How should the existing variants and the integrations that set them (Actix, Tower, OpenTelemetry) be handled?

References #1398

via @szokeasaurusrex.

--

View Session [Sentry]

主要言語
Rust
スター
754
フォーク
192
平均マージ
2日 23時間
マージ済み PR(30日)
20

環境構築

  • Dockerfile・Docker Compose ファイルなし
  • プルリクエストのテンプレートあり
  • コントリビューションガイドなし

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

getsentry/sentry-rust のほかの issue

getsentry/sentry-rust の issue をすべて見る

似ている issue

Rust の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。