#![doc = include_str!("../README.md")]
pub use dial9_core::buffer::{Disk, DiskBuffer, Memory, MemoryBuffer};
pub use dial9_core::handle::Dial9Handle;
pub use dial9_core::recorder::{
RecorderBuilder, RecorderSourceExt, recorder, recorder_disabled, recorder_or_disabled,
};
pub use dial9_core::recording::Recorder;
pub mod core {
pub use dial9_core::buffer::{self, BufferMode, SegmentWriter};
pub use dial9_core::clock::{self, clock_monotonic_ns};
pub use dial9_core::custom_events::{CustomEventsConfig, CustomEventsContext};
pub use dial9_core::encoder::{self, Encodable, ThreadLocalEncoder};
pub use dial9_core::handle::{self, clear_tl_handle, current_handle, set_tl_handle};
pub use dial9_core::recorder;
pub use dial9_core::source::{self, FlushContext, Source};
pub use dial9_core::thread::{ThreadTrackingGuard, current_tid};
#[cfg(feature = "pipeline")]
pub use dial9_core::{dump, worker};
#[cfg(feature = "pipeline")]
pub mod pipeline {
pub use dial9_core::pipeline::{
MemorySegment, Payload, ProcessError, ProcessErrorKind, SealedSegment, SegmentData,
SegmentProcessor, SegmentRef,
};
#[cfg(feature = "cpu-profiling")]
pub use dial9_perf_self_profile::SymbolizeProcessor;
#[cfg(feature = "tokio")]
pub use dial9_tokio_telemetry::background_task::{BackgroundTaskConfig, PipelineBuilder};
#[cfg(all(feature = "tokio", feature = "worker-s3"))]
pub use dial9_tokio_telemetry::background_task::s3;
}
}
use crate::core::{Encodable, current_handle};
pub fn record_event(event: impl Encodable) {
current_handle().record_event(event);
}
#[cfg(feature = "tokio")]
pub use dial9_macro::main;
#[cfg(feature = "tokio")]
pub use dial9_tokio_telemetry::{TracedFuture, block_on, spawn, spawn_in};
#[cfg(feature = "tokio")]
pub use dial9_tokio_telemetry::telemetry::{
AttachedRuntime, Dial9TokioHandle, RecorderPipelineExt, RecorderTokioExt, TaskDumpConfig,
TokioAttachOptions, TokioHooks,
};
#[cfg(all(feature = "tokio", feature = "analysis"))]
pub mod analysis {
pub use dial9_tokio_telemetry::telemetry::analysis::*;
pub use dial9_tokio_telemetry::telemetry::analysis_events;
}
#[cfg(feature = "tokio")]
mod env_config;
#[cfg(feature = "tokio")]
pub use env_config::{recorder_from_env, recorder_from_env_with};
#[cfg(any(
feature = "cpu-profiling",
feature = "process-resource",
feature = "linux-socket",
feature = "memory-profiling"
))]
pub use dial9_perf_self_profile::RecorderPerfExt;
#[cfg(feature = "cpu-profiling")]
pub mod cpu {
pub use dial9_perf_self_profile::{
CpuProfiler, CpuProfilingConfig, CpuSampleSource, EventSource, SchedEventConfig,
SchedProfiler,
};
}
#[cfg(feature = "memory-profiling")]
pub mod memory {
pub use dial9_perf_self_profile::memory_profiling::{
Dial9Allocator, InstallError, MemoryProfiler, MemoryProfilerGuard, MemoryProfilingConfig,
is_installed,
};
}
#[cfg(feature = "process-resource")]
pub mod process {
#[cfg(unix)]
pub use dial9_perf_self_profile::ProcessResourceUsageSource;
pub use dial9_perf_self_profile::{ProcessResourceUsageConfig, ProcessResourceUsageEvent};
}
#[cfg(feature = "linux-socket")]
pub mod socket {
#[cfg(target_os = "linux")]
pub use dial9_perf_self_profile::SocketAcceptQueuesSource;
pub use dial9_perf_self_profile::{SocketAcceptQueuesConfig, TcpAcceptQueueEvent};
}
#[cfg(feature = "tracing-layer")]
pub use dial9_tokio_telemetry::tracing_layer;