From 872771b02a2770f8180086d054bbc8dd62603d8e Mon Sep 17 00:00:00 2001 From: Bill Thiede Date: Sat, 14 Dec 2024 10:09:33 -0800 Subject: [PATCH] server: add tracing for graphql handling --- Cargo.lock | 755 ++++++++++++++++++++++++++++----------- server/Cargo.toml | 4 +- server/src/bin/server.rs | 10 +- server/src/graphql.rs | 9 + server/src/nm.rs | 6 + server/src/tantivy.rs | 6 + 6 files changed, 565 insertions(+), 225 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 63ca0cd..6cd4eb6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -94,15 +94,6 @@ dependencies = [ "libc", ] -[[package]] -name = "ansi_term" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" -dependencies = [ - "winapi 0.3.9", -] - [[package]] name = "anyhow" version = "1.0.86" @@ -157,7 +148,7 @@ dependencies = [ "async-stream", "async-trait", "base64 0.13.1", - "bytes 1.6.0", + "bytes 1.9.0", "fast_chemail", "fnv", "futures-util", @@ -176,7 +167,7 @@ dependencies = [ "serde_urlencoded", "static_assertions", "tempfile", - "thiserror", + "thiserror 1.0.61", ] [[package]] @@ -192,8 +183,8 @@ dependencies = [ "proc-macro2", "quote", "strum", - "syn 2.0.69", - "thiserror", + "syn 2.0.90", + "thiserror 1.0.61", ] [[package]] @@ -227,7 +218,7 @@ version = "6.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "323a5143f5bdd2030f45e3f2e0c821c9b1d36e79cf382129c64299c50a7f3750" dependencies = [ - "bytes 1.6.0", + "bytes 1.9.0", "indexmap 2.2.6", "serde", "serde_json", @@ -252,7 +243,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.69", + "syn 2.0.90", ] [[package]] @@ -263,7 +254,7 @@ checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" dependencies = [ "proc-macro2", "quote", - "syn 2.0.69", + "syn 2.0.90", ] [[package]] @@ -325,6 +316,53 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" +[[package]] +name = "axum" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a6c9af12842a67734c9a2e355436e5d03b22383ed60cf13cd0c18fbfe3dcbcf" +dependencies = [ + "async-trait", + "axum-core", + "bytes 1.9.0", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", + "http-body-util", + "itoa 1.0.11", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "sync_wrapper 1.0.1", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-core" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" +dependencies = [ + "async-trait", + "bytes 1.9.0", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", + "http-body-util", + "mime", + "pin-project-lite", + "rustversion", + "sync_wrapper 1.0.1", + "tower-layer", + "tower-service", +] + [[package]] name = "backtrace" version = "0.3.73" @@ -370,12 +408,6 @@ version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" -[[package]] -name = "bimap" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "230c5f1ca6a325a32553f8640d31ac9b49f2411e901e427570154868b46da4f7" - [[package]] name = "binascii" version = "0.1.4" @@ -516,7 +548,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.69", + "syn 2.0.90", "zstd", ] @@ -557,9 +589,9 @@ dependencies = [ [[package]] name = "bytes" -version = "1.6.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" +checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" dependencies = [ "serde", ] @@ -574,7 +606,7 @@ dependencies = [ "rusoto_core", "rusoto_credential", "rusoto_s3", - "thiserror", + "thiserror 1.0.61", ] [[package]] @@ -606,7 +638,7 @@ dependencies = [ "semver 1.0.23", "serde", "serde_json", - "thiserror", + "thiserror 1.0.61", ] [[package]] @@ -638,6 +670,12 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + [[package]] name = "charset" version = "0.1.3" @@ -711,12 +749,6 @@ version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" -[[package]] -name = "const-sha1" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb58b6451e8c2a812ad979ed1d83378caa5e927eef2622017a45f251457c2c9d" - [[package]] name = "constant_time_eq" version = "0.1.5" @@ -751,10 +783,20 @@ dependencies = [ ] [[package]] -name = "core-foundation-sys" -version = "0.8.6" +name = "core-foundation" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" +checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "cpufeatures" @@ -830,7 +872,7 @@ dependencies = [ "crossbeam-utils 0.7.2", "lazy_static", "maybe-uninit", - "memoffset 0.5.6", + "memoffset", "scopeguard", ] @@ -980,7 +1022,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" dependencies = [ "quote", - "syn 2.0.69", + "syn 2.0.90", ] [[package]] @@ -1028,7 +1070,7 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.11.1", - "syn 2.0.69", + "syn 2.0.90", ] [[package]] @@ -1050,7 +1092,7 @@ checksum = "733cabb43482b1a1b53eee8583c2b9e8684d592215ea83efd305dd31bc2f0178" dependencies = [ "darling_core 0.20.9", "quote", - "syn 2.0.69", + "syn 2.0.90", ] [[package]] @@ -1090,7 +1132,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version 0.4.0", - "syn 2.0.69", + "syn 2.0.90", ] [[package]] @@ -1110,7 +1152,7 @@ checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ "proc-macro2", "quote", - "syn 2.0.69", + "syn 2.0.90", "unicode-xid", ] @@ -1144,7 +1186,7 @@ dependencies = [ "proc-macro2", "proc-macro2-diagnostics", "quote", - "syn 2.0.69", + "syn 2.0.90", ] [[package]] @@ -1490,7 +1532,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.69", + "syn 2.0.90", ] [[package]] @@ -1542,7 +1584,7 @@ dependencies = [ "libc", "log", "rustversion", - "windows 0.48.0", + "windows", ] [[package]] @@ -1566,12 +1608,12 @@ dependencies = [ [[package]] name = "gethostname" -version = "0.2.3" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e" +checksum = "dc3655aa6818d65bc620d6911f05aa7b6aeb596291e1e9f79e52df85583d1e30" dependencies = [ - "libc", - "winapi 0.3.9", + "rustix", + "windows-targets 0.52.6", ] [[package]] @@ -1632,25 +1674,6 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" -[[package]] -name = "glog" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "901ab6c92035908510ef4187d725de96ce0b637c63dc0b123da73dfa4c638492" -dependencies = [ - "backtrace", - "bimap", - "chrono", - "gethostname", - "if_empty", - "log", - "nix", - "termcolor", - "thread_local", - "whoami", - "windows 0.11.0", -] - [[package]] name = "gloo-events" version = "0.1.2" @@ -1689,7 +1712,7 @@ dependencies = [ "pin-project", "serde", "serde_json", - "thiserror", + "thiserror 1.0.61", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -1749,7 +1772,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2ebc8013b4426d5b81a4364c419a95ed0b404af2b82e2457de52d9348f0e474" dependencies = [ "combine", - "thiserror", + "thiserror 1.0.61", ] [[package]] @@ -1815,7 +1838,7 @@ version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" dependencies = [ - "bytes 1.6.0", + "bytes 1.9.0", "fnv", "futures-core", "futures-sink", @@ -1835,7 +1858,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205" dependencies = [ "atomic-waker", - "bytes 1.6.0", + "bytes 1.9.0", "fnv", "futures-core", "futures-sink", @@ -1858,7 +1881,7 @@ dependencies = [ "pest_derive", "serde", "serde_json", - "thiserror", + "thiserror 1.0.61", ] [[package]] @@ -2002,7 +2025,7 @@ dependencies = [ "markup5ever 0.12.1", "proc-macro2", "quote", - "syn 2.0.69", + "syn 2.0.90", ] [[package]] @@ -2028,7 +2051,7 @@ version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" dependencies = [ - "bytes 1.6.0", + "bytes 1.9.0", "fnv", "itoa 1.0.11", ] @@ -2039,7 +2062,7 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" dependencies = [ - "bytes 1.6.0", + "bytes 1.9.0", "fnv", "itoa 1.0.11", ] @@ -2062,7 +2085,7 @@ version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ - "bytes 1.6.0", + "bytes 1.9.0", "http 0.2.12", "pin-project-lite", ] @@ -2073,7 +2096,7 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ - "bytes 1.6.0", + "bytes 1.9.0", "http 1.1.0", ] @@ -2083,7 +2106,7 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" dependencies = [ - "bytes 1.6.0", + "bytes 1.9.0", "futures-util", "http 1.1.0", "http-body 1.0.1", @@ -2144,7 +2167,7 @@ version = "0.14.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f361cde2f109281a220d4307746cdfd5ee3f410da58a70377762396775634b33" dependencies = [ - "bytes 1.6.0", + "bytes 1.9.0", "futures-channel", "futures-core", "futures-util", @@ -2168,13 +2191,14 @@ version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" dependencies = [ - "bytes 1.6.0", + "bytes 1.9.0", "futures-channel", "futures-util", "h2 0.4.6", "http 1.1.0", "http-body 1.0.1", "httparse", + "httpdate", "itoa 1.0.11", "pin-project-lite", "smallvec 1.13.2", @@ -2213,6 +2237,19 @@ dependencies = [ "tower-service", ] +[[package]] +name = "hyper-timeout" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b90d566bffbce6a75bd8b09a05aa8c2cb1fabb6cb348f8840c9e4c90a0d83b0" +dependencies = [ + "hyper 1.4.1", + "hyper-util", + "pin-project-lite", + "tokio 1.38.0", + "tower-service", +] + [[package]] name = "hyper-tls" version = "0.3.2" @@ -2232,7 +2269,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ - "bytes 1.6.0", + "bytes 1.9.0", "http-body-util", "hyper 1.4.1", "hyper-util", @@ -2244,11 +2281,11 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.7" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cde7055719c54e36e95e8719f95883f22072a48ede39db7fc17a4e1d5281e9b9" +checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" dependencies = [ - "bytes 1.6.0", + "bytes 1.9.0", "futures-channel", "futures-util", "http 1.1.0", @@ -2257,7 +2294,6 @@ dependencies = [ "pin-project-lite", "socket2", "tokio 1.38.0", - "tower", "tower-service", "tracing", ] @@ -2303,9 +2339,23 @@ dependencies = [ [[package]] name = "if_empty" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "472c8093cbd4f6e9e42238219c630735871563d23b2a830f5eaa5424a0f298ce" +checksum = "2f2cc06b39cae01a1bfde48217c65041b58772dcb3c3f1266efa2b6aedf43a36" +dependencies = [ + "if_empty_derive", +] + +[[package]] +name = "if_empty_derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d4f12d640c21129d94e91cd188680a3c5634176d0147290c0a049d96d15aca8" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] [[package]] name = "illicit" @@ -2487,7 +2537,7 @@ dependencies = [ "serde", "serde_json", "shared", - "thiserror", + "thiserror 1.0.61", "wasm-bindgen-test", "web-sys", ] @@ -2601,7 +2651,7 @@ dependencies = [ "memchr", "mime", "selectors 0.22.0", - "thiserror", + "thiserror 1.0.61", ] [[package]] @@ -2700,6 +2750,12 @@ version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" +[[package]] +name = "matchit" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" + [[package]] name = "maybe-uninit" version = "2.0.0" @@ -2766,15 +2822,6 @@ dependencies = [ "autocfg", ] -[[package]] -name = "memoffset" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" -dependencies = [ - "autocfg", -] - [[package]] name = "mime" version = "0.3.17" @@ -2886,7 +2933,7 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "01acbdc23469fd8fe07ab135923371d5f5a422fbf9c522158677c8eb15bc51c2" dependencies = [ - "bytes 1.6.0", + "bytes 1.9.0", "encoding_rs", "futures-util", "http 0.2.12", @@ -2904,7 +2951,7 @@ version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "83e87776546dc87511aa5ee218730c92b666d7264ab6ed41f9d215af9cd5224b" dependencies = [ - "bytes 1.6.0", + "bytes 1.9.0", "encoding_rs", "futures-util", "http 1.1.0", @@ -2935,7 +2982,7 @@ dependencies = [ "openssl-probe", "openssl-sys", "schannel", - "security-framework", + "security-framework 2.11.1", "security-framework-sys", "tempfile", ] @@ -2959,15 +3006,14 @@ checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" [[package]] name = "nix" -version = "0.21.2" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77d9f3521ea8e0641a153b3cddaf008dcbf26acd4ed739a2517295e0760d12c7" +checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags 1.2.1", - "cc", + "bitflags 2.6.0", "cfg-if 1.0.0", + "cfg_aliases", "libc", - "memoffset 0.6.5", ] [[package]] @@ -2996,7 +3042,26 @@ dependencies = [ "rayon", "serde", "serde_json", - "thiserror", + "thiserror 1.0.61", +] + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi 0.3.9", +] + +[[package]] +name = "nu-ansi-term" +version = "0.50.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399" +dependencies = [ + "windows-sys 0.52.0", ] [[package]] @@ -3122,7 +3187,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.69", + "syn 2.0.90", ] [[package]] @@ -3143,6 +3208,136 @@ dependencies = [ "vcpkg", ] +[[package]] +name = "opentelemetry" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab70038c28ed37b97d8ed414b6429d343a8bbf44c9f79ec854f3a643029ba6d7" +dependencies = [ + "futures-core", + "futures-sink", + "js-sys", + "pin-project-lite", + "thiserror 1.0.61", + "tracing", +] + +[[package]] +name = "opentelemetry-http" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10a8a7f5f6ba7c1b286c2fbca0454eaba116f63bbe69ed250b642d36fbb04d80" +dependencies = [ + "async-trait", + "bytes 1.9.0", + "http 1.1.0", + "opentelemetry", + "reqwest 0.12.7", +] + +[[package]] +name = "opentelemetry-otlp" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91cf61a1868dacc576bf2b2a1c3e9ab150af7272909e80085c3173384fe11f76" +dependencies = [ + "async-trait", + "futures-core", + "http 1.1.0", + "opentelemetry", + "opentelemetry-http", + "opentelemetry-proto", + "opentelemetry_sdk", + "prost", + "reqwest 0.12.7", + "thiserror 1.0.61", + "tokio 1.38.0", + "tonic", + "tracing", +] + +[[package]] +name = "opentelemetry-proto" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6e05acbfada5ec79023c85368af14abd0b307c015e9064d249b2a950ef459a6" +dependencies = [ + "opentelemetry", + "opentelemetry_sdk", + "prost", + "tonic", +] + +[[package]] +name = "opentelemetry-resource-detectors" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf6e83d3dca8fe93cfac95cd07313721c9e6e9f8655e7b06d061d4924df1a0cd" +dependencies = [ + "opentelemetry", + "opentelemetry-semantic-conventions", + "opentelemetry_sdk", +] + +[[package]] +name = "opentelemetry-semantic-conventions" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc1b6902ff63b32ef6c489e8048c5e253e2e4a803ea3ea7e783914536eb15c52" + +[[package]] +name = "opentelemetry-stdout" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc8a298402aa5c260be90d10dc54b5a7d4e1025c354848f8e2c976d761351049" +dependencies = [ + "async-trait", + "chrono", + "futures-util", + "opentelemetry", + "opentelemetry_sdk", + "ordered-float", + "serde", + "serde_json", + "thiserror 1.0.61", +] + +[[package]] +name = "opentelemetry_sdk" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "231e9d6ceef9b0b2546ddf52335785ce41252bc7474ee8ba05bfad277be13ab8" +dependencies = [ + "async-trait", + "futures-channel", + "futures-executor", + "futures-util", + "glob", + "opentelemetry", + "percent-encoding", + "rand 0.8.5", + "serde_json", + "thiserror 1.0.61", + "tokio 1.38.0", + "tokio-stream", + "tracing", +] + +[[package]] +name = "ordered-float" +version = "4.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c65ee1f9701bf938026630b455d5315f490640234259037edb259798b3bcf85e" +dependencies = [ + "num-traits", +] + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + [[package]] name = "ownedbytes" version = "0.7.0" @@ -3261,7 +3456,7 @@ dependencies = [ "proc-macro2", "proc-macro2-diagnostics", "quote", - "syn 2.0.69", + "syn 2.0.90", ] [[package]] @@ -3286,7 +3481,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd53dff83f26735fdc1ca837098ccf133605d794cdae66acfc2bfac3ec809d95" dependencies = [ "memchr", - "thiserror", + "thiserror 1.0.61", "ucd-trie", ] @@ -3310,7 +3505,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.69", + "syn 2.0.90", ] [[package]] @@ -3438,7 +3633,7 @@ dependencies = [ "phf_shared 0.11.2", "proc-macro2", "quote", - "syn 2.0.69", + "syn 2.0.90", ] [[package]] @@ -3491,7 +3686,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.69", + "syn 2.0.90", ] [[package]] @@ -3603,9 +3798,9 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" [[package]] name = "proc-macro2" -version = "1.0.86" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" dependencies = [ "unicode-ident", ] @@ -3618,7 +3813,7 @@ checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.69", + "syn 2.0.90", "version_check", "yansi 1.0.1", ] @@ -3630,6 +3825,29 @@ dependencies = [ "anyhow", ] +[[package]] +name = "prost" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c0fef6c4230e4ccf618a35c59d7ede15dea37de8427500f50aff708806e42ec" +dependencies = [ + "bytes 1.9.0", + "prost-derive", +] + +[[package]] +name = "prost-derive" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "157c5a9d7ea5c2ed2d9fb8f495b64759f7816c7eaea54ba3978f0d63000162e3" +dependencies = [ + "anyhow", + "itertools 0.12.1", + "proc-macro2", + "quote", + "syn 2.0.90", +] + [[package]] name = "quote" version = "1.0.36" @@ -3817,7 +4035,7 @@ checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.69", + "syn 2.0.90", ] [[package]] @@ -3871,7 +4089,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" dependencies = [ "base64 0.21.7", - "bytes 1.6.0", + "bytes 1.9.0", "encoding_rs", "futures-core", "futures-util", @@ -3912,7 +4130,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8f4955649ef5c38cc7f9e8aa41761d48fb9677197daea9984dc54f56aad5e63" dependencies = [ "base64 0.22.1", - "bytes 1.6.0", + "bytes 1.9.0", "encoding_rs", "futures-channel", "futures-core", @@ -3974,7 +4192,7 @@ dependencies = [ "async-trait", "atomic 0.5.3", "binascii", - "bytes 1.6.0", + "bytes 1.9.0", "either", "figment", "futures 0.3.30", @@ -4014,7 +4232,7 @@ dependencies = [ "proc-macro2", "quote", "rocket_http", - "syn 2.0.69", + "syn 2.0.90", "unicode-xid", "version_check", ] @@ -4248,13 +4466,27 @@ version = "0.23.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044" dependencies = [ + "log", "once_cell", + "ring", "rustls-pki-types", "rustls-webpki 0.102.6", "subtle 2.6.1", "zeroize", ] +[[package]] +name = "rustls-native-certs" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fcff2dd52b58a8d98a70243663a0d234c4e2b79235637849d15913394a247d3" +dependencies = [ + "openssl-probe", + "rustls-pki-types", + "schannel", + "security-framework 3.0.1", +] + [[package]] name = "rustls-pemfile" version = "1.0.4" @@ -4276,9 +4508,9 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.8.0" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0" +checksum = "d2bf47e6ff922db3825eb750c4e2ff784c6ff8fb9e13046ef6a1d1c5401b0b37" [[package]] name = "rustls-webpki" @@ -4367,7 +4599,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ "bitflags 2.6.0", - "core-foundation", + "core-foundation 0.9.4", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1415a607e92bec364ea2cf9264646dcce0f91e6d65281bd6f2819cca3bf39c8" +dependencies = [ + "bitflags 2.6.0", + "core-foundation 0.10.0", "core-foundation-sys", "libc", "security-framework-sys", @@ -4375,9 +4620,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.11.1" +version = "2.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf" +checksum = "fa39c7303dc58b5543c94d22c1766b0d31f2ee58306363ea622b10bbc075eaa2" dependencies = [ "core-foundation-sys", "libc", @@ -4510,7 +4755,7 @@ checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222" dependencies = [ "proc-macro2", "quote", - "syn 2.0.69", + "syn 2.0.90", ] [[package]] @@ -4558,7 +4803,6 @@ dependencies = [ "build-info-build", "cacher", "css-inline", - "glog", "html-escape", "linkify", "log", @@ -4576,10 +4820,12 @@ dependencies = [ "shared", "sqlx", "tantivy", - "thiserror", + "thiserror 1.0.61", "tokio 1.38.0", + "tracing", "url", "urlencoding", + "xtracing", ] [[package]] @@ -4787,7 +5033,7 @@ dependencies = [ "ahash 0.8.11", "atoi", "byteorder", - "bytes 1.6.0", + "bytes 1.9.0", "crc", "crossbeam-queue 0.3.11", "either", @@ -4810,7 +5056,7 @@ dependencies = [ "sha2 0.10.8", "smallvec 1.13.2", "sqlformat", - "thiserror", + "thiserror 1.0.61", "time 0.3.36", "tokio 1.38.0", "tokio-stream", @@ -4867,7 +5113,7 @@ dependencies = [ "base64 0.21.7", "bitflags 2.6.0", "byteorder", - "bytes 1.6.0", + "bytes 1.9.0", "crc", "digest 0.10.7", "dotenvy", @@ -4894,7 +5140,7 @@ dependencies = [ "smallvec 1.13.2", "sqlx-core", "stringprep", - "thiserror", + "thiserror 1.0.61", "time 0.3.36", "tracing", "whoami", @@ -4933,7 +5179,7 @@ dependencies = [ "smallvec 1.13.2", "sqlx-core", "stringprep", - "thiserror", + "thiserror 1.0.61", "time 0.3.36", "tracing", "whoami", @@ -5070,7 +5316,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.69", + "syn 2.0.90", ] [[package]] @@ -5098,9 +5344,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.69" +version = "2.0.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "201fcda3845c23e8212cd466bfebf0bd20694490fc0356ae8e428e0824a915a6" +checksum = "919d3b74a5dd0ccd15aeb8f93e7006bd9e14c295087c9896a110f490752bcf31" dependencies = [ "proc-macro2", "quote", @@ -5129,7 +5375,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" dependencies = [ "bitflags 1.2.1", - "core-foundation", + "core-foundation 0.9.4", "system-configuration-sys 0.5.0", ] @@ -5140,7 +5386,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ "bitflags 2.6.0", - "core-foundation", + "core-foundation 0.9.4", "system-configuration-sys 0.6.0", ] @@ -5209,7 +5455,7 @@ dependencies = [ "tantivy-stacker", "tantivy-tokenizer-api", "tempfile", - "thiserror", + "thiserror 1.0.61", "time 0.3.36", "uuid", "winapi 0.3.9", @@ -5328,15 +5574,6 @@ dependencies = [ "utf-8", ] -[[package]] -name = "termcolor" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" -dependencies = [ - "winapi-util", -] - [[package]] name = "thin-slice" version = "0.1.1" @@ -5349,7 +5586,16 @@ version = "1.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" dependencies = [ - "thiserror-impl", + "thiserror-impl 1.0.61", +] + +[[package]] +name = "thiserror" +version = "2.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93605438cbd668185516ab499d589afb7ee1859ea3d5fc8f6b0755e1c7443767" +dependencies = [ + "thiserror-impl 2.0.7", ] [[package]] @@ -5360,16 +5606,28 @@ checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" dependencies = [ "proc-macro2", "quote", - "syn 2.0.69", + "syn 2.0.90", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1d8749b4531af2117677a5fcd12b1348a3fe2b81e36e61ffeac5c4aa3273e36" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.90", ] [[package]] name = "thread_local" -version = "1.0.1" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" dependencies = [ - "lazy_static", + "cfg-if 1.0.0", + "once_cell", ] [[package]] @@ -5460,7 +5718,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a" dependencies = [ "backtrace", - "bytes 1.6.0", + "bytes 1.9.0", "libc", "mio 0.8.11", "num_cpus", @@ -5543,7 +5801,7 @@ checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.69", + "syn 2.0.90", ] [[package]] @@ -5634,9 +5892,9 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.15" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" +checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" dependencies = [ "futures-core", "pin-project-lite", @@ -5735,7 +5993,7 @@ version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" dependencies = [ - "bytes 1.6.0", + "bytes 1.9.0", "futures-core", "futures-io", "futures-sink", @@ -5788,6 +6046,39 @@ dependencies = [ "winnow 0.6.13", ] +[[package]] +name = "tonic" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877c5b330756d856ffcc4553ab34a5684481ade925ecc54bcd1bf02b1d0d4d52" +dependencies = [ + "async-stream", + "async-trait", + "axum", + "base64 0.22.1", + "bytes 1.9.0", + "h2 0.4.6", + "http 1.1.0", + "http-body 1.0.1", + "http-body-util", + "hyper 1.4.1", + "hyper-timeout", + "hyper-util", + "percent-encoding", + "pin-project", + "prost", + "rustls-native-certs", + "rustls-pemfile 2.1.3", + "socket2", + "tokio 1.38.0", + "tokio-rustls 0.26.0", + "tokio-stream", + "tower", + "tower-layer", + "tower-service", + "tracing", +] + [[package]] name = "topo" version = "0.13.2" @@ -5819,11 +6110,16 @@ checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" dependencies = [ "futures-core", "futures-util", + "indexmap 1.9.3", "pin-project", "pin-project-lite", + "rand 0.8.5", + "slab", "tokio 1.38.0", + "tokio-util", "tower-layer", "tower-service", + "tracing", ] [[package]] @@ -5840,9 +6136,9 @@ checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" [[package]] name = "tracing" -version = "0.1.40" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ "log", "pin-project-lite", @@ -5851,21 +6147,33 @@ dependencies = [ ] [[package]] -name = "tracing-attributes" -version = "0.1.27" +name = "tracing-appender" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf" +dependencies = [ + "crossbeam-channel", + "thiserror 1.0.61", + "time 0.3.36", + "tracing-subscriber", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.69", + "syn 2.0.90", ] [[package]] name = "tracing-core" -version = "0.1.32" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" dependencies = [ "once_cell", "valuable", @@ -5873,9 +6181,9 @@ dependencies = [ [[package]] name = "tracing-log" -version = "0.1.4" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" dependencies = [ "log", "once_cell", @@ -5883,14 +6191,32 @@ dependencies = [ ] [[package]] -name = "tracing-subscriber" -version = "0.3.6" +name = "tracing-opentelemetry" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77be66445c4eeebb934a7340f227bfe7b338173d3f8c00a60a5a58005c9faecf" +checksum = "97a971f6058498b5c0f1affa23e7ea202057a7301dbff68e968b2d578bcbd053" +dependencies = [ + "js-sys", + "once_cell", + "opentelemetry", + "opentelemetry_sdk", + "smallvec 1.13.2", + "tracing", + "tracing-core", + "tracing-log", + "tracing-subscriber", + "web-time", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" dependencies = [ - "ansi_term", - "lazy_static", "matchers", + "nu-ansi-term 0.46.0", + "once_cell", "regex", "sharded-slab", "smallvec 1.13.2", @@ -6156,7 +6482,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.69", + "syn 2.0.90", "wasm-bindgen-shared", ] @@ -6190,7 +6516,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.69", + "syn 2.0.90", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -6223,7 +6549,7 @@ checksum = "b7f89739351a2e03cb94beb799d47fb2cac01759b40ec441f7de39b00cbf7ef0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.69", + "syn 2.0.90", ] [[package]] @@ -6236,6 +6562,16 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "web-time" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + [[package]] name = "webpki-roots" version = "0.25.4" @@ -6281,32 +6617,12 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" -[[package]] -name = "winapi-util" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" -dependencies = [ - "windows-sys 0.52.0", -] - [[package]] name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -[[package]] -name = "windows" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25b270ca3fa1282aa091f122551348f8186f07888dffdfe64df17206ad3b56d0" -dependencies = [ - "const-sha1", - "windows_gen", - "windows_macros", -] - [[package]] name = "windows" version = "0.48.0" @@ -6428,12 +6744,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" -[[package]] -name = "windows_gen" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44bd40154eb69ba3c80f11752494a2a34d1b448b06b80449238edfbd00ec7eef" - [[package]] name = "windows_i686_gnu" version = "0.48.5" @@ -6464,16 +6774,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" -[[package]] -name = "windows_macros" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bae6942e04aa5792bbf3b3cf5ded1b7590a7ffd76d53ea179210b87911b6587f" -dependencies = [ - "syn 1.0.109", - "windows_gen", -] - [[package]] name = "windows_x86_64_gnu" version = "0.48.5" @@ -6554,6 +6854,31 @@ version = "0.8.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af4e2e2f7cba5a093896c1e150fbfe177d1883e7448200efb81d40b9d339ef26" +[[package]] +name = "xtracing" +version = "0.1.0" +source = "git+http://git-private.h.xinu.tv/wathiede/xtracing.git#35672863d72d8956d9e9e049cb005905113dcc03" +dependencies = [ + "chrono", + "gethostname", + "if_empty", + "nix", + "nu-ansi-term 0.50.1", + "opentelemetry", + "opentelemetry-otlp", + "opentelemetry-resource-detectors", + "opentelemetry-stdout", + "opentelemetry_sdk", + "thiserror 2.0.7", + "tokio 1.38.0", + "tracing", + "tracing-appender", + "tracing-core", + "tracing-opentelemetry", + "tracing-subscriber", + "whoami", +] + [[package]] name = "yansi" version = "0.5.1" @@ -6586,7 +6911,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.69", + "syn 2.0.90", ] [[package]] diff --git a/server/Cargo.toml b/server/Cargo.toml index 0b39b59..81c4354 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -15,7 +15,6 @@ async-trait = "0.1.81" build-info = "0.0.38" cacher = {git = "http://git-private.h.xinu.tv/wathiede/cacher.git"} css-inline = "0.13.0" -glog = "0.1.0" html-escape = "0.2.13" linkify = "0.10.0" log = "0.4.17" @@ -35,8 +34,11 @@ sqlx = { version = "0.7.4", features = ["postgres", "runtime-tokio", "time"] } tantivy = "0.22.0" thiserror = "1.0.37" tokio = "1.26.0" +tracing = "0.1.41" url = "2.5.2" urlencoding = "2.1.3" +#xtracing = { path = "../../xtracing" } +xtracing = { git = "http://git-private.h.xinu.tv/wathiede/xtracing.git" } [build-dependencies] build-info-build = "0.0.38" diff --git a/server/src/bin/server.rs b/server/src/bin/server.rs index 90e91de..76f03d2 100644 --- a/server/src/bin/server.rs +++ b/server/src/bin/server.rs @@ -7,7 +7,6 @@ use std::{error::Error, io::Cursor, str::FromStr}; use async_graphql::{http::GraphiQLSource, EmptySubscription, Schema}; use async_graphql_rocket::{GraphQLQuery, GraphQLRequest, GraphQLResponse}; -use glog::Flags; use notmuch::{Notmuch, NotmuchError, ThreadSet}; use rocket::{ fairing::AdHoc, @@ -176,14 +175,7 @@ async fn graphql_request( #[rocket::main] async fn main() -> Result<(), Box> { - glog::new() - .init(Flags { - colorlogtostderr: true, - //alsologtostderr: true, // use logtostderr to only write to stderr and not to files - logtostderr: true, - ..Default::default() - }) - .unwrap(); + let _guard = xtracing::init(env!("CARGO_BIN_NAME"))?; build_info::build_info!(fn bi); info!("Build Info: {}", shared::build_version(bi)); let allowed_origins = AllowedOrigins::all(); diff --git a/server/src/graphql.rs b/server/src/graphql.rs index f3d5ed4..ba7096c 100644 --- a/server/src/graphql.rs +++ b/server/src/graphql.rs @@ -9,6 +9,7 @@ use log::info; use notmuch::Notmuch; use serde::{Deserialize, Serialize}; use sqlx::postgres::PgPool; +use tracing::instrument; use crate::{config::Config, newsreader, nm, tantivy::TantivyConnection, Query}; @@ -269,6 +270,7 @@ impl QueryRoot { build_info::build_info!(fn bi); Ok(shared::build_version(bi)) } + #[instrument(skip_all, fields(query=query))] async fn count<'ctx>(&self, ctx: &Context<'ctx>, query: String) -> Result { let nm = ctx.data_unchecked::(); let pool = ctx.data_unchecked::(); @@ -284,6 +286,7 @@ impl QueryRoot { Ok(total) } + #[instrument(skip_all, fields(query=query))] async fn search<'ctx>( &self, ctx: &Context<'ctx>, @@ -418,6 +421,7 @@ impl QueryRoot { .await?) } + #[instrument(skip_all)] async fn tags<'ctx>(&self, ctx: &Context<'ctx>) -> FieldResult> { let nm = ctx.data_unchecked::(); let pool = ctx.data_unchecked::(); @@ -426,6 +430,7 @@ impl QueryRoot { tags.append(&mut nm::tags(nm, needs_unread)?); Ok(tags) } + #[instrument(skip_all, fields(thread_id=thread_id))] async fn thread<'ctx>(&self, ctx: &Context<'ctx>, thread_id: String) -> Result { let nm = ctx.data_unchecked::(); let pool = ctx.data_unchecked::(); @@ -500,6 +505,7 @@ async fn tantivy_search( pub struct Mutation; #[Object] impl Mutation { + #[instrument(skip_all, fields(query, bool))] async fn set_read_status<'ctx>( &self, ctx: &Context<'ctx>, @@ -516,6 +522,7 @@ impl Mutation { nm::set_read_status(nm, &query, unread).await?; Ok(true) } + #[instrument(skip_all, fields(query, tag))] async fn tag_add<'ctx>( &self, ctx: &Context<'ctx>, @@ -527,6 +534,7 @@ impl Mutation { nm.tag_add(&tag, &query)?; Ok(true) } + #[instrument(skip_all, fields(query, tag))] async fn tag_remove<'ctx>( &self, ctx: &Context<'ctx>, @@ -548,6 +556,7 @@ impl Mutation { Ok(true) } + #[instrument(skip_all)] async fn refresh<'ctx>(&self, ctx: &Context<'ctx>) -> Result { let nm = ctx.data_unchecked::(); let tantivy = ctx.data_unchecked::(); diff --git a/server/src/nm.rs b/server/src/nm.rs index b8a35b6..147d047 100644 --- a/server/src/nm.rs +++ b/server/src/nm.rs @@ -9,6 +9,7 @@ use log::{error, info, warn}; use mailparse::{parse_content_type, parse_mail, MailHeader, MailHeaderMap, ParsedMail}; use memmap::MmapOptions; use notmuch::Notmuch; +use tracing::instrument; use crate::{ compute_offset_limit, @@ -48,6 +49,7 @@ pub fn threadset_to_messages(thread_set: notmuch::ThreadSet) -> Result Result { if !is_notmuch_query(query) { return Ok(0); @@ -56,6 +58,7 @@ pub async fn count(nm: &Notmuch, query: &Query) -> Result { Ok(nm.count(&query)?) } +#[instrument(name="nm::search", skip_all, fields(query=?query))] pub async fn search( nm: &Notmuch, after: Option, @@ -99,6 +102,7 @@ pub async fn search( .collect()) } +#[instrument(name="nm::tags", skip_all, fields(needs_unread=needs_unread))] pub fn tags(nm: &Notmuch, needs_unread: bool) -> Result, ServerError> { let now = Instant::now(); let unread_msg_cnt: HashMap = if needs_unread { @@ -140,6 +144,7 @@ pub fn tags(nm: &Notmuch, needs_unread: bool) -> Result, ServerError> { Ok(tags) } +#[instrument(name="nm::thread", skip_all, fields(thread_id=thread_id))] pub async fn thread( nm: &Notmuch, thread_id: String, @@ -851,6 +856,7 @@ fn render_content_type_tree(m: &ParsedMail) -> String { ) } +#[instrument(name="nm::set_read_status", skip_all, fields(query=?query, unread=unread))] pub async fn set_read_status<'ctx>( nm: &Notmuch, query: &Query, diff --git a/server/src/tantivy.rs b/server/src/tantivy.rs index 223b525..2f8f30b 100644 --- a/server/src/tantivy.rs +++ b/server/src/tantivy.rs @@ -9,6 +9,7 @@ use tantivy::{ schema::{Facet, IndexRecordOption, Value}, DocAddress, Index, Searcher, TantivyDocument, TantivyError, Term, }; +use tracing::instrument; use crate::{ compute_offset_limit, @@ -42,6 +43,7 @@ impl TantivyConnection { db_path: tantivy_db_path.to_string(), }) } + #[instrument(name = "tantivy::refresh", skip_all)] pub async fn refresh(&self, pool: &PgPool) -> Result<(), ServerError> { let start_time = std::time::Instant::now(); let p_uids: Vec<_> = sqlx::query_file!("sql/all-uids.sql") @@ -167,6 +169,7 @@ impl TantivyConnection { index_writer.commit()?; Ok(()) } + #[instrument(name = "tantivy::reindex_thread", skip_all, fields(query=?query))] pub async fn reindex_thread(&self, pool: &PgPool, query: &Query) -> Result<(), ServerError> { let uids: Vec<_> = query .uids @@ -176,6 +179,7 @@ impl TantivyConnection { .collect(); Ok(self.reindex_uids(pool, &uids).await?) } + #[instrument(name = "tantivy::reindex_all", skip_all)] pub async fn reindex_all(&self, pool: &PgPool) -> Result<(), ServerError> { let rows = sqlx::query_file!("sql/all-posts.sql") .fetch_all(pool) @@ -224,6 +228,7 @@ impl TantivyConnection { Ok((searcher, Box::new(search_query))) } + #[instrument(name="tantivy::count", skip_all, fields(query=?query))] pub async fn count(&self, query: &Query) -> Result { if !is_tantivy_query(query) { return Ok(0); @@ -233,6 +238,7 @@ impl TantivyConnection { let (searcher, query) = self.searcher_and_query(&query)?; Ok(searcher.search(&query, &Count)?) } + #[instrument(name="tantivy::search", skip_all, fields(query=?query))] pub async fn search( &self, pool: &PgPool,