Skip to content

Commit 6619210

Browse files
authored
fix(otel): custom span start + end times are fractional ms (#27995)
Previously they were treated as fractional seconds.
1 parent 9213215 commit 6619210

File tree

2 files changed

+7
-7
lines changed

2 files changed

+7
-7
lines changed

ext/telemetry/lib.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -1184,7 +1184,7 @@ impl OtelTracer {
11841184
let start_time = start_time
11851185
.map(|start_time| {
11861186
SystemTime::UNIX_EPOCH
1187-
.checked_add(std::time::Duration::from_secs_f64(start_time))
1187+
.checked_add(std::time::Duration::from_secs_f64(start_time / 1000.0))
11881188
.ok_or_else(|| JsErrorBox::generic("invalid start time"))
11891189
})
11901190
.unwrap_or_else(|| Ok(SystemTime::now()))?;
@@ -1251,7 +1251,7 @@ impl OtelTracer {
12511251
let start_time = start_time
12521252
.map(|start_time| {
12531253
SystemTime::UNIX_EPOCH
1254-
.checked_add(std::time::Duration::from_secs_f64(start_time))
1254+
.checked_add(std::time::Duration::from_secs_f64(start_time / 1000.0))
12551255
.ok_or_else(|| JsErrorBox::generic("invalid start time"))
12561256
})
12571257
.unwrap_or_else(|| Ok(SystemTime::now()))?;
@@ -1366,7 +1366,7 @@ impl OtelSpan {
13661366
SystemTime::now()
13671367
} else {
13681368
SystemTime::UNIX_EPOCH
1369-
.checked_add(Duration::from_secs_f64(end_time))
1369+
.checked_add(Duration::from_secs_f64(end_time / 1000.0))
13701370
.unwrap()
13711371
};
13721372

ext/telemetry/telemetry.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -139,8 +139,8 @@ interface IKeyValue {
139139
value: IAnyValue;
140140
}
141141

142-
function hrToSecs(hr: [number, number]): number {
143-
return (hr[0] * 1e3 + hr[1] / 1e6) / 1000;
142+
function hrToMs(hr: [number, number]): number {
143+
return (hr[0] * 1e3 + hr[1] / 1e6);
144144
}
145145

146146
export function enterSpan(span: Span): Context | undefined {
@@ -276,7 +276,7 @@ class Tracer {
276276

277277
let startTime = options?.startTime;
278278
if (startTime && ArrayIsArray(startTime)) {
279-
startTime = hrToSecs(startTime);
279+
startTime = hrToMs(startTime);
280280
} else if (startTime && isDate(startTime)) {
281281
startTime = DatePrototypeGetTime(startTime);
282282
}
@@ -383,7 +383,7 @@ class Span {
383383

384384
end(endTime?: TimeInput): void {
385385
if (endTime && ArrayIsArray(endTime)) {
386-
endTime = hrToSecs(endTime);
386+
endTime = hrToMs(endTime);
387387
} else if (endTime && isDate(endTime)) {
388388
endTime = DatePrototypeGetTime(endTime);
389389
}

0 commit comments

Comments
 (0)