From 8ec40dbc7ebb34d202aee8754741a76d6bd89a12 Mon Sep 17 00:00:00 2001 From: Noah Martin Date: Mon, 26 Oct 2026 17:36:26 -0700 Subject: [PATCH 1/2] feat(billing): Add snapshot image data category Add DATA_CATEGORY_SNAPSHOT_IMAGE so billing platform line items can meter preprod snapshot images. Relay already emits outcomes for this category (SnapshotImage = 38), but billable metric expressions can only reference categories defined in this enum. --- proto/sentry_protos/billing/v1/data_category.proto | 2 ++ 1 file changed, 2 insertions(+) diff --git a/proto/sentry_protos/billing/v1/data_category.proto b/proto/sentry_protos/billing/v1/data_category.proto index 804b8c9c..7210c916 100644 --- a/proto/sentry_protos/billing/v1/data_category.proto +++ b/proto/sentry_protos/billing/v1/data_category.proto @@ -73,6 +73,8 @@ enum DataCategory { DATA_CATEGORY_SEER_USAGE_MICRO_CENTS = 33; // Seer credits consumed by billable Seer features. DATA_CATEGORY_BILLABLE_SEER_CREDITS = 34; + // Images accepted by the preprod snapshot upload API. + DATA_CATEGORY_SNAPSHOT_IMAGE = 35; // Any other data category not known by this version. DATA_CATEGORY_UNKNOWN = -1; } From 9e81e11d3875e582bc0e298b62b92f999c9c1dce Mon Sep 17 00:00:00 2001 From: "getsantry[bot]" <66042841+getsantry[bot]@users.noreply.github.com> Date: Tue, 27 Oct 2026 03:48:11 +0000 Subject: [PATCH 2/2] chore: Regenerate Rust bindings --- Cargo.lock | 2 +- rust/src/sentry_protos.billing.v1.rs | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index 09d2f89c..0af9158c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -717,7 +717,7 @@ checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" [[package]] name = "sentry_protos" -version = "0.90.0" +version = "0.91.0" dependencies = [ "prost", "prost-types", diff --git a/rust/src/sentry_protos.billing.v1.rs b/rust/src/sentry_protos.billing.v1.rs index 75909290..50a44992 100644 --- a/rust/src/sentry_protos.billing.v1.rs +++ b/rust/src/sentry_protos.billing.v1.rs @@ -72,6 +72,8 @@ pub enum DataCategory { SeerUsageMicroCents = 33, /// Seer credits consumed by billable Seer features. BillableSeerCredits = 34, + /// Images accepted by the preprod snapshot upload API. + SnapshotImage = 35, /// Any other data category not known by this version. Unknown = -1, } @@ -115,6 +117,7 @@ impl DataCategory { Self::TraceMetricByte => "DATA_CATEGORY_TRACE_METRIC_BYTE", Self::SeerUsageMicroCents => "DATA_CATEGORY_SEER_USAGE_MICRO_CENTS", Self::BillableSeerCredits => "DATA_CATEGORY_BILLABLE_SEER_CREDITS", + Self::SnapshotImage => "DATA_CATEGORY_SNAPSHOT_IMAGE", Self::Unknown => "DATA_CATEGORY_UNKNOWN", } } @@ -154,6 +157,7 @@ impl DataCategory { "DATA_CATEGORY_TRACE_METRIC_BYTE" => Some(Self::TraceMetricByte), "DATA_CATEGORY_SEER_USAGE_MICRO_CENTS" => Some(Self::SeerUsageMicroCents), "DATA_CATEGORY_BILLABLE_SEER_CREDITS" => Some(Self::BillableSeerCredits), + "DATA_CATEGORY_SNAPSHOT_IMAGE" => Some(Self::SnapshotImage), "DATA_CATEGORY_UNKNOWN" => Some(Self::Unknown), _ => None, }