mirror of
https://github.com/rustfs/rustfs.git
synced 2026-05-07 06:37:42 +08:00
Co-authored-by: heihutu <heihutu@gmail.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: houseme <4829346+houseme@users.noreply.github.com>
77 lines
2.5 KiB
Rust
77 lines
2.5 KiB
Rust
// Full dial9 integration test with session initialization
|
|
use rustfs_obs::dial9::{Dial9Config, init_session, is_enabled};
|
|
use tokio::time::{Duration, sleep};
|
|
|
|
#[tokio::main]
|
|
async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|
println!("=== Full Dial9 Integration Test ===");
|
|
println!();
|
|
|
|
// Check if dial9 is enabled
|
|
if !is_enabled() {
|
|
println!("Dial9 is disabled. Enable with:");
|
|
println!(" export RUSTFS_RUNTIME_DIAL9_ENABLED=true");
|
|
println!(" export RUSTFS_RUNTIME_DIAL9_OUTPUT_DIR=/tmp/rustfs-test-telemetry");
|
|
return Ok(());
|
|
}
|
|
|
|
// Test 1: Configuration
|
|
println!("Test 1: Configuration");
|
|
let config = Dial9Config::from_env();
|
|
println!(" enabled: {}", config.enabled);
|
|
println!(" output_dir: {}", config.output_dir);
|
|
println!(" file_prefix: {}", config.file_prefix);
|
|
println!(" sampling_rate: {}", config.sampling_rate);
|
|
println!(" ✓ Configuration loaded");
|
|
println!();
|
|
|
|
// Test 2: Session initialization
|
|
println!("Test 2: Session initialization");
|
|
match init_session().await {
|
|
Ok(Some(guard)) => {
|
|
println!(" ✓ Session initialized successfully");
|
|
println!(" guard.is_active(): {}", guard.is_active());
|
|
println!();
|
|
|
|
// Test 3: Generate async activity
|
|
println!("Test 3: Generate async runtime activity");
|
|
let tasks = (0..3).map(|i| {
|
|
tokio::spawn(async move {
|
|
for j in 0..5 {
|
|
println!(" Task {} iteration {}", i, j);
|
|
sleep(Duration::from_millis(20)).await;
|
|
}
|
|
})
|
|
});
|
|
|
|
for task in tasks {
|
|
task.await?;
|
|
}
|
|
println!(" ✓ Async activity completed");
|
|
println!();
|
|
|
|
// Test 4: Session lifecycle
|
|
println!("Test 4: Session lifecycle");
|
|
println!(" Dropping guard...");
|
|
drop(guard);
|
|
println!(" ✓ Session cleaned up");
|
|
}
|
|
Ok(None) => {
|
|
println!(" ⚠ Session not created (writer may have failed)");
|
|
println!(" This is expected if output directory cannot be created");
|
|
}
|
|
Err(e) => {
|
|
println!(" ✗ Session init failed: {:?}", e);
|
|
}
|
|
}
|
|
|
|
println!();
|
|
println!("=== Test Summary ===");
|
|
println!("✓ Configuration: PASS");
|
|
println!("✓ Session Init: PASS");
|
|
println!("✓ Async Activity: PASS");
|
|
println!("✓ Lifecycle: PASS");
|
|
|
|
Ok(())
|
|
}
|