mirror of
https://github.com/denoland/deno.git
synced 2025-09-26 12:19:12 +00:00
feat(otel): basic event recording (#28552)
This commit is contained in:
parent
60b502db80
commit
7ac8130854
5 changed files with 185 additions and 21 deletions
|
@ -45,6 +45,7 @@ pub use opentelemetry::metrics::MeterProvider;
|
|||
pub use opentelemetry::metrics::UpDownCounter;
|
||||
use opentelemetry::otel_debug;
|
||||
use opentelemetry::otel_error;
|
||||
use opentelemetry::trace::Event;
|
||||
use opentelemetry::trace::Link;
|
||||
use opentelemetry::trace::SpanContext;
|
||||
use opentelemetry::trace::SpanId;
|
||||
|
@ -1381,6 +1382,32 @@ impl OtelSpan {
|
|||
Ok(())
|
||||
}
|
||||
|
||||
#[fast]
|
||||
fn add_event(
|
||||
&self,
|
||||
#[string] name: String,
|
||||
start_time: f64,
|
||||
#[smi] dropped_attributes_count: u32,
|
||||
) {
|
||||
let start_time = if start_time.is_nan() {
|
||||
SystemTime::now()
|
||||
} else {
|
||||
SystemTime::UNIX_EPOCH
|
||||
.checked_add(Duration::from_secs_f64(start_time / 1000.0))
|
||||
.unwrap()
|
||||
};
|
||||
let mut state = self.0.borrow_mut();
|
||||
let OtelSpanState::Recording(span) = &mut **state else {
|
||||
return;
|
||||
};
|
||||
span.events.events.push(Event::new(
|
||||
name,
|
||||
start_time,
|
||||
vec![],
|
||||
dropped_attributes_count,
|
||||
));
|
||||
}
|
||||
|
||||
#[fast]
|
||||
fn drop_event(&self) {
|
||||
let mut state = self.0.borrow_mut();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue