Skip to content

Commit c13fa06

Browse files
committed
add request to transaction
Signed-off-by: Jess Frazelle <[email protected]>
1 parent 871f727 commit c13fa06

File tree

2 files changed

+32
-1
lines changed

2 files changed

+32
-1
lines changed

sentry-core/src/performance.rs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,14 @@ impl TransactionOrSpan {
202202
}
203203
}
204204

205+
/// Set the HTTP request information for this Transaction/Span.
206+
pub fn set_request(&self, request: protocol::Request) {
207+
match self {
208+
TransactionOrSpan::Transaction(transaction) => transaction.set_request(request),
209+
TransactionOrSpan::Span(span) => span.set_request(request),
210+
}
211+
}
212+
205213
/// Returns the headers needed for distributed tracing.
206214
pub fn iter_headers(&self) -> TraceHeadersIter {
207215
match self {
@@ -355,6 +363,14 @@ impl Transaction {
355363
inner.context.status = Some(status);
356364
}
357365

366+
/// Set the HTTP request information for this Transaction.
367+
pub fn set_request(&self, request: protocol::Request) {
368+
let mut inner = self.inner.lock().unwrap();
369+
if let Some(transaction) = inner.transaction.as_mut() {
370+
transaction.request = Some(request);
371+
}
372+
}
373+
358374
/// Returns the headers needed for distributed tracing.
359375
pub fn iter_headers(&self) -> TraceHeadersIter {
360376
let inner = self.inner.lock().unwrap();
@@ -454,6 +470,12 @@ impl Span {
454470
span.status = Some(status);
455471
}
456472

473+
/// Set the HTTP request information for this Span.
474+
pub fn set_request(&self, request: protocol::Request) {
475+
let mut span = self.span.lock().unwrap();
476+
span.request = Some(request);
477+
}
478+
457479
/// Returns the headers needed for distributed tracing.
458480
pub fn iter_headers(&self) -> TraceHeadersIter {
459481
let span = self.span.lock().unwrap();

sentry-types/src/protocol/v7.rs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use std::ops;
1515
use std::str;
1616
use std::time::SystemTime;
1717

18-
use ::debugid::{CodeId, DebugId};
18+
use self::debugid::{CodeId, DebugId};
1919
use serde::Serializer;
2020
use serde::{Deserialize, Serialize};
2121
use thiserror::Error;
@@ -1737,6 +1737,9 @@ pub struct Span {
17371737
/// Optional extra information to be sent with the span.
17381738
#[serde(default, skip_serializing_if = "Map::is_empty")]
17391739
pub data: Map<String, Value>,
1740+
/// Optionally HTTP request data to be sent along.
1741+
#[serde(default, skip_serializing_if = "Option::is_none")]
1742+
pub request: Option<Request>,
17401743
}
17411744

17421745
impl Default for Span {
@@ -1753,6 +1756,7 @@ impl Default for Span {
17531756
same_process_as_parent: Default::default(),
17541757
op: Default::default(),
17551758
data: Default::default(),
1759+
request: Default::default(),
17561760
}
17571761
}
17581762
}
@@ -1942,6 +1946,9 @@ pub struct Transaction<'a> {
19421946
/// Optional contexts.
19431947
#[serde(default, skip_serializing_if = "Map::is_empty")]
19441948
pub contexts: Map<String, Context>,
1949+
/// Optionally HTTP request data to be sent along.
1950+
#[serde(default, skip_serializing_if = "Option::is_none")]
1951+
pub request: Option<Request>,
19451952
}
19461953

19471954
impl<'a> Default for Transaction<'a> {
@@ -1959,6 +1966,7 @@ impl<'a> Default for Transaction<'a> {
19591966
start_timestamp: SystemTime::now(),
19601967
spans: Default::default(),
19611968
contexts: Default::default(),
1969+
request: Default::default(),
19621970
}
19631971
}
19641972
}
@@ -1984,6 +1992,7 @@ impl<'a> Transaction<'a> {
19841992
start_timestamp: self.start_timestamp,
19851993
spans: self.spans,
19861994
contexts: self.contexts,
1995+
request: self.request,
19871996
}
19881997
}
19891998

0 commit comments

Comments
 (0)