Skip to content

Commit 680b702

Browse files
committed
refactor: properly divide tracer into public and inner parts
1 parent e78b79c commit 680b702

File tree

13 files changed

+1232
-1132
lines changed

13 files changed

+1232
-1132
lines changed

src/event.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
use std::{
2-
borrow::Cow, collections::BTreeMap, fmt::Debug, sync::{atomic::AtomicU64, Arc}
2+
borrow::Cow,
3+
collections::BTreeMap,
4+
fmt::Debug,
5+
sync::{Arc, atomic::AtomicU64},
36
};
47

58
use crate::{cache::ArcStr, timestamp::Timestamp};

src/main.rs

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -157,8 +157,7 @@ async fn main() -> color_eyre::Result<()> {
157157
.printer_from_cli(&tracing_args)
158158
.otel(otel_config)?
159159
.build_ptrace()?;
160-
let tracer = Arc::new(tracer);
161-
let tracer_thread = tracer.spawn(cmd, Some(output), token);
160+
let (_tracer, tracer_thread) = tracer.spawn(cmd, Some(output), token)?;
162161
let mut errors = Vec::new();
163162
loop {
164163
match tracer_rx.recv().await {
@@ -241,9 +240,9 @@ async fn main() -> color_eyre::Result<()> {
241240
.printer_from_cli(&tracing_args)
242241
.otel(otel_config)?
243242
.build_ptrace()?;
244-
let tracer = Arc::new(tracer);
245243

246244
let frame_rate = tui_args.frame_rate.unwrap_or(60.);
245+
let (tracer, tracer_thread) = tracer.spawn(cmd, None, token)?;
247246
let mut app = App::new(
248247
Some(PTracer {
249248
tracer: tracer.clone(),
@@ -255,7 +254,6 @@ async fn main() -> color_eyre::Result<()> {
255254
baseline,
256255
pty_master,
257256
)?;
258-
let tracer_thread = tracer.spawn(cmd, None, token);
259257
let mut tui = tui::Tui::new()?.frame_rate(frame_rate);
260258
tui.enter(tracer_rx)?;
261259
app.run(&mut tui).await?;
@@ -309,8 +307,7 @@ async fn main() -> color_eyre::Result<()> {
309307
.printer_from_cli(&tracing_args)
310308
.otel(otel_config)?
311309
.build_ptrace()?;
312-
let tracer = Arc::new(tracer);
313-
let tracer_thread = tracer.spawn(cmd, None, token);
310+
let (_tracer, tracer_thread) = tracer.spawn(cmd, None, token)?;
314311
let mut errors = Vec::new();
315312
match format {
316313
ExportFormat::OpenTelemetry => todo!(),

src/otel.rs

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,7 @@ use nutype::nutype;
55
use serde::{Deserialize, Serialize};
66
use url::Url;
77

8-
use crate::cli::{
9-
args::OpenTelemetryArgs,
10-
config::OpenTelemetryConfig,
11-
};
8+
use crate::cli::{args::OpenTelemetryArgs, config::OpenTelemetryConfig};
129

1310
mod exporter_mux;
1411
pub mod tracer;
@@ -45,7 +42,7 @@ pub enum OtelProtocolConfig {
4542

4643
/// Final Otel configuration with comblined options
4744
/// from command line and config file.
48-
#[derive(Debug, Clone)]
45+
#[derive(Debug, Clone, Default)]
4946
pub struct OtelConfig {
5047
pub enabled_protocol: Option<OtelProtocolConfig>,
5148
pub service_name: Option<String>,
@@ -81,10 +78,14 @@ impl OtelConfig {
8178
let enabled_protocol = (!cli.disable_otel)
8279
.then(|| match cli.enable_otel {
8380
Some(OtelProtocol::Http) => Some(OtelProtocolConfig::Http {
84-
endpoint: cli.otel_endpoint.or(config.http.and_then(|v| v.endpoint)),
81+
endpoint: cli
82+
.otel_endpoint
83+
.or_else(|| config.http.and_then(|v| v.endpoint)),
8584
}),
8685
Some(OtelProtocol::Grpc) => Some(OtelProtocolConfig::Grpc {
87-
endpoint: cli.otel_endpoint.or(config.grpc.and_then(|v| v.endpoint)),
86+
endpoint: cli
87+
.otel_endpoint
88+
.or_else(|| config.grpc.and_then(|v| v.endpoint)),
8889
}),
8990
None => None,
9091
})

src/otel/exporter_mux.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22
// inner:
33
// }
44

5-
// TODO: patch opentelemetry-proto/src/transform/trace.rs
5+
// TODO: patch opentelemetry-proto/src/transform/trace.rs

src/otel/tracer.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -157,9 +157,7 @@ impl OtelTracer {
157157
ctx: Option<Ref<Context>>,
158158
) -> Option<Rc<RefCell<Context>>> {
159159
let this = self.inner.borrow();
160-
let Some(this) = this.as_ref() else {
161-
return None;
162-
};
160+
let this = this.as_ref()?;
163161
let span_builder = this
164162
.tracer
165163
.span_builder(exec.filename.to_string())

src/ptrace.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,5 @@ pub use breakpoint::*;
1010
pub use engine::RecursivePtraceEngine;
1111
pub use guards::*;
1212
pub use inspect::InspectError;
13-
pub use tracer::Tracer;
13+
pub use tracer::RunningTracer;
1414
pub use waitpid::*;

0 commit comments

Comments
 (0)