Skip to content
This repository has been archived by the owner on Sep 12, 2023. It is now read-only.

Commit

Permalink
Refactor into otel-tests-macro & otel-tests crate
Browse files Browse the repository at this point in the history
This is the first step in making the macro more usable in crates other than daemon-tests
  • Loading branch information
Restioson committed Jul 15, 2022
1 parent e23917d commit 68d8245
Show file tree
Hide file tree
Showing 6 changed files with 29 additions and 99 deletions.
43 changes: 14 additions & 29 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ members = [
"daemon-tests",
"tokio-extras",
"otel-tests",
"otel-tests-macro",
"xtras",
"xtra-bitmex-price-feed",
"bdk-ext",
Expand Down
5 changes: 0 additions & 5 deletions daemon-tests/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,10 @@ anyhow = "1"
async-trait = "0.1"
bdk-ext = { path = "../bdk-ext" }
daemon = { path = "../daemon" }
futures = "0.3"
maker = { path = "../maker" }
mockall = "0.11"
mockall_derive = "0.11"
model = { path = "../model" }
opentelemetry = { version = "0.17.0", features = ["rt-tokio"] }
opentelemetry-otlp = { version = "0.10.0", features = ["grpc-sys", "trace"] }
otel-tests = { path = "../otel-tests" }
rand = "0.6"
rust_decimal = "1.25"
Expand All @@ -25,8 +22,6 @@ time = "0.3.11"
tokio = { version = "1", features = ["rt-multi-thread", "macros", "sync", "net", "tracing"] }
tokio-extras = { path = "../tokio-extras", features = ["xtra"] }
tracing = { version = "0.1" }
tracing-opentelemetry = "0.17.4"
tracing-subscriber = { version = "0.3", default-features = false, features = ["fmt", "ansi", "env-filter", "local-time", "tracing-log", "json"] }
xtra = { version = "0.6", features = ["instrumentation"] }
xtra-bitmex-price-feed = { path = "../xtra-bitmex-price-feed" }
xtra-libp2p = { path = "../xtra-libp2p" }
Expand Down
60 changes: 0 additions & 60 deletions daemon-tests/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -32,29 +32,18 @@ use model::Price;
use model::TxFeeRate;
use model::Usd;
use model::SETTLEMENT_INTERVAL;
use opentelemetry::sdk::trace;
use opentelemetry::sdk::Resource;
use opentelemetry::KeyValue;
use opentelemetry_otlp::WithExportConfig;
use rust_decimal::Decimal;
use rust_decimal_macros::dec;
use std::net::IpAddr;
use std::net::Ipv4Addr;
use std::net::SocketAddr;
use std::str::FromStr;
use std::sync::Once;
use std::time::Duration;
use time::OffsetDateTime;
use tokio::net::TcpListener;
use tokio::sync::watch;
use tokio_extras::Tasks;
use tracing::instrument;
use tracing_subscriber::filter::LevelFilter;
use tracing_subscriber::layer::SubscriberExt;
use tracing_subscriber::util::SubscriberInitExt;
use tracing_subscriber::EnvFilter;
use tracing_subscriber::Layer;
use tracing_subscriber::Registry;
use xtra::Actor;
use xtra_bitmex_price_feed::Quote;
use xtra_libp2p::libp2p::Multiaddr;
Expand Down Expand Up @@ -557,55 +546,6 @@ fn dummy_price() -> Decimal {
dec!(50_000)
}

static INIT_OTLP_EXPORTER: Once = Once::new();

pub fn init_tracing() {
INIT_OTLP_EXPORTER.call_once(|| {
let env = std::env::var("ITCHYSATS_TEST_INSTRUMENTATION").unwrap_or_default();
let telemetry = if env == "1" {
let cfg = trace::Config::default().with_resource(Resource::new([KeyValue::new(
"service.name",
"daemon-tests",
)]));

let tracer = opentelemetry_otlp::new_pipeline()
.tracing()
.with_trace_config(cfg)
.with_exporter(
opentelemetry_otlp::new_exporter()
.grpcio()
.with_endpoint("localhost:4317"),
)
.install_simple()
.unwrap();

Some(tracing_opentelemetry::layer().with_tracer(tracer))
} else {
None
};

let filter = EnvFilter::from_default_env()
// apply warning level globally
.add_directive(LevelFilter::WARN.into())
// log traces from test itself
.add_directive("happy_path=debug".parse().unwrap())
.add_directive("wire=trace".parse().unwrap())
.add_directive("taker=debug".parse().unwrap())
.add_directive("maker=debug".parse().unwrap())
.add_directive("daemon=debug".parse().unwrap())
.add_directive("xtra_libp2p=debug".parse().unwrap())
.add_directive("xtra_libp2p_offer=debug".parse().unwrap())
.add_directive("xtra_libp2p_ping=debug".parse().unwrap())
.add_directive("rocket=warn".parse().unwrap());

let fmt_layer = tracing_subscriber::fmt::layer()
.with_test_writer()
.with_filter(filter);

Registry::default().with(telemetry).with(fmt_layer).init();
})
}

pub async fn mock_oracle_announcements(
maker: &mut Maker,
taker: &mut Taker,
Expand Down
12 changes: 12 additions & 0 deletions otel-tests-macro/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
[package]
name = "otel-tests-macro"
version = "0.1.0"
edition = "2021"
description = "Internal #[otel_test] macro crate for otel-tests"

[lib]
proc-macro = true

[dependencies]
quote = "1"
syn = { version = "1", features = ["full"] }
7 changes: 2 additions & 5 deletions otel-tests/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,12 @@
name = "otel-tests"
version = "0.1.0"
edition = "2021"
description = "Internal #[traced_test] macro intended to be used with daemon-tests"

[lib]
proc-macro = true
description = "Internal #[otel_test] macro to export test spans over OTLP"

[dependencies]
futures = "0.3"
opentelemetry = { version = "0.17.0", features = ["rt-tokio"] }
opentelemetry-otlp = { version = "0.10.0", default-features = false, features = ["grpc-sys", "trace", "openssl-vendored"] }
opentelemetry-otlp = { version = "0.10.0", features = ["grpc-sys", "trace"] }
otel-tests-macro = { path = "../otel-tests-macro" }
tokio = { version = "1", features = ["macros"] }
tracing = "0.1"
Expand Down

0 comments on commit 68d8245

Please sign in to comment.