mirror of
https://gitlab.com/veilid/veilid.git
synced 2026-10-12 17:32:09 -05:00
more transaction speed improvements
This commit is contained in:
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(
|
||||
|
||||
@@ -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 }
|
||||
|
||||
|
||||
@@ -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(),
|
||||
|
||||
Reference in new issue
Block a user