Skip to content

Commit 0b9c1a7

Browse files
committed
fix ordering of ids
1 parent d01347e commit 0b9c1a7

9 files changed

Lines changed: 83 additions & 83 deletions

File tree

libdd-data-pipeline-ffi/src/trace_exporter.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -47,10 +47,10 @@ pub struct TelemetryClientConfig<'a> {
4747

4848
/// HTTP header `dd-session-id` (empty = omitted).
4949
pub session_id: CharSlice<'a>,
50-
/// HTTP header `dd-root-session-id` (empty = omitted).
51-
pub root_session_id: CharSlice<'a>,
5250
/// HTTP header `dd-parent-session-id` (empty = omitted).
5351
pub parent_session_id: CharSlice<'a>,
52+
/// HTTP header `dd-root-session-id` (empty = omitted).
53+
pub root_session_id: CharSlice<'a>,
5454
}
5555

5656
/// The TraceExporterConfig object will hold the configuration properties for the TraceExporter.
@@ -316,11 +316,11 @@ pub unsafe extern "C" fn ddog_trace_exporter_config_enable_telemetry(
316316
Ok(s) => Some(s),
317317
Err(e) => return Some(e),
318318
},
319-
root_session_id: match sanitize_string(telemetry_cfg.root_session_id) {
319+
parent_session_id: match sanitize_string(telemetry_cfg.parent_session_id) {
320320
Ok(s) => Some(s),
321321
Err(e) => return Some(e),
322322
},
323-
parent_session_id: match sanitize_string(telemetry_cfg.parent_session_id) {
323+
root_session_id: match sanitize_string(telemetry_cfg.root_session_id) {
324324
Ok(s) => Some(s),
325325
Err(e) => return Some(e),
326326
},
@@ -859,8 +859,8 @@ mod tests {
859859
runtime_id: CharSlice::from("id"),
860860
debug_enabled: false,
861861
session_id: CharSlice::empty(),
862-
root_session_id: CharSlice::empty(),
863862
parent_session_id: CharSlice::empty(),
863+
root_session_id: CharSlice::empty(),
864864
}),
865865
);
866866
assert_eq!(error.as_ref().unwrap().code, ErrorCode::InvalidArgument);
@@ -879,8 +879,8 @@ mod tests {
879879
runtime_id: CharSlice::from("foo"),
880880
debug_enabled: true,
881881
session_id: CharSlice::empty(),
882-
root_session_id: CharSlice::empty(),
883882
parent_session_id: CharSlice::empty(),
883+
root_session_id: CharSlice::empty(),
884884
}),
885885
);
886886
assert!(error.is_none());
@@ -902,13 +902,13 @@ mod tests {
902902
);
903903
assert_eq!(
904904
cfg.telemetry_instrumentation_sessions
905-
.root_session_id
905+
.parent_session_id
906906
.as_deref(),
907907
Some("")
908908
);
909909
assert_eq!(
910910
cfg.telemetry_instrumentation_sessions
911-
.parent_session_id
911+
.root_session_id
912912
.as_deref(),
913913
Some("")
914914
);
@@ -921,15 +921,15 @@ mod tests {
921921
runtime_id: CharSlice::from("rid"),
922922
debug_enabled: false,
923923
session_id: CharSlice::from("sess-z"),
924-
root_session_id: CharSlice::from("root-z"),
925924
parent_session_id: CharSlice::from("par-z"),
925+
root_session_id: CharSlice::from("root-z"),
926926
}),
927927
);
928928
assert!(error.is_none());
929929
let s = &cfg.telemetry_instrumentation_sessions;
930930
assert_eq!(s.session_id.as_deref(), Some("sess-z"));
931-
assert_eq!(s.root_session_id.as_deref(), Some("root-z"));
932931
assert_eq!(s.parent_session_id.as_deref(), Some("par-z"));
932+
assert_eq!(s.root_session_id.as_deref(), Some("root-z"));
933933
}
934934
}
935935

libdd-data-pipeline/src/trace_exporter/builder.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -322,12 +322,12 @@ impl TraceExporterBuilder {
322322
if let Some(ref id) = sessions.session_id {
323323
builder = builder.set_session_id(id);
324324
}
325-
if let Some(ref id) = sessions.root_session_id {
326-
builder = builder.set_root_session_id(id);
327-
}
328325
if let Some(ref id) = sessions.parent_session_id {
329326
builder = builder.set_parent_session_id(id);
330327
}
328+
if let Some(ref id) = sessions.root_session_id {
329+
builder = builder.set_root_session_id(id);
330+
}
331331
builder.build(runtime.handle().clone())
332332
});
333333

libdd-data-pipeline/src/trace_exporter/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@ mod trace_serializer;
1010
// Re-export the builder
1111
pub use builder::TraceExporterBuilder;
1212

13-
/// Values for optional telemetry HTTP session headers (`dd-session-id`, root/parent).
13+
/// Values for optional telemetry HTTP session headers (`dd-session-id`, parent/root).
1414
#[derive(Debug, Default, Clone)]
1515
pub struct TelemetryInstrumentationSessions {
1616
pub session_id: Option<String>,
17-
pub root_session_id: Option<String>,
1817
pub parent_session_id: Option<String>,
18+
pub root_session_id: Option<String>,
1919
}
2020

2121
use self::agent_response::AgentResponse;

libdd-telemetry-ffi/src/builder/expanded.rs

Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -267,27 +267,6 @@ mod macros {
267267
ffi::MaybeError::None
268268
}
269269
#[no_mangle]
270-
pub unsafe extern "C" fn ddog_telemetry_builder_with_str_root_session_id(
271-
telemetry_builder: &mut TelemetryWorkerBuilder,
272-
param: ffi::CharSlice,
273-
) -> ffi::MaybeError {
274-
telemetry_builder.config.root_session_id = match (|s: ffi::CharSlice| -> Result<_, String> {
275-
Ok(Some(s.to_utf8_lossy().into_owned()))
276-
})(param)
277-
{
278-
Ok(o) => o,
279-
Err(e) => {
280-
return ffi::MaybeError::Some(libdd_common_ffi::Error::from(
281-
({
282-
let res = std::fmt::format(format_args!("{e:?}"));
283-
res
284-
}),
285-
));
286-
}
287-
};
288-
ffi::MaybeError::None
289-
}
290-
#[no_mangle]
291270
pub unsafe extern "C" fn ddog_telemetry_builder_with_str_parent_session_id(
292271
telemetry_builder: &mut TelemetryWorkerBuilder,
293272
param: ffi::CharSlice,
@@ -309,6 +288,27 @@ mod macros {
309288
};
310289
ffi::MaybeError::None
311290
}
291+
#[no_mangle]
292+
pub unsafe extern "C" fn ddog_telemetry_builder_with_str_root_session_id(
293+
telemetry_builder: &mut TelemetryWorkerBuilder,
294+
param: ffi::CharSlice,
295+
) -> ffi::MaybeError {
296+
telemetry_builder.config.root_session_id = match (|s: ffi::CharSlice| -> Result<_, String> {
297+
Ok(Some(s.to_utf8_lossy().into_owned()))
298+
})(param)
299+
{
300+
Ok(o) => o,
301+
Err(e) => {
302+
return ffi::MaybeError::Some(libdd_common_ffi::Error::from(
303+
({
304+
let res = std::fmt::format(format_args!("{e:?}"));
305+
res
306+
}),
307+
));
308+
}
309+
};
310+
ffi::MaybeError::None
311+
}
312312
#[repr(C)]
313313
#[allow(dead_code)]
314314
pub enum TelemetryWorkerBuilderStrProperty {
@@ -324,8 +324,8 @@ mod macros {
324324
HostKernelVersion,
325325
RuntimeId,
326326
SessionId,
327-
RootSessionId,
328327
ParentSessionId,
328+
RootSessionId,
329329
}
330330
#[no_mangle]
331331
/**
@@ -357,10 +357,10 @@ mod macros {
357357
358358
* session_id
359359
360-
* root_session_id
361-
362360
* parent_session_id
363361
362+
* root_session_id
363+
364364
*/
365365
pub unsafe extern "C" fn ddog_telemetry_builder_with_property_str(
366366
telemetry_builder: &mut TelemetryWorkerBuilder,
@@ -571,8 +571,8 @@ mod macros {
571571
}
572572
};
573573
}
574-
RootSessionId => {
575-
telemetry_builder.config.root_session_id =
574+
ParentSessionId => {
575+
telemetry_builder.config.parent_session_id =
576576
match (|s: ffi::CharSlice| -> Result<_, String> {
577577
Ok(Some(s.to_utf8_lossy().into_owned()))
578578
})(param)
@@ -588,8 +588,8 @@ mod macros {
588588
}
589589
};
590590
}
591-
ParentSessionId => {
592-
telemetry_builder.config.parent_session_id =
591+
RootSessionId => {
592+
telemetry_builder.config.root_session_id =
593593
match (|s: ffi::CharSlice| -> Result<_, String> {
594594
Ok(Some(s.to_utf8_lossy().into_owned()))
595595
})(param)
@@ -638,10 +638,10 @@ mod macros {
638638
639639
* session_id
640640
641-
* root_session_id
642-
643641
* parent_session_id
644642
643+
* root_session_id
644+
645645
*/
646646
pub unsafe extern "C" fn ddog_telemetry_builder_with_str_named_property(
647647
telemetry_builder: &mut TelemetryWorkerBuilder,
@@ -862,8 +862,8 @@ mod macros {
862862
}
863863
};
864864
}
865-
"root_session_id" => {
866-
telemetry_builder.config.root_session_id =
865+
"parent_session_id" => {
866+
telemetry_builder.config.parent_session_id =
867867
match (|s: ffi::CharSlice| -> Result<_, String> {
868868
Ok(Some(s.to_utf8_lossy().into_owned()))
869869
})(param)
@@ -879,8 +879,8 @@ mod macros {
879879
}
880880
};
881881
}
882-
"parent_session_id" => {
883-
telemetry_builder.config.parent_session_id =
882+
"root_session_id" => {
883+
telemetry_builder.config.root_session_id =
884884
match (|s: ffi::CharSlice| -> Result<_, String> {
885885
Ok(Some(s.to_utf8_lossy().into_owned()))
886886
})(param)

libdd-telemetry-ffi/src/builder/macros.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ crate::c_setters!(
3838

3939
runtime_id,
4040
session_id,
41-
root_session_id,
4241
parent_session_id,
42+
root_session_id,
4343
}
4444
);
4545

libdd-telemetry-ffi/src/lib.rs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -209,15 +209,6 @@ mod tests {
209209
MaybeError::None,
210210
);
211211
assert_eq!(builder.config.session_id.as_deref(), Some("sess-1"));
212-
assert_eq!(
213-
ddog_telemetry_builder_with_property_str(
214-
&mut builder,
215-
TelemetryWorkerBuilderStrProperty::RootSessionId,
216-
ffi::CharSlice::from("root-9")
217-
),
218-
MaybeError::None,
219-
);
220-
assert_eq!(builder.config.root_session_id.as_deref(), Some("root-9"));
221212
assert_eq!(
222213
ddog_telemetry_builder_with_property_str(
223214
&mut builder,
@@ -230,6 +221,15 @@ mod tests {
230221
builder.config.parent_session_id.as_deref(),
231222
Some("parent-2")
232223
);
224+
assert_eq!(
225+
ddog_telemetry_builder_with_property_str(
226+
&mut builder,
227+
TelemetryWorkerBuilderStrProperty::RootSessionId,
228+
ffi::CharSlice::from("root-9")
229+
),
230+
MaybeError::None,
231+
);
232+
assert_eq!(builder.config.root_session_id.as_deref(), Some("root-9"));
233233

234234
assert_eq!(
235235
ddog_telemetry_builder_with_property_str(

libdd-telemetry/src/config.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,9 @@ pub struct Config {
3737
#[serde(default)]
3838
pub session_id: Option<String>,
3939
#[serde(default)]
40-
pub root_session_id: Option<String>,
41-
#[serde(default)]
4240
pub parent_session_id: Option<String>,
41+
#[serde(default)]
42+
pub root_session_id: Option<String>,
4343
}
4444

4545
fn endpoint_with_telemetry_path(
@@ -174,8 +174,8 @@ impl Default for Config {
174174
restartable: false,
175175
debug_enabled: false,
176176
session_id: None,
177-
root_session_id: None,
178177
parent_session_id: None,
178+
root_session_id: None,
179179
}
180180
}
181181
}
@@ -260,8 +260,8 @@ impl Config {
260260
restartable: false,
261261
debug_enabled: false,
262262
session_id: None,
263-
root_session_id: None,
264263
parent_session_id: None,
264+
root_session_id: None,
265265
};
266266
if let Ok(url) = parse_uri(&trace_agent_url) {
267267
let _res = this.set_endpoint(Endpoint {

libdd-telemetry/src/worker/http_client.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,32 +25,32 @@ pub mod header {
2525
pub const DEBUG_ENABLED: HeaderName = HeaderName::from_static("dd-telemetry-debug-enabled");
2626

2727
pub const DD_SESSION_ID: HeaderName = HeaderName::from_static("dd-session-id");
28-
pub const DD_ROOT_SESSION_ID: HeaderName = HeaderName::from_static("dd-root-session-id");
2928
pub const DD_PARENT_SESSION_ID: HeaderName = HeaderName::from_static("dd-parent-session-id");
29+
pub const DD_ROOT_SESSION_ID: HeaderName = HeaderName::from_static("dd-root-session-id");
3030
}
3131

3232
pub(crate) fn add_instrumentation_session_headers(
3333
mut builder: HttpRequestBuilder,
3434
session_id: Option<&str>,
35-
root_session_id: Option<&str>,
3635
parent_session_id: Option<&str>,
36+
root_session_id: Option<&str>,
3737
) -> HttpRequestBuilder {
3838
let Some(s) = session_id.filter(|id| !id.is_empty()) else {
3939
return builder;
4040
};
4141
builder = builder.header(header::DD_SESSION_ID, s);
42-
if let Some(r) = root_session_id
43-
.filter(|r| !r.is_empty())
44-
.filter(|r| *r != s)
45-
{
46-
builder = builder.header(header::DD_ROOT_SESSION_ID, r);
47-
}
4842
if let Some(p) = parent_session_id
4943
.filter(|p| !p.is_empty())
5044
.filter(|p| *p != s)
5145
{
5246
builder = builder.header(header::DD_PARENT_SESSION_ID, p);
5347
}
48+
if let Some(r) = root_session_id
49+
.filter(|r| !r.is_empty())
50+
.filter(|r| *r != s)
51+
{
52+
builder = builder.header(header::DD_ROOT_SESSION_ID, r);
53+
}
5454
builder
5555
}
5656

0 commit comments

Comments
 (0)