Skip to content

Commit

Permalink
feat(deps): upgrade to opentelemetry 0.25
Browse files Browse the repository at this point in the history
  • Loading branch information
davidB committed Sep 22, 2024
1 parent 3d10aec commit 088979b
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 28 deletions.
15 changes: 11 additions & 4 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -22,26 +22,33 @@ repository = "https://github.com/davidB/tracing-opentelemetry-instrumentation-sd
rust-version = "1.80.0"

[workspace.dependencies]
assert2 = "0.3"
axum = { version = "0.7", default-features = false }
http = "^1"
hyper = "1"
insta = { version = "1.40", features = ["yaml", "redactions"] }
opentelemetry = { version = "0.25", features = [
"trace",
], default-features = false }
opentelemetry_sdk = { version = "0.24.1", default-features = false, features = [
opentelemetry_sdk = { version = "0.25", default-features = false, features = [
"rt-tokio",
] }
opentelemetry-aws = { version = "0.12", default-features = false }
opentelemetry-jaeger = { version = "0.22", default-features = false }
opentelemetry-jaeger-propagator = { version = "0.3", default-features = false }
opentelemetry-jaeger = { version = "0.25", default-features = false }
opentelemetry-jaeger-propagator = { version = "0.25", default-features = false }
opentelemetry-resource-detectors = { version = "0.3", default-features = false }
opentelemetry-semantic-conventions = { version = "0.25", default-features = false }
opentelemetry-zipkin = { version = "0.25", default-features = false }
opentelemetry-otlp = { version = "0.25", default-features = false }
opentelemetry-proto = { version = "0.25", default-features = false }
opentelemetry-stdout = { version = "0.25" }
rstest = "0.22"
tokio = { version = "1.38", default-features = false }
tokio-stream = { version = "0.1", default-features = false }
tonic = { version = "0.12", default-features = false } #should be sync with opentelemetry-proto
tower = { version = "0.5", default-features = false }
tracing = "0.1"
tracing-opentelemetry = "0.25"
tracing-opentelemetry = "0.26"

[profile.dev.package.insta]
opt-level = 3
Expand Down
8 changes: 2 additions & 6 deletions examples/grpc/src/server.rs
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,7 @@ impl Greeter for MyGreeter {
async fn say_status(&self, request: Request<StatusRequest>) -> Result<Response<()>, Status> {
let trace_id = tracing_opentelemetry_instrumentation_sdk::find_current_trace_id();
let request = request.into_inner();
tracing::info!(
"ask to return status : {} ({:?})",
request.code,
trace_id
);
tracing::info!("ask to return status : {} ({:?})", request.code, trace_id);
Err(Status::new(Code::from(request.code), request.message))
}
}
Expand All @@ -59,7 +55,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
let (_, health_service) = tonic_health::server::health_reporter();
let reflection_service = tonic_reflection::server::Builder::configure()
.register_encoded_file_descriptor_set(hello_world::FILE_DESCRIPTOR_SET)
.build()?;
.build_v1()?;

println!("GreeterServer listening on {}", addr);

Expand Down
7 changes: 4 additions & 3 deletions fake-opentelemetry-collector/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -88,8 +88,9 @@ impl FakeCollectorServer {

async fn recv_many<T>(rx: &mut Receiver<T>, at_least: usize, timeout: Duration) -> Vec<T> {
let deadline = Instant::now();
let pause = (timeout / 5).min(Duration::from_millis(500));
while rx.len() < at_least && deadline.elapsed() < timeout {
tokio::time::sleep(timeout / 5).await;
tokio::time::sleep(pause).await;
}
std::iter::from_fn(|| rx.try_recv().ok()).collect::<Vec<_>>()
}
Expand Down Expand Up @@ -148,7 +149,7 @@ mod tests {
shutdown_tracer_provider();

let otel_spans = fake_collector
.exported_spans(1, Duration::from_millis(2000))
.exported_spans(1, Duration::from_secs(20))
.await;
//insta::assert_debug_snapshot!(otel_spans);
insta::assert_yaml_snapshot!(otel_spans, {
Expand Down Expand Up @@ -185,7 +186,7 @@ mod tests {
let mut record = logger.create_log_record();
record.set_body("This is information".into());
record.set_severity_number(Severity::Info);
record.set_severity_text("info".into());
record.set_severity_text("info");
logger.emit(record);

let otel_logs = fake_collector
Expand Down
27 changes: 12 additions & 15 deletions init-tracing-opentelemetry/src/stdio.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
use opentelemetry::trace::{TraceError, TracerProvider as _};
use opentelemetry::InstrumentationLibrary;
use opentelemetry_sdk::trace as sdktrace;
use opentelemetry_sdk::trace::BatchSpanProcessor;
use opentelemetry_sdk::trace::TracerProvider;
Expand All @@ -13,34 +14,30 @@ pub fn identity<W: Write>(
v
}

pub fn init_tracer<F, W>(
resource: Resource,
transform: F,
w: W,
) -> Result<sdktrace::Tracer, TraceError>
pub fn init_tracer<F, W>(resource: Resource, transform: F) -> Result<sdktrace::Tracer, TraceError>
where
F: FnOnce(opentelemetry_sdk::trace::Builder) -> opentelemetry_sdk::trace::Builder,
W: Write + Debug + Send + Sync + 'static,
{
let exporter = opentelemetry_stdout::SpanExporter::builder()
.with_writer(w)
.build();
let exporter = opentelemetry_stdout::SpanExporter::default();
let processor =
BatchSpanProcessor::builder(exporter, opentelemetry_sdk::runtime::Tokio).build();
let mut provider_builder: opentelemetry_sdk::trace::Builder = TracerProvider::builder()
.with_span_processor(processor)
.with_config(
sdktrace::config()
sdktrace::Config::default()
.with_resource(resource)
.with_sampler(sdktrace::Sampler::AlwaysOn),
);
provider_builder = transform(provider_builder);
Ok(provider_builder.build().versioned_tracer(
"opentelemetry-stdio",
Some(env!("CARGO_PKG_VERSION")),
None::<&'static str>,
None,
))
// tracer used in libraries/crates that optionally includes version and schema url
let library = std::sync::Arc::new(
InstrumentationLibrary::builder(env!("CARGO_PKG_NAME"))
.with_version(env!("CARGO_PKG_VERSION"))
.with_schema_url("https://opentelemetry.io/schema/1.0.0")
.build(),
);
Ok(provider_builder.build().library_tracer(library))
}

#[derive(Debug, Default)]
Expand Down

0 comments on commit 088979b

Please sign in to comment.