more transaction speed improvements

This commit is contained in:
Christien Rioux committed 2026-03-15 22:45:11 -04:00
1 parent ca2a3f5cf9
commit 9fee92be00
310 files changed
+18497 -12172

No files matched your search

@@ -46,6 +46,10 @@ class DefaultVeilidFixture implements VeilidFixture {
final logLevel = VeilidConfigLogLevel.fromJson(
const String.fromEnvironment('LOG_LEVEL', defaultValue: 'info'));
final terminalLogLevel = VeilidConfigLogLevel.fromJson(
const String.fromEnvironment('TERMINAL_LOG_LEVEL',
defaultValue: 'off'));
final flamePathStr = const String.fromEnvironment('FLAME').trim();
final Map<String, dynamic> platformConfigJson;
@@ -69,8 +73,8 @@ class DefaultVeilidFixture implements VeilidFixture {
final platformConfig = VeilidFFIConfig(
logging: VeilidFFIConfigLogging(
terminal: VeilidFFIConfigLoggingTerminal(
enabled: false,
level: VeilidConfigLogLevel.debug,
enabled: terminalLogLevel != VeilidConfigLogLevel.off,
level: terminalLogLevel,
ignoreLogTargets: ignoreLogTargets,
),
otlp: VeilidFFIConfigLoggingOtlp(
+21 -20
View File
@@ -22,44 +22,45 @@ crypto-test = ["rt-tokio", "veilid-core/crypto-test"]
rt-async-std = [
"veilid-core/rt-async-std",
"async-std",
"opentelemetry/rt-async-std",
"opentelemetry-otlp/grpc-sys",
]
rt-tokio = [
"veilid-core/rt-tokio",
"tokio",
"opentelemetry/rt-tokio",
]
debug-load = ["dep:ctor", "dep:libc-print", "dep:android_log-sys"]
enable-protocol-wss = ["veilid-core/enable-protocol-wss"]
footgun = ["veilid-core/footgun"]
opentelemetry = ["rt-tokio", "dep:opentelemetry", "opentelemetry_sdk/rt-tokio", "opentelemetry-otlp/grpc-tonic", "opentelemetry-otlp/trace", "veilid-core/instrument"]
[dependencies]
veilid-core = { path = "../../veilid-core", default-features = false, features = ["json-camel-case"] }
tracing = { version = "0.1.41", features = ["log", "attributes"] }
tracing-subscriber = "0.3.19"
parking_lot = "0.12.3"
backtrace = "^0.3.71"
serde_json = "1.0.140"
serde = "1.0.218"
cfg-if = "1.0.0"
data-encoding = { version = "2.8.0" }
tracing-subscriber = "0.3.23"
parking_lot = "0.12.5"
backtrace = "^0.3.76"
serde_json = "1.0.149"
serde = "1.0.228"
cfg-if = "1.0.4"
data-encoding = { version = "2.9.1" }
tracing-flame = "0.2.0"
# Dependencies for native builds only
# Linux, Windows, Mac, iOS, Android
[target.'cfg(not(all(target_arch = "wasm32", target_os = "unknown")))'.dependencies]
tracing-opentelemetry = "0.21"
opentelemetry = { version = "0.20" }
opentelemetry-otlp = { version = "0.13" }
opentelemetry-semantic-conventions = "0.12"
async-std = { version = "1.13.0", features = ["unstable"], optional = true }
tokio = { version = "1.43.0", optional = true }
allo-isolate = "0.1.26"
tracing-opentelemetry = "0.32.1"
opentelemetry = { version = "0.31.0", optional = true }
opentelemetry-otlp = { version = "0.31.0", default-features = false, optional = true }
opentelemetry_sdk = { version = "0.31.0", optional = true }
opentelemetry-semantic-conventions = { version = "0.31.0", optional = true }
async-std = { version = "1.13.2", features = ["unstable"], optional = true }
tokio = { version = "1.50.0", optional = true }
allo-isolate = "0.1.27"
ffi-support = "0.4.4"
lazy_static = "1.5.0"
hostname = "0.3.1"
ctor = { version = "0.2.9", optional = true }
hostname = "0.4.2"
ctor = { version = "0.6.3", optional = true }
libc-print = { version = "0.1.23", optional = true }
# Dependencies for WASM builds only
@@ -67,7 +68,7 @@ libc-print = { version = "0.1.23", optional = true }
# Dependencies for Android builds only
[target.'cfg(target_os = "android")'.dependencies]
jni = "0.21.1"
jni = "0.22.3"
paranoid-android = "0.2.2"
android_log-sys = { version = "0.3.2", optional = true }
+51 -52
View File
@@ -4,9 +4,15 @@ use cfg_if::*;
use data_encoding::BASE64URL_NOPAD;
use ffi_support::*;
use lazy_static::*;
use opentelemetry::sdk::*;
use opentelemetry::*;
use opentelemetry_otlp::WithExportConfig;
cfg_if::cfg_if! {
if #[cfg(feature = "opentelemetry")] {
use opentelemetry_otlp::WithExportConfig;
use opentelemetry_sdk::trace::SdkTracerProvider;
use opentelemetry::trace::TracerProvider;
}
}
use parking_lot::Mutex;
use serde::*;
use std::io::Write;
@@ -275,57 +281,48 @@ pub extern "C" fn initialize_veilid_core(platform_config: FfiStr) {
};
// OpenTelemetry logger
if platform_config.logging.otlp.enabled {
let grpc_endpoint = platform_config.logging.otlp.grpc_endpoint.clone();
cfg_if! {
if #[cfg(feature = "opentelemetry")] {
if platform_config.logging.otlp.enabled {
let grpc_endpoint = platform_config.logging.otlp.grpc_endpoint.clone();
cfg_if! {
if #[cfg(feature="rt-async-std")] {
let exporter = opentelemetry_otlp::new_exporter()
.grpcio()
.with_endpoint(grpc_endpoint);
let batch = opentelemetry::runtime::AsyncStd;
} else if #[cfg(feature="rt-tokio")] {
let exporter = opentelemetry_otlp::new_exporter()
.tonic()
.with_endpoint(format!("http://{}", grpc_endpoint));
let batch = opentelemetry::runtime::Tokio;
} else {
compile_error!("needs executor implementation");
cfg_if! {
if #[cfg(feature="rt-tokio")] {
let exporter = opentelemetry_otlp::SpanExporter::builder()
.with_tonic()
.with_endpoint(format!("http://{}", grpc_endpoint))
.build()
.expect("failed to build OpenTelemetry exporter");
} else {
compile_error!("needs executor implementation");
}
}
let provider = SdkTracerProvider::builder()
.with_batch_exporter(exporter)
.build();
let tracer = provider.tracer(format!(
"{}:{}",
platform_config.logging.otlp.service_name,
hostname::get()
.map(|s| s.to_string_lossy().into_owned())
.unwrap_or_else(|_| "unknown".to_owned())));
let filter =
VeilidLayerFilter::new_with_config(VeilidLayerFilterConfig::new().with_directives([
VeilidLogDirective::global_level(Some(platform_config.logging.otlp.level)),
]));
#[allow(deprecated)]
filter.apply_ignore_change_list(&platform_config.logging.otlp.ignore_log_targets);
let layer = tracing_opentelemetry::layer()
.with_tracer(tracer)
.with_filter(filter.clone());
filters.insert("otlp", filter);
layers.push(layer.boxed());
}
}
let tracer =
opentelemetry_otlp::new_pipeline()
.tracing()
.with_exporter(exporter)
.with_trace_config(opentelemetry::sdk::trace::config().with_resource(
Resource::new(vec![KeyValue::new(
opentelemetry_semantic_conventions::resource::SERVICE_NAME,
format!(
"{}:{}",
platform_config.logging.otlp.service_name,
hostname::get()
.map(|s| s.to_string_lossy().into_owned())
.unwrap_or_else(|_| "unknown".to_owned())),
)]),
))
.install_batch(batch)
.map_err(|e| format!("failed to install OpenTelemetry tracer: {}", e))
.unwrap_or_log();
let filter =
VeilidLayerFilter::new_with_config(VeilidLayerFilterConfig::new().with_directives([
VeilidLogDirective::global_level(Some(platform_config.logging.otlp.level)),
]));
#[allow(deprecated)]
filter.apply_ignore_change_list(&platform_config.logging.otlp.ignore_log_targets);
let layer = tracing_opentelemetry::layer()
.with_tracer(tracer)
.with_filter(filter.clone());
filters.insert("otlp", filter);
layers.push(layer.boxed());
}
// Flamegraph logger
@@ -919,7 +916,9 @@ pub extern "C" fn get_dht_record_key(
async move {
let veilid_api = get_veilid_api().await?;
let record_key = veilid_api.get_dht_record_key(schema, owner, encryption_key)?;
let record_key = veilid_api
.get_dht_record_key(schema, owner, encryption_key)
.await?;
VeilidAPIResult::Ok(record_key)
}
.in_current_span(),