[package]
edition = "2024"
name = "dial9"
version = "0.5.0"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Low-overhead async runtime telemetry: event recording, Tokio integration, CPU/memory profiling, and a trace viewer CLI"
readme = "README.md"
keywords = [
"tokio",
"telemetry",
"profiling",
"tracing",
]
categories = [
"asynchronous",
"development-tools::profiling",
]
license = "Apache-2.0"
repository = "https://github.com/dial9-rs/dial9"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
"--cfg",
"tokio_unstable",
]
rustc-args = [
"--cfg",
"tokio_unstable",
"-C",
"force-frame-pointers=yes",
]
[package.metadata.binstall]
pkg-url = "{ repo }/releases/download/dial9-viewer-v{ version }/dial9-viewer-{ target }-v{ version }{ archive-suffix }"
pkg-fmt = "tgz"
bin-dir = "dial9{ binary-ext }"
[package.metadata.binstall.overrides.x86_64-pc-windows-msvc]
pkg-fmt = "zip"
[features]
analysis = [
"deserialize",
"tokio",
"dial9-tokio-telemetry/analysis",
]
cli = [
"dep:dial9-viewer",
"dep:anyhow",
"dial9-viewer/s3",
]
cpu-profiling = [
"dep:dial9-perf-self-profile",
"dial9-perf-self-profile/cpu-profiling",
"dial9-tokio-telemetry?/cpu-profiling",
]
default = []
deserialize = ["dial9-trace-format/serde-deserialize"]
linux-socket = [
"dep:dial9-perf-self-profile",
"dial9-perf-self-profile/linux-socket",
"dial9-tokio-telemetry?/linux-socket",
]
memory-profiling = [
"dep:dial9-perf-self-profile",
"dial9-perf-self-profile/memory-profiling",
"dial9-tokio-telemetry?/memory-profiling",
]
metrique-sink = ["dep:dial9-metrique"]
pipeline = [
"dial9-core/pipeline",
"dial9-perf-self-profile?/symbolize-processor",
]
process-resource = [
"dep:dial9-perf-self-profile",
"dial9-perf-self-profile/process-resource",
"dial9-tokio-telemetry?/process-resource",
]
self-telemetry = [
"tokio",
"cpu-profiling",
]
taskdump = [
"tokio",
"dial9-tokio-telemetry/taskdump",
]
tokio = [
"dep:dial9-tokio-telemetry",
"dep:dial9-macro",
"dep:tokio",
"dep:bon",
"dep:tracing",
"pipeline",
"dial9-metrique?/tokio",
]
unstable-events = ["dial9-perf-self-profile?/unstable-events"]
worker-s3 = [
"tokio",
"dep:dial9-destinations-s3",
"dial9-tokio-telemetry/worker-s3",
]
[lib]
name = "dial9"
path = "src/lib.rs"
[[bin]]
name = "dial9"
path = "src/main.rs"
required-features = ["cli"]
[[example]]
name = "analyze_trace"
path = "examples/analyze_trace.rs"
required-features = ["analysis"]
[[example]]
name = "block_in_place_workload"
path = "examples/block_in_place_workload.rs"
required-features = [
"tokio",
"cpu-profiling",
]
[[example]]
name = "blocking_sleep"
path = "examples/blocking_sleep.rs"
required-features = [
"tokio",
"cpu-profiling",
]
[[example]]
name = "conditionally_enable"
path = "examples/conditionally_enable.rs"
required-features = ["tokio"]
[[example]]
name = "cpu_profile_workload"
path = "examples/cpu_profile_workload.rs"
required-features = [
"tokio",
"cpu-profiling",
"analysis",
]
[[example]]
name = "custom_events"
path = "examples/custom_events.rs"
required-features = ["tokio"]
[[example]]
name = "custom_pipeline"
path = "examples/custom_pipeline.rs"
required-features = ["tokio"]
[[example]]
name = "generate_diagnostic_traces"
path = "examples/generate_diagnostic_traces.rs"
required-features = [
"tokio",
"cpu-profiling",
]
[[example]]
name = "in_memory_pipeline"
path = "examples/in_memory_pipeline.rs"
required-features = ["tokio"]
[[example]]
name = "kernel_sched_events"
path = "examples/kernel_sched_events.rs"
required-features = [
"tokio",
"cpu-profiling",
"analysis",
]
[[example]]
name = "long_workload"
path = "examples/long_workload.rs"
required-features = ["tokio"]
[[example]]
name = "many_workers"
path = "examples/many_workers.rs"
required-features = ["tokio"]
[[example]]
name = "metrique_metrics"
path = "examples/metrique_metrics.rs"
required-features = [
"metrique-sink",
"tokio",
]
[[example]]
name = "multi_runtime"
path = "examples/multi_runtime.rs"
required-features = ["tokio"]
[[example]]
name = "on_trigger_dump"
path = "examples/on_trigger_dump.rs"
required-features = ["tokio"]
[[example]]
name = "on_trigger_dump_windows"
path = "examples/on_trigger_dump_windows.rs"
required-features = ["tokio"]
[[example]]
name = "production_use"
path = "examples/production_use.rs"
required-features = [
"tokio",
"cpu-profiling",
"worker-s3",
]
[[example]]
name = "realistic_workload"
path = "examples/realistic_workload.rs"
required-features = ["tokio"]
[[example]]
name = "s3_stress_test"
path = "examples/s3_stress_test.rs"
required-features = ["worker-s3"]
[[example]]
name = "simple_workload"
path = "examples/simple_workload.rs"
required-features = ["tokio"]
[[example]]
name = "telemetry_rotating"
path = "examples/telemetry_rotating.rs"
required-features = ["tokio"]
[[example]]
name = "test_hooks"
path = "examples/test_hooks.rs"
required-features = ["tokio"]
[[example]]
name = "thread_per_core"
path = "examples/thread_per_core.rs"
required-features = ["analysis"]
[[example]]
name = "trace_to_jsonl"
path = "examples/trace_to_jsonl.rs"
required-features = ["analysis"]
[[test]]
name = "cli_trace_shape"
path = "tests/cli_trace_shape.rs"
required-features = ["cli"]
[[test]]
name = "common"
path = "tests/common.rs"
[[test]]
name = "global_handle"
path = "tests/global_handle.rs"
[[test]]
name = "macro_graceful_shutdown_symbolization"
path = "tests/macro_graceful_shutdown_symbolization.rs"
[[test]]
name = "macro_main"
path = "tests/macro_main.rs"
[[test]]
name = "memory_profiling_hook_captures"
path = "tests/memory_profiling_hook_captures.rs"
[[test]]
name = "memory_profiling_hook_realloc"
path = "tests/memory_profiling_hook_realloc.rs"
[[test]]
name = "memory_profiling_install_already_installed"
path = "tests/memory_profiling_install_already_installed.rs"
[[test]]
name = "memory_profiling_install_disabled"
path = "tests/memory_profiling_install_disabled.rs"
[[test]]
name = "memory_profiling_install_publishes"
path = "tests/memory_profiling_install_publishes.rs"
[[test]]
name = "memory_profiling_no_overflow"
path = "tests/memory_profiling_no_overflow.rs"
[[test]]
name = "memory_profiling_opt_out_no_panic"
path = "tests/memory_profiling_opt_out_no_panic.rs"
[[test]]
name = "memory_profiling_overflow_event"
path = "tests/memory_profiling_overflow_event.rs"
[[test]]
name = "memory_profiling_segment_metadata"
path = "tests/memory_profiling_segment_metadata.rs"
[[test]]
name = "namespace_isolation"
path = "tests/namespace_isolation.rs"
[[test]]
name = "recorder"
path = "tests/recorder.rs"
[[test]]
name = "recorder_attach"
path = "tests/recorder_attach.rs"
[[test]]
name = "recorder_symbolization"
path = "tests/recorder_symbolization.rs"
[[test]]
name = "single_global_handle"
path = "tests/single_global_handle.rs"
[dependencies.anyhow]
version = "1"
optional = true
[dependencies.bon]
version = "3"
optional = true
[dependencies.dial9-core]
version = "0.5.0"
[dependencies.dial9-destinations-s3]
version = "0.5.0"
optional = true
[dependencies.dial9-macro]
version = "0.5.0"
optional = true
[dependencies.dial9-metrique]
version = "0.5.0"
optional = true
[dependencies.dial9-perf-self-profile]
version = "0.5.0"
optional = true
[dependencies.dial9-tokio-telemetry]
version = "0.5.0"
optional = true
[dependencies.dial9-trace-format]
version = "0.5.0"
[dependencies.dial9-viewer]
version = "0.5.0"
optional = true
default-features = false
[dependencies.tokio]
version = "1.52.0"
features = [
"rt",
"rt-multi-thread",
]
optional = true
default-features = false
[dependencies.tracing]
version = "0.1.44"
optional = true
[dev-dependencies.aws-config]
version = "1"
features = ["behavior-version-latest"]
[dev-dependencies.aws-sdk-s3]
version = "1"
features = [
"behavior-version-latest",
"default-https-client",
"http-1x",
"rt-tokio",
"sigv4a",
]
default-features = false
[dev-dependencies.clap]
version = "4"
features = [
"derive",
"env",
]
[dev-dependencies.dial9-core]
version = "0.5.0"
features = ["test-util"]
[dev-dependencies.dial9-trace-format]
version = "0.5.0"
features = ["serde-deserialize"]
[dev-dependencies.flate2]
version = "1"
[dev-dependencies.hostname]
version = "0.4"
[dev-dependencies.metrique]
version = "0.1.29"
features = ["local-format"]
[dev-dependencies.serde]
version = "1"
features = ["derive"]
[dev-dependencies.serde_json]
version = "1"
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.tokio]
version = "1"
features = [
"rt-multi-thread",
"macros",
"net",
"io-util",
"time",
"test-util",
]
[dev-dependencies.tracing]
version = "0.1"
[dev-dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]
[target.'cfg(target_os = "linux")'.dev-dependencies]
[lints.rust]
missing_debug_implementations = "warn"