From b06eabda3e313c58babaa5241bf6f5377a1be90a Mon Sep 17 00:00:00 2001 From: Michi Hoffmann Date: Mon, 22 Jun 2026 15:04:51 +0200 Subject: [PATCH 1/4] feat: Add queue name, description, and op models Add inference models for queue operations (queue, queue.publish, queue.create, queue.receive, queue.process, queue.settle) with name and description inference based on messaging.destination.name. Co-Authored-By: Claude Opus 4.6 --- javascript/sentry-conventions/src/op.ts | 35 +++++++++++++++++++++++++ model/description/queue.json | 12 +++++++++ model/name/queue.json | 13 +++++++++ model/op/queue.json | 30 +++++++++++++++++++++ rust/src/op.rs | 22 ++++++++++++++++ 5 files changed, 112 insertions(+) create mode 100644 model/description/queue.json create mode 100644 model/name/queue.json create mode 100644 model/op/queue.json diff --git a/javascript/sentry-conventions/src/op.ts b/javascript/sentry-conventions/src/op.ts index 52ee4e58..d79b733e 100644 --- a/javascript/sentry-conventions/src/op.ts +++ b/javascript/sentry-conventions/src/op.ts @@ -148,6 +148,41 @@ export const MOBILE_SERIALIZE_SPAN_OP = 'serialize'; export const MOBILE_HTTP_SPAN_OP = 'http'; +// Path: model/op/queue.json +// Name: queue + +// Description: Queue related spans represent operations on message queues, such as publishing, receiving, processing, and settling messages. + +/** + * A general queue operation. + */ +export const QUEUE_QUEUE_SPAN_OP = 'queue'; + +/** + * Publishing a message to a queue. + */ +export const QUEUE_QUEUE_PUBLISH_SPAN_OP = 'queue.publish'; + +/** + * Creating a queue or a message for later publishing. + */ +export const QUEUE_QUEUE_CREATE_SPAN_OP = 'queue.create'; + +/** + * Receiving a message from a queue. + */ +export const QUEUE_QUEUE_RECEIVE_SPAN_OP = 'queue.receive'; + +/** + * Processing a message from a queue. + */ +export const QUEUE_QUEUE_PROCESS_SPAN_OP = 'queue.process'; + +/** + * Settling a message, e.g. acknowledging or rejecting it. + */ +export const QUEUE_QUEUE_SETTLE_SPAN_OP = 'queue.settle'; + // Path: model/op/web_server.json // Name: web_server diff --git a/model/description/queue.json b/model/description/queue.json new file mode 100644 index 00000000..29059213 --- /dev/null +++ b/model/description/queue.json @@ -0,0 +1,12 @@ +{ + "brief": "Queue", + "operations": [ + { + "name": "Queue", + "brief": "Operations that represent working with message queues, including publishing, receiving, processing, and settling messages.", + "ops": ["queue", "queue.publish", "queue.create", "queue.receive", "queue.process", "queue.settle"], + "templates": ["{{messaging.destination.name}}"], + "examples": ["order-events"] + } + ] +} diff --git a/model/name/queue.json b/model/name/queue.json new file mode 100644 index 00000000..b1b21213 --- /dev/null +++ b/model/name/queue.json @@ -0,0 +1,13 @@ +{ + "brief": "Queue", + "operations": [ + { + "name": "Queue", + "brief": "Operations that represent working with message queues, including publishing, receiving, processing, and settling messages.", + "is_in_otel": false, + "ops": ["queue", "queue.publish", "queue.create", "queue.receive", "queue.process", "queue.settle"], + "templates": ["{{messaging.destination.name}}", "Queue"], + "examples": ["order-events", "user-notifications"] + } + ] +} diff --git a/model/op/queue.json b/model/op/queue.json new file mode 100644 index 00000000..7a99b07d --- /dev/null +++ b/model/op/queue.json @@ -0,0 +1,30 @@ +{ + "name": "queue", + "description": "Queue related spans represent operations on message queues, such as publishing, receiving, processing, and settling messages.", + "fields": [ + { + "name": "queue", + "description": "A general queue operation." + }, + { + "name": "queue.publish", + "description": "Publishing a message to a queue." + }, + { + "name": "queue.create", + "description": "Creating a queue or a message for later publishing." + }, + { + "name": "queue.receive", + "description": "Receiving a message from a queue." + }, + { + "name": "queue.process", + "description": "Processing a message from a queue." + }, + { + "name": "queue.settle", + "description": "Settling a message, e.g. acknowledging or rejecting it." + } + ] +} diff --git a/rust/src/op.rs b/rust/src/op.rs index 24850c73..188d406e 100644 --- a/rust/src/op.rs +++ b/rust/src/op.rs @@ -121,6 +121,28 @@ pub const MOBILE_SERIALIZE_SPAN_OP: &str = "serialize"; pub const MOBILE_HTTP_SPAN_OP: &str = "http"; +// Path: model/op/queue.json +// Name: queue + +// Description: Queue related spans represent operations on message queues, such as publishing, receiving, processing, and settling messages. +/// A general queue operation. +pub const QUEUE_QUEUE_SPAN_OP: &str = "queue"; + +/// Publishing a message to a queue. +pub const QUEUE_QUEUE_PUBLISH_SPAN_OP: &str = "queue.publish"; + +/// Creating a queue or a message for later publishing. +pub const QUEUE_QUEUE_CREATE_SPAN_OP: &str = "queue.create"; + +/// Receiving a message from a queue. +pub const QUEUE_QUEUE_RECEIVE_SPAN_OP: &str = "queue.receive"; + +/// Processing a message from a queue. +pub const QUEUE_QUEUE_PROCESS_SPAN_OP: &str = "queue.process"; + +/// Settling a message, e.g. acknowledging or rejecting it. +pub const QUEUE_QUEUE_SETTLE_SPAN_OP: &str = "queue.settle"; + // Path: model/op/web_server.json // Name: web_server From 7730e15ee6897ab6d580d136fe36461dc4cdfc4c Mon Sep 17 00:00:00 2001 From: Michi Hoffmann Date: Mon, 22 Jun 2026 15:08:43 +0200 Subject: [PATCH 2/4] Format --- model/description/queue.json | 9 ++++++++- model/name/queue.json | 9 ++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/model/description/queue.json b/model/description/queue.json index 29059213..00fa1883 100644 --- a/model/description/queue.json +++ b/model/description/queue.json @@ -4,7 +4,14 @@ { "name": "Queue", "brief": "Operations that represent working with message queues, including publishing, receiving, processing, and settling messages.", - "ops": ["queue", "queue.publish", "queue.create", "queue.receive", "queue.process", "queue.settle"], + "ops": [ + "queue", + "queue.publish", + "queue.create", + "queue.receive", + "queue.process", + "queue.settle" + ], "templates": ["{{messaging.destination.name}}"], "examples": ["order-events"] } diff --git a/model/name/queue.json b/model/name/queue.json index b1b21213..8483cb7c 100644 --- a/model/name/queue.json +++ b/model/name/queue.json @@ -5,7 +5,14 @@ "name": "Queue", "brief": "Operations that represent working with message queues, including publishing, receiving, processing, and settling messages.", "is_in_otel": false, - "ops": ["queue", "queue.publish", "queue.create", "queue.receive", "queue.process", "queue.settle"], + "ops": [ + "queue", + "queue.publish", + "queue.create", + "queue.receive", + "queue.process", + "queue.settle" + ], "templates": ["{{messaging.destination.name}}", "Queue"], "examples": ["order-events", "user-notifications"] } From 34d88d4b0c262d6033b3a6b64511c28af5315d65 Mon Sep 17 00:00:00 2001 From: Michi Hoffmann Date: Mon, 22 Jun 2026 15:42:29 +0200 Subject: [PATCH 3/4] ref: Rename queue models to messaging and remove queue name model Remove the dedicated queue name model since messaging.json already covers queue ops. Rename op and description files from queue to messaging to align with the existing name model. Co-Authored-By: Claude Opus 4.6 --- .../{queue.json => messaging.json} | 0 model/name/queue.json | 20 ------------------- model/op/{queue.json => messaging.json} | 4 ++-- 3 files changed, 2 insertions(+), 22 deletions(-) rename model/description/{queue.json => messaging.json} (100%) delete mode 100644 model/name/queue.json rename model/op/{queue.json => messaging.json} (76%) diff --git a/model/description/queue.json b/model/description/messaging.json similarity index 100% rename from model/description/queue.json rename to model/description/messaging.json diff --git a/model/name/queue.json b/model/name/queue.json deleted file mode 100644 index 8483cb7c..00000000 --- a/model/name/queue.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "brief": "Queue", - "operations": [ - { - "name": "Queue", - "brief": "Operations that represent working with message queues, including publishing, receiving, processing, and settling messages.", - "is_in_otel": false, - "ops": [ - "queue", - "queue.publish", - "queue.create", - "queue.receive", - "queue.process", - "queue.settle" - ], - "templates": ["{{messaging.destination.name}}", "Queue"], - "examples": ["order-events", "user-notifications"] - } - ] -} diff --git a/model/op/queue.json b/model/op/messaging.json similarity index 76% rename from model/op/queue.json rename to model/op/messaging.json index 7a99b07d..d2d8c1ca 100644 --- a/model/op/queue.json +++ b/model/op/messaging.json @@ -1,6 +1,6 @@ { - "name": "queue", - "description": "Queue related spans represent operations on message queues, such as publishing, receiving, processing, and settling messages.", + "name": "messaging", + "description": "Messaging related spans represent operations on topics in streaming data systems and queues, such as producing and consuming messages in Kafka, RabbitMQ.", "fields": [ { "name": "queue", From dfbc320a71a66fd983c0c967b835de3396f52651 Mon Sep 17 00:00:00 2001 From: Michi Hoffmann Date: Mon, 22 Jun 2026 15:43:13 +0200 Subject: [PATCH 4/4] ref: Regenerate op constants for messaging rename Regenerate TypeScript and Rust op constants to reflect the queue to messaging model rename. Constants are now prefixed with MESSAGING_ instead of QUEUE_. Co-Authored-By: Claude Opus 4.6 --- javascript/sentry-conventions/src/op.ts | 48 ++++++++++++------------- model/description/messaging.json | 9 +---- rust/src/op.rs | 44 +++++++++++------------ 3 files changed, 47 insertions(+), 54 deletions(-) diff --git a/javascript/sentry-conventions/src/op.ts b/javascript/sentry-conventions/src/op.ts index d79b733e..6f75322a 100644 --- a/javascript/sentry-conventions/src/op.ts +++ b/javascript/sentry-conventions/src/op.ts @@ -133,55 +133,55 @@ export const GENERAL_MARK_SPAN_OP = 'mark'; */ export const GENERAL_FUNCTION_SPAN_OP = 'function'; -// Path: model/op/mobile.json -// Name: mobile - -export const MOBILE_APP_SPAN_OP = 'app'; - -export const MOBILE_UI_SPAN_OP = 'ui'; - -export const MOBILE_NAVIGATION_SPAN_OP = 'navigation'; - -export const MOBILE_FILE_SPAN_OP = 'file'; - -export const MOBILE_SERIALIZE_SPAN_OP = 'serialize'; - -export const MOBILE_HTTP_SPAN_OP = 'http'; - -// Path: model/op/queue.json -// Name: queue +// Path: model/op/messaging.json +// Name: messaging -// Description: Queue related spans represent operations on message queues, such as publishing, receiving, processing, and settling messages. +// Description: Messaging related spans represent operations on topics in streaming data systems and queues, such as producing and consuming messages in Kafka, RabbitMQ. /** * A general queue operation. */ -export const QUEUE_QUEUE_SPAN_OP = 'queue'; +export const MESSAGING_QUEUE_SPAN_OP = 'queue'; /** * Publishing a message to a queue. */ -export const QUEUE_QUEUE_PUBLISH_SPAN_OP = 'queue.publish'; +export const MESSAGING_QUEUE_PUBLISH_SPAN_OP = 'queue.publish'; /** * Creating a queue or a message for later publishing. */ -export const QUEUE_QUEUE_CREATE_SPAN_OP = 'queue.create'; +export const MESSAGING_QUEUE_CREATE_SPAN_OP = 'queue.create'; /** * Receiving a message from a queue. */ -export const QUEUE_QUEUE_RECEIVE_SPAN_OP = 'queue.receive'; +export const MESSAGING_QUEUE_RECEIVE_SPAN_OP = 'queue.receive'; /** * Processing a message from a queue. */ -export const QUEUE_QUEUE_PROCESS_SPAN_OP = 'queue.process'; +export const MESSAGING_QUEUE_PROCESS_SPAN_OP = 'queue.process'; /** * Settling a message, e.g. acknowledging or rejecting it. */ -export const QUEUE_QUEUE_SETTLE_SPAN_OP = 'queue.settle'; +export const MESSAGING_QUEUE_SETTLE_SPAN_OP = 'queue.settle'; + +// Path: model/op/mobile.json +// Name: mobile + +export const MOBILE_APP_SPAN_OP = 'app'; + +export const MOBILE_UI_SPAN_OP = 'ui'; + +export const MOBILE_NAVIGATION_SPAN_OP = 'navigation'; + +export const MOBILE_FILE_SPAN_OP = 'file'; + +export const MOBILE_SERIALIZE_SPAN_OP = 'serialize'; + +export const MOBILE_HTTP_SPAN_OP = 'http'; // Path: model/op/web_server.json // Name: web_server diff --git a/model/description/messaging.json b/model/description/messaging.json index 00fa1883..29059213 100644 --- a/model/description/messaging.json +++ b/model/description/messaging.json @@ -4,14 +4,7 @@ { "name": "Queue", "brief": "Operations that represent working with message queues, including publishing, receiving, processing, and settling messages.", - "ops": [ - "queue", - "queue.publish", - "queue.create", - "queue.receive", - "queue.process", - "queue.settle" - ], + "ops": ["queue", "queue.publish", "queue.create", "queue.receive", "queue.process", "queue.settle"], "templates": ["{{messaging.destination.name}}"], "examples": ["order-events"] } diff --git a/rust/src/op.rs b/rust/src/op.rs index 188d406e..8cc5290c 100644 --- a/rust/src/op.rs +++ b/rust/src/op.rs @@ -106,6 +106,28 @@ pub const GENERAL_MARK_SPAN_OP: &str = "mark"; /// The time it took for a set of instructions to execute pub const GENERAL_FUNCTION_SPAN_OP: &str = "function"; +// Path: model/op/messaging.json +// Name: messaging + +// Description: Messaging related spans represent operations on topics in streaming data systems and queues, such as producing and consuming messages in Kafka, RabbitMQ. +/// A general queue operation. +pub const MESSAGING_QUEUE_SPAN_OP: &str = "queue"; + +/// Publishing a message to a queue. +pub const MESSAGING_QUEUE_PUBLISH_SPAN_OP: &str = "queue.publish"; + +/// Creating a queue or a message for later publishing. +pub const MESSAGING_QUEUE_CREATE_SPAN_OP: &str = "queue.create"; + +/// Receiving a message from a queue. +pub const MESSAGING_QUEUE_RECEIVE_SPAN_OP: &str = "queue.receive"; + +/// Processing a message from a queue. +pub const MESSAGING_QUEUE_PROCESS_SPAN_OP: &str = "queue.process"; + +/// Settling a message, e.g. acknowledging or rejecting it. +pub const MESSAGING_QUEUE_SETTLE_SPAN_OP: &str = "queue.settle"; + // Path: model/op/mobile.json // Name: mobile @@ -121,28 +143,6 @@ pub const MOBILE_SERIALIZE_SPAN_OP: &str = "serialize"; pub const MOBILE_HTTP_SPAN_OP: &str = "http"; -// Path: model/op/queue.json -// Name: queue - -// Description: Queue related spans represent operations on message queues, such as publishing, receiving, processing, and settling messages. -/// A general queue operation. -pub const QUEUE_QUEUE_SPAN_OP: &str = "queue"; - -/// Publishing a message to a queue. -pub const QUEUE_QUEUE_PUBLISH_SPAN_OP: &str = "queue.publish"; - -/// Creating a queue or a message for later publishing. -pub const QUEUE_QUEUE_CREATE_SPAN_OP: &str = "queue.create"; - -/// Receiving a message from a queue. -pub const QUEUE_QUEUE_RECEIVE_SPAN_OP: &str = "queue.receive"; - -/// Processing a message from a queue. -pub const QUEUE_QUEUE_PROCESS_SPAN_OP: &str = "queue.process"; - -/// Settling a message, e.g. acknowledging or rejecting it. -pub const QUEUE_QUEUE_SETTLE_SPAN_OP: &str = "queue.settle"; - // Path: model/op/web_server.json // Name: web_server