From 6c2bfcb329ed08846115709135367af109c0d78b Mon Sep 17 00:00:00 2001 From: Lalit Date: Sun, 3 Nov 2024 21:19:03 -0800 Subject: [PATCH 1/6] initial commit --- .../tests/integration_test/Cargo.toml | 14 ++++++++++++-- scripts/integration_tests.sh | 12 +++++++++++- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/opentelemetry-otlp/tests/integration_test/Cargo.toml b/opentelemetry-otlp/tests/integration_test/Cargo.toml index d7ef8de3d3..23ef70c671 100644 --- a/opentelemetry-otlp/tests/integration_test/Cargo.toml +++ b/opentelemetry-otlp/tests/integration_test/Cargo.toml @@ -16,5 +16,15 @@ testcontainers = "0.15.0" [target.'cfg(unix)'.dependencies] opentelemetry-appender-log = { path = "../../../opentelemetry-appender-log", default-features = false} -opentelemetry-otlp = { path = "../../../opentelemetry-otlp", features = ["tonic", "metrics", "logs"] } -opentelemetry-semantic-conventions = { path = "../../../opentelemetry-semantic-conventions" } \ No newline at end of file +opentelemetry-otlp = { path = "../../../opentelemetry-otlp", default-features = false } +opentelemetry-semantic-conventions = { path = "../../../opentelemetry-semantic-conventions" } + + +[features] +hyper-client = ["opentelemetry-otlp/hyper-client", "opentelemetry-otlp/trace", "opentelemetry-otlp/logs", "opentelemetry-otlp/metrics"] +reqwest-client = ["opentelemetry-otlp/reqwest-client", "opentelemetry-otlp/trace","opentelemetry-otlp/logs", "opentelemetry-otlp/metrics"] +reqwest-blocking-client = ["opentelemetry-otlp/reqwest-blocking-client", "opentelemetry-otlp/trace","opentelemetry-otlp/logs", "opentelemetry-otlp/metrics"] +tonic-client = ["opentelemetry-otlp/grpc-tonic", "opentelemetry-otlp/trace", "opentelemetry-otlp/logs", "opentelemetry-otlp/metrics"] + +# Keep tonic as the default client +default = ["tonic-client"] \ No newline at end of file diff --git a/scripts/integration_tests.sh b/scripts/integration_tests.sh index acdf61bbb9..be6ad127ab 100755 --- a/scripts/integration_tests.sh +++ b/scripts/integration_tests.sh @@ -1 +1,11 @@ -cd ./opentelemetry-otlp/tests/integration_test/tests && cargo test -- --ignored +# Run tests with the grpc-tonic feature +cd ./opentelemetry-otlp/tests/integration_test/tests && cargo test --no-default-features --features "tonic-client" -- --ignored + +# Run tests with the reqwest-client feature +#cd ./opentelemetry-otlp/tests/integration_test/tests && cargo test --no-default-features --features "reqwest-client" -- --ignored + +# Run tests with the reqwest-blocking-client feature +#cd ./opentelemetry-otlp/tests/integration_test/tests && cargo test --no-default-features --features "reqwest-blocking-client" -- --ignored + +# Run tests with the hyper-client feature +#cd ./opentelemetry-otlp/tests/integration_test/tests && cargo test --no-default-features --features "hyper-client" -- --ignored From fd6eaa58247b6eb8c0b54bceec9cc633f38d7ac0 Mon Sep 17 00:00:00 2001 From: Lalit Date: Wed, 20 Nov 2024 19:34:52 +0000 Subject: [PATCH 2/6] update logs for flag --- opentelemetry-otlp/tests/integration_test/tests/logs.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/opentelemetry-otlp/tests/integration_test/tests/logs.rs b/opentelemetry-otlp/tests/integration_test/tests/logs.rs index 4e437bb069..e818ca4cca 100644 --- a/opentelemetry-otlp/tests/integration_test/tests/logs.rs +++ b/opentelemetry-otlp/tests/integration_test/tests/logs.rs @@ -13,8 +13,13 @@ use std::fs::File; use std::os::unix::fs::MetadataExt; fn init_logs() -> Result { - let exporter = LogExporter::builder() - .with_tonic() + let exporter_builder = LogExporter::builder(); + #[cfg(feature = "tonic-client")] + let exporter_builder = exporter_builder.with_tonic(); + #[cfg(feature = "hyper-client")] + let exporter_builder = exporter_builder.with_http(); + + let exporter = exporter_builder .with_endpoint("0.0.0.0:4317") .build()?; From 54e067e21e5a6bfbab302198814494ab6b3025da Mon Sep 17 00:00:00 2001 From: Lalit Date: Wed, 20 Nov 2024 20:04:21 +0000 Subject: [PATCH 3/6] fix build --- .../tests/integration_test/Cargo.toml | 6 ++--- .../tests/integration_test/tests/logs.rs | 13 ++++++---- .../tests/integration_test/tests/traces.rs | 17 ++++++++++--- scripts/integration_tests.sh | 25 +++++++++++++------ 4 files changed, 42 insertions(+), 19 deletions(-) diff --git a/opentelemetry-otlp/tests/integration_test/Cargo.toml b/opentelemetry-otlp/tests/integration_test/Cargo.toml index 23ef70c671..827f2aae10 100644 --- a/opentelemetry-otlp/tests/integration_test/Cargo.toml +++ b/opentelemetry-otlp/tests/integration_test/Cargo.toml @@ -21,9 +21,9 @@ opentelemetry-semantic-conventions = { path = "../../../opentelemetry-semantic-c [features] -hyper-client = ["opentelemetry-otlp/hyper-client", "opentelemetry-otlp/trace", "opentelemetry-otlp/logs", "opentelemetry-otlp/metrics"] -reqwest-client = ["opentelemetry-otlp/reqwest-client", "opentelemetry-otlp/trace","opentelemetry-otlp/logs", "opentelemetry-otlp/metrics"] -reqwest-blocking-client = ["opentelemetry-otlp/reqwest-blocking-client", "opentelemetry-otlp/trace","opentelemetry-otlp/logs", "opentelemetry-otlp/metrics"] +hyper-client = ["opentelemetry-otlp/hyper-client", "opentelemetry-otlp/http-proto", "opentelemetry-otlp/trace", "opentelemetry-otlp/logs", "opentelemetry-otlp/metrics"] +reqwest-client = ["opentelemetry-otlp/reqwest-client", "opentelemetry-otlp/http-proto", "opentelemetry-otlp/trace","opentelemetry-otlp/logs", "opentelemetry-otlp/metrics"] +reqwest-blocking-client = ["opentelemetry-otlp/reqwest-blocking-client", "opentelemetry-otlp/http-proto", "opentelemetry-otlp/trace","opentelemetry-otlp/logs", "opentelemetry-otlp/metrics"] tonic-client = ["opentelemetry-otlp/grpc-tonic", "opentelemetry-otlp/trace", "opentelemetry-otlp/logs", "opentelemetry-otlp/metrics"] # Keep tonic as the default client diff --git a/opentelemetry-otlp/tests/integration_test/tests/logs.rs b/opentelemetry-otlp/tests/integration_test/tests/logs.rs index e818ca4cca..4ac3b9959b 100644 --- a/opentelemetry-otlp/tests/integration_test/tests/logs.rs +++ b/opentelemetry-otlp/tests/integration_test/tests/logs.rs @@ -5,7 +5,7 @@ use log::{info, Level}; use opentelemetry::logs::LogError; use opentelemetry::KeyValue; use opentelemetry_appender_log::OpenTelemetryLogBridge; -use opentelemetry_otlp::{LogExporter, WithExportConfig}; +use opentelemetry_otlp::LogExporter; use opentelemetry_sdk::logs::LoggerProvider; use opentelemetry_sdk::{logs as sdklogs, runtime, Resource}; use std::error::Error; @@ -16,12 +16,15 @@ fn init_logs() -> Result { let exporter_builder = LogExporter::builder(); #[cfg(feature = "tonic-client")] let exporter_builder = exporter_builder.with_tonic(); - #[cfg(feature = "hyper-client")] + #[cfg(any( + feature = "hyper-client", + feature = "reqwest-client", + feature = "reqwest-blocking-client" + ))] let exporter_builder = exporter_builder.with_http(); - let exporter = exporter_builder - .with_endpoint("0.0.0.0:4317") - .build()?; + let exporter = exporter_builder.build()?; + //let exporter = LogExporter::builder().with_tonic().build()?; Ok(LoggerProvider::builder() .with_batch_exporter(exporter, runtime::Tokio) diff --git a/opentelemetry-otlp/tests/integration_test/tests/traces.rs b/opentelemetry-otlp/tests/integration_test/tests/traces.rs index 1f0e06dd25..76841bc052 100644 --- a/opentelemetry-otlp/tests/integration_test/tests/traces.rs +++ b/opentelemetry-otlp/tests/integration_test/tests/traces.rs @@ -8,6 +8,8 @@ use opentelemetry::{ trace::{TraceContextExt, Tracer}, Key, KeyValue, }; +use opentelemetry_otlp::SpanExporter; + use opentelemetry_proto::tonic::trace::v1::TracesData; use opentelemetry_sdk::{runtime, trace as sdktrace, Resource}; use std::error::Error; @@ -16,9 +18,18 @@ use std::io::Write; use std::os::unix::fs::MetadataExt; fn init_tracer_provider() -> Result { - let exporter = opentelemetry_otlp::SpanExporter::builder() - .with_tonic() - .build()?; + let exporter_builder = SpanExporter::builder(); + #[cfg(feature = "tonic-client")] + let exporter_builder = exporter_builder.with_tonic(); + #[cfg(any( + feature = "hyper-client", + feature = "reqwest-client", + feature = "reqwest-blocking-client" + ))] + let exporter_builder = exporter_builder.with_http(); + + let exporter = exporter_builder.build()?; + Ok(opentelemetry_sdk::trace::TracerProvider::builder() .with_batch_exporter(exporter, runtime::Tokio) .with_config( diff --git a/scripts/integration_tests.sh b/scripts/integration_tests.sh index be6ad127ab..07b9d472ba 100755 --- a/scripts/integration_tests.sh +++ b/scripts/integration_tests.sh @@ -1,11 +1,20 @@ -# Run tests with the grpc-tonic feature -cd ./opentelemetry-otlp/tests/integration_test/tests && cargo test --no-default-features --features "tonic-client" -- --ignored +set -e +TEST_DIR="./opentelemetry-otlp/tests/integration_test/tests" -# Run tests with the reqwest-client feature -#cd ./opentelemetry-otlp/tests/integration_test/tests && cargo test --no-default-features --features "reqwest-client" -- --ignored +if [ -d "$TEST_DIR" ]; then + cd "$TEST_DIR" + # Run tests with the grpc-tonic feature + cargo test --no-default-features --features "tonic-client" -- --ignored -# Run tests with the reqwest-blocking-client feature -#cd ./opentelemetry-otlp/tests/integration_test/tests && cargo test --no-default-features --features "reqwest-blocking-client" -- --ignored + # Run tests with the reqwest-client feature + cargo test --no-default-features --features "reqwest-client" -- --ignored -# Run tests with the hyper-client feature -#cd ./opentelemetry-otlp/tests/integration_test/tests && cargo test --no-default-features --features "hyper-client" -- --ignored + # TODO - Uncomment the following lines once the reqwest-blocking-client feature is working. + # cargo test --no-default-features --features "reqwest-blocking-client" -- --ignored + + # Run tests with the hyper-client feature + cargo test --no-default-features --features "hyper-client" -- --ignored +else + echo "Directory $TEST_DIR does not exist. Skipping tests." + exit 1 +fi From d7653a61af610e4e1172fac8598d0cfce8eb3a78 Mon Sep 17 00:00:00 2001 From: Lalit Date: Wed, 20 Nov 2024 20:07:22 +0000 Subject: [PATCH 4/6] fix newline --- opentelemetry-otlp/tests/integration_test/Cargo.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/opentelemetry-otlp/tests/integration_test/Cargo.toml b/opentelemetry-otlp/tests/integration_test/Cargo.toml index 827f2aae10..7f9cd1b34e 100644 --- a/opentelemetry-otlp/tests/integration_test/Cargo.toml +++ b/opentelemetry-otlp/tests/integration_test/Cargo.toml @@ -19,7 +19,6 @@ opentelemetry-appender-log = { path = "../../../opentelemetry-appender-log", def opentelemetry-otlp = { path = "../../../opentelemetry-otlp", default-features = false } opentelemetry-semantic-conventions = { path = "../../../opentelemetry-semantic-conventions" } - [features] hyper-client = ["opentelemetry-otlp/hyper-client", "opentelemetry-otlp/http-proto", "opentelemetry-otlp/trace", "opentelemetry-otlp/logs", "opentelemetry-otlp/metrics"] reqwest-client = ["opentelemetry-otlp/reqwest-client", "opentelemetry-otlp/http-proto", "opentelemetry-otlp/trace","opentelemetry-otlp/logs", "opentelemetry-otlp/metrics"] From 82d9d51d38decfb4a094e8d980ca1423fae36cff Mon Sep 17 00:00:00 2001 From: Lalit Date: Wed, 20 Nov 2024 20:07:34 +0000 Subject: [PATCH 5/6] fix newline --- opentelemetry-otlp/tests/integration_test/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opentelemetry-otlp/tests/integration_test/Cargo.toml b/opentelemetry-otlp/tests/integration_test/Cargo.toml index 7f9cd1b34e..a6dc58700f 100644 --- a/opentelemetry-otlp/tests/integration_test/Cargo.toml +++ b/opentelemetry-otlp/tests/integration_test/Cargo.toml @@ -26,4 +26,4 @@ reqwest-blocking-client = ["opentelemetry-otlp/reqwest-blocking-client", "opente tonic-client = ["opentelemetry-otlp/grpc-tonic", "opentelemetry-otlp/trace", "opentelemetry-otlp/logs", "opentelemetry-otlp/metrics"] # Keep tonic as the default client -default = ["tonic-client"] \ No newline at end of file +default = ["tonic-client"] From fff32b4b09b925b74762753bad493ccb6fe7e9fd Mon Sep 17 00:00:00 2001 From: Lalit Date: Wed, 20 Nov 2024 21:17:59 +0000 Subject: [PATCH 6/6] fix build --- opentelemetry-otlp/Cargo.toml | 2 +- opentelemetry-otlp/tests/integration_test/tests/logs.rs | 1 + opentelemetry-otlp/tests/integration_test/tests/traces.rs | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/opentelemetry-otlp/Cargo.toml b/opentelemetry-otlp/Cargo.toml index 9dcf9547c7..dfcd170cfc 100644 --- a/opentelemetry-otlp/Cargo.toml +++ b/opentelemetry-otlp/Cargo.toml @@ -83,4 +83,4 @@ reqwest-rustls-webpki-roots = ["reqwest", "opentelemetry-http/reqwest-rustls-web hyper-client = ["opentelemetry-http/hyper"] # test -integration-testing = ["tonic", "prost", "tokio/full", "trace"] +integration-testing = ["tonic", "prost", "tokio/full", "trace", "logs"] diff --git a/opentelemetry-otlp/tests/integration_test/tests/logs.rs b/opentelemetry-otlp/tests/integration_test/tests/logs.rs index 4ac3b9959b..9ea974457f 100644 --- a/opentelemetry-otlp/tests/integration_test/tests/logs.rs +++ b/opentelemetry-otlp/tests/integration_test/tests/logs.rs @@ -16,6 +16,7 @@ fn init_logs() -> Result { let exporter_builder = LogExporter::builder(); #[cfg(feature = "tonic-client")] let exporter_builder = exporter_builder.with_tonic(); + #[cfg(not(feature = "tonic-client"))] #[cfg(any( feature = "hyper-client", feature = "reqwest-client", diff --git a/opentelemetry-otlp/tests/integration_test/tests/traces.rs b/opentelemetry-otlp/tests/integration_test/tests/traces.rs index 76841bc052..ecf73636f7 100644 --- a/opentelemetry-otlp/tests/integration_test/tests/traces.rs +++ b/opentelemetry-otlp/tests/integration_test/tests/traces.rs @@ -21,6 +21,7 @@ fn init_tracer_provider() -> Result { let exporter_builder = SpanExporter::builder(); #[cfg(feature = "tonic-client")] let exporter_builder = exporter_builder.with_tonic(); + #[cfg(not(feature = "tonic-client"))] #[cfg(any( feature = "hyper-client", feature = "reqwest-client",