diff --git a/Cargo.lock b/Cargo.lock
index 78ff405..c8d48dc 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -30,6 +30,15 @@ dependencies = [
"memchr",
]
+[[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 = "arrayref"
version = "0.3.6"
@@ -212,7 +221,9 @@ dependencies = [
"js_int",
"jsonwebtoken",
"log",
- "rand",
+ "opentelemetry",
+ "opentelemetry-jaeger",
+ "rand 0.7.3",
"regex",
"reqwest",
"ring",
@@ -226,6 +237,9 @@ dependencies = [
"state-res",
"thiserror",
"tokio",
+ "tracing",
+ "tracing-opentelemetry",
+ "tracing-subscriber",
"trust-dns-resolver",
]
@@ -595,6 +609,17 @@ dependencies = [
"wasi 0.9.0+wasi-snapshot-preview1",
]
+[[package]]
+name = "getrandom"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c9495705279e7140bf035dde1f6e750c162df8b625267cd52cc44e0b156732c8"
+dependencies = [
+ "cfg-if 1.0.0",
+ "libc",
+ "wasi 0.10.0+wasi-snapshot-preview1",
+]
+
[[package]]
name = "gif"
version = "0.11.1"
@@ -795,6 +820,12 @@ dependencies = [
"cfg-if 1.0.0",
]
+[[package]]
+name = "integer-encoding"
+version = "1.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "48dc51180a9b377fd75814d0cc02199c20f8e99433d6762f650d39cdbbd3b56f"
+
[[package]]
name = "iovec"
version = "0.1.4"
@@ -945,6 +976,15 @@ version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4"
+[[package]]
+name = "matchers"
+version = "0.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f099785f7595cc4b4553a174ce30dd7589ef93391ff414dbb67f62392b9e0ce1"
+dependencies = [
+ "regex-automata",
+]
+
[[package]]
name = "matches"
version = "0.1.8"
@@ -1189,6 +1229,44 @@ dependencies = [
"vcpkg",
]
+[[package]]
+name = "opentelemetry"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "514d24875c140ed269eecc2d1b56d7b71b573716922a763c317fb1b1b4b58f15"
+dependencies = [
+ "async-trait",
+ "futures",
+ "js-sys",
+ "lazy_static",
+ "percent-encoding",
+ "pin-project 1.0.2",
+ "rand 0.8.3",
+ "thiserror",
+]
+
+[[package]]
+name = "opentelemetry-jaeger"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a5677b3a361784aff6e2b1b30dbdb5f85f4ec57ff2ced41d9a481ad70a9d0b57"
+dependencies = [
+ "async-trait",
+ "lazy_static",
+ "opentelemetry",
+ "thiserror",
+ "thrift",
+]
+
+[[package]]
+name = "ordered-float"
+version = "1.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3305af35278dd29f46fcdd139e0b1fbfae2153f0e5928b39b035542dd31e37b7"
+dependencies = [
+ "num-traits",
+]
+
[[package]]
name = "parking_lot"
version = "0.11.1"
@@ -1406,11 +1484,23 @@ version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
dependencies = [
- "getrandom",
+ "getrandom 0.1.15",
"libc",
- "rand_chacha",
- "rand_core",
- "rand_hc",
+ "rand_chacha 0.2.2",
+ "rand_core 0.5.1",
+ "rand_hc 0.2.0",
+]
+
+[[package]]
+name = "rand"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ef9e7e66b4468674bfcb0c81af8b7fa0bb154fa9f28eb840da5c447baeb8d7e"
+dependencies = [
+ "libc",
+ "rand_chacha 0.3.0",
+ "rand_core 0.6.2",
+ "rand_hc 0.3.0",
]
[[package]]
@@ -1420,7 +1510,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
dependencies = [
"ppv-lite86",
- "rand_core",
+ "rand_core 0.5.1",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d"
+dependencies = [
+ "ppv-lite86",
+ "rand_core 0.6.2",
]
[[package]]
@@ -1429,7 +1529,16 @@ version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
dependencies = [
- "getrandom",
+ "getrandom 0.1.15",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34cf66eb183df1c5876e2dcf6b13d57340741e8dc255b48e40a26de954d06ae7"
+dependencies = [
+ "getrandom 0.2.2",
]
[[package]]
@@ -1438,7 +1547,16 @@ version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
dependencies = [
- "rand_core",
+ "rand_core 0.5.1",
+]
+
+[[package]]
+name = "rand_hc"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73"
+dependencies = [
+ "rand_core 0.6.2",
]
[[package]]
@@ -1453,7 +1571,7 @@ version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "de0737333e7a9502c789a36d7c7fa6092a49895d4faa31ca5df163857ded2e9d"
dependencies = [
- "getrandom",
+ "getrandom 0.1.15",
"redox_syscall",
"rust-argon2",
]
@@ -1490,6 +1608,16 @@ dependencies = [
"thread_local",
]
+[[package]]
+name = "regex-automata"
+version = "0.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae1ded71d66a4a97f5e961fd0cb25a5f366a42a41570d16a763a69c092c26ae4"
+dependencies = [
+ "byteorder",
+ "regex-syntax",
+]
+
[[package]]
name = "regex-syntax"
version = "0.6.21"
@@ -1582,7 +1710,7 @@ dependencies = [
"memchr",
"num_cpus",
"parking_lot",
- "rand",
+ "rand 0.7.3",
"ref-cast",
"rocket_codegen",
"rocket_http",
@@ -1769,7 +1897,7 @@ version = "0.17.4"
source = "git+https://github.com/ruma/ruma?rev=ee814aa84934530d76f5e4b275d739805b49bdef#ee814aa84934530d76f5e4b275d739805b49bdef"
dependencies = [
"paste",
- "rand",
+ "rand 0.7.3",
"ruma-identifiers-macros",
"ruma-identifiers-validation",
"ruma-serde",
@@ -2010,6 +2138,15 @@ version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d"
+[[package]]
+name = "sharded-slab"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "79c719719ee05df97490f80a45acfc99e5a30ce98a1e4fb67aee422745ae14e3"
+dependencies = [
+ "lazy_static",
+]
+
[[package]]
name = "signal-hook-registry"
version = "1.2.2"
@@ -2194,7 +2331,7 @@ checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
dependencies = [
"cfg-if 0.1.10",
"libc",
- "rand",
+ "rand 0.7.3",
"redox_syscall",
"remove_dir_all",
"winapi 0.3.9",
@@ -2229,6 +2366,28 @@ dependencies = [
"lazy_static",
]
+[[package]]
+name = "threadpool"
+version = "1.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa"
+dependencies = [
+ "num_cpus",
+]
+
+[[package]]
+name = "thrift"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c6d965454947cc7266d22716ebfd07b18d84ebaf35eec558586bbb2a8cb6b5b"
+dependencies = [
+ "byteorder",
+ "integer-encoding",
+ "log",
+ "ordered-float",
+ "threadpool",
+]
+
[[package]]
name = "time"
version = "0.1.44"
@@ -2380,9 +2539,9 @@ checksum = "e987b6bf443f4b5b3b6f38704195592cca41c5bb7aedd3c3693c7081f8289860"
[[package]]
name = "tracing"
-version = "0.1.22"
+version = "0.1.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f47026cdc4080c07e49b37087de021820269d996f581aac150ef9e5583eefe3"
+checksum = "01ebdc2bb4498ab1ab5f5b73c5803825e60199229ccba0698170e3be0e7f959f"
dependencies = [
"cfg-if 1.0.0",
"log",
@@ -2393,9 +2552,9 @@ dependencies = [
[[package]]
name = "tracing-attributes"
-version = "0.1.11"
+version = "0.1.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "80e0ccfc3378da0cce270c946b676a376943f5cd16aeba64568e7939806f4ada"
+checksum = "a8a9bd1db7706f2373a190b0d067146caa39350c486f3d455b0e33b431f94c07"
dependencies = [
"proc-macro2",
"quote",
@@ -2421,6 +2580,62 @@ dependencies = [
"tracing",
]
+[[package]]
+name = "tracing-log"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a6923477a48e41c1951f1999ef8bb5a3023eb723ceadafe78ffb65dc366761e3"
+dependencies = [
+ "lazy_static",
+ "log",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-opentelemetry"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cccdf13c28f1654fe806838f28c5b9cb23ca4c0eae71450daa489f50e523ceb1"
+dependencies = [
+ "opentelemetry",
+ "tracing",
+ "tracing-core",
+ "tracing-log",
+ "tracing-subscriber",
+]
+
+[[package]]
+name = "tracing-serde"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fb65ea441fbb84f9f6748fd496cf7f63ec9af5bca94dd86456978d055e8eb28b"
+dependencies = [
+ "serde",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-subscriber"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ab8966ac3ca27126141f7999361cc97dd6fb4b71da04c02044fa9045d98bb96"
+dependencies = [
+ "ansi_term",
+ "chrono",
+ "lazy_static",
+ "matchers",
+ "regex",
+ "serde",
+ "serde_json",
+ "sharded-slab",
+ "smallvec",
+ "thread_local",
+ "tracing",
+ "tracing-core",
+ "tracing-log",
+ "tracing-serde",
+]
+
[[package]]
name = "trust-dns-proto"
version = "0.19.6"
@@ -2434,7 +2649,7 @@ dependencies = [
"idna",
"lazy_static",
"log",
- "rand",
+ "rand 0.7.3",
"smallvec",
"thiserror",
"tokio",
diff --git a/Cargo.toml b/Cargo.toml
index f7fbdc5..9ab5250 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -65,6 +65,12 @@ trust-dns-resolver = "0.19.6"
regex = "1.4.2"
# jwt jsonwebtokens
jsonwebtoken = "7.2.0"
+# Performance measurements
+tracing = "0.1.25"
+opentelemetry = "0.12.0"
+tracing-subscriber = "0.2.16"
+tracing-opentelemetry = "0.11.0"
+opentelemetry-jaeger = "0.11.0"
[features]
default = ["conduit_bin"]
diff --git a/conduit-example.toml b/conduit-example.toml
index b82da2c..b1bc618 100644
--- a/conduit-example.toml
+++ b/conduit-example.toml
@@ -28,8 +28,12 @@ max_request_size = 20_000_000 # in bytes
# Disable encryption, so no new encrypted rooms can be created
# Note: existing rooms will continue to work
#allow_encryption = true
+
#allow_federation = false
+# Enable jaeger to support monitoring and troubleshooting through jaeger
+#allow_jaeger = false
+
#cache_capacity = 1073741824 # in bytes, 1024 * 1024 * 1024
#max_concurrent_requests = 4 # How many requests Conduit sends to other servers at the same time
#workers = 4 # default: cpu core count * 2
diff --git a/src/client_server/account.rs b/src/client_server/account.rs
index 75544b7..044468b 100644
--- a/src/client_server/account.rs
+++ b/src/client_server/account.rs
@@ -40,6 +40,7 @@ const GUEST_NAME_LENGTH: usize = 10;
feature = "conduit_bin",
get("/_matrix/client/r0/register/available", data = "
")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn get_register_available_route(
db: State<'_, Database>,
body: Ruma>,
@@ -82,6 +83,7 @@ pub async fn get_register_available_route(
feature = "conduit_bin",
post("/_matrix/client/r0/register", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn register_route(
db: State<'_, Database>,
body: Ruma>,
@@ -546,6 +548,7 @@ pub async fn register_route(
feature = "conduit_bin",
post("/_matrix/client/r0/account/password", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn change_password_route(
db: State<'_, Database>,
body: Ruma>,
@@ -610,6 +613,7 @@ pub async fn change_password_route(
feature = "conduit_bin",
get("/_matrix/client/r0/account/whoami", data = "")
)]
+#[tracing::instrument(skip(body))]
pub async fn whoami_route(body: Ruma) -> ConduitResult {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
Ok(whoami::Response {
@@ -630,6 +634,7 @@ pub async fn whoami_route(body: Ruma) -> ConduitResult,
body: Ruma>,
diff --git a/src/client_server/alias.rs b/src/client_server/alias.rs
index 498e882..b8c16d9 100644
--- a/src/client_server/alias.rs
+++ b/src/client_server/alias.rs
@@ -19,6 +19,7 @@ use rocket::{delete, get, put};
feature = "conduit_bin",
put("/_matrix/client/r0/directory/room/<_>", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn create_alias_route(
db: State<'_, Database>,
body: Ruma>,
@@ -39,6 +40,7 @@ pub async fn create_alias_route(
feature = "conduit_bin",
delete("/_matrix/client/r0/directory/room/<_>", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn delete_alias_route(
db: State<'_, Database>,
body: Ruma>,
@@ -54,6 +56,7 @@ pub async fn delete_alias_route(
feature = "conduit_bin",
get("/_matrix/client/r0/directory/room/<_>", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn get_alias_route(
db: State<'_, Database>,
body: Ruma>,
diff --git a/src/client_server/backup.rs b/src/client_server/backup.rs
index 0f34ba7..f33d0de 100644
--- a/src/client_server/backup.rs
+++ b/src/client_server/backup.rs
@@ -17,6 +17,7 @@ use rocket::{delete, get, post, put};
feature = "conduit_bin",
post("/_matrix/client/unstable/room_keys/version", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn create_backup_route(
db: State<'_, Database>,
body: Ruma,
@@ -35,6 +36,7 @@ pub async fn create_backup_route(
feature = "conduit_bin",
put("/_matrix/client/unstable/room_keys/version/<_>", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn update_backup_route(
db: State<'_, Database>,
body: Ruma>,
@@ -52,6 +54,7 @@ pub async fn update_backup_route(
feature = "conduit_bin",
get("/_matrix/client/unstable/room_keys/version", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn get_latest_backup_route(
db: State<'_, Database>,
body: Ruma,
@@ -79,6 +82,7 @@ pub async fn get_latest_backup_route(
feature = "conduit_bin",
get("/_matrix/client/unstable/room_keys/version/<_>", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn get_backup_route(
db: State<'_, Database>,
body: Ruma>,
@@ -105,6 +109,7 @@ pub async fn get_backup_route(
feature = "conduit_bin",
delete("/_matrix/client/unstable/room_keys/version/<_>", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn delete_backup_route(
db: State<'_, Database>,
body: Ruma>,
@@ -123,6 +128,7 @@ pub async fn delete_backup_route(
feature = "conduit_bin",
put("/_matrix/client/unstable/room_keys/keys", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn add_backup_keys_route(
db: State<'_, Database>,
body: Ruma>,
@@ -156,6 +162,7 @@ pub async fn add_backup_keys_route(
feature = "conduit_bin",
put("/_matrix/client/unstable/room_keys/keys/<_>", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn add_backup_key_sessions_route(
db: State<'_, Database>,
body: Ruma>,
@@ -187,6 +194,7 @@ pub async fn add_backup_key_sessions_route(
feature = "conduit_bin",
put("/_matrix/client/unstable/room_keys/keys/<_>/<_>", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn add_backup_key_session_route(
db: State<'_, Database>,
body: Ruma>,
@@ -215,6 +223,7 @@ pub async fn add_backup_key_session_route(
feature = "conduit_bin",
get("/_matrix/client/unstable/room_keys/keys", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn get_backup_keys_route(
db: State<'_, Database>,
body: Ruma>,
@@ -230,6 +239,7 @@ pub async fn get_backup_keys_route(
feature = "conduit_bin",
get("/_matrix/client/unstable/room_keys/keys/<_>", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn get_backup_key_sessions_route(
db: State<'_, Database>,
body: Ruma>,
@@ -247,6 +257,7 @@ pub async fn get_backup_key_sessions_route(
feature = "conduit_bin",
get("/_matrix/client/unstable/room_keys/keys/<_>/<_>", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn get_backup_key_session_route(
db: State<'_, Database>,
body: Ruma>,
@@ -270,6 +281,7 @@ pub async fn get_backup_key_session_route(
feature = "conduit_bin",
delete("/_matrix/client/unstable/room_keys/keys", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn delete_backup_keys_route(
db: State<'_, Database>,
body: Ruma>,
@@ -292,6 +304,7 @@ pub async fn delete_backup_keys_route(
feature = "conduit_bin",
delete("/_matrix/client/unstable/room_keys/keys/<_>", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn delete_backup_key_sessions_route(
db: State<'_, Database>,
body: Ruma>,
@@ -314,6 +327,7 @@ pub async fn delete_backup_key_sessions_route(
feature = "conduit_bin",
delete("/_matrix/client/unstable/room_keys/keys/<_>/<_>", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn delete_backup_key_session_route(
db: State<'_, Database>,
body: Ruma>,
diff --git a/src/client_server/capabilities.rs b/src/client_server/capabilities.rs
index fa12a08..b4fdf69 100644
--- a/src/client_server/capabilities.rs
+++ b/src/client_server/capabilities.rs
@@ -9,6 +9,7 @@ use rocket::get;
///
/// Get information on this server's supported feature set and other relevent capabilities.
#[cfg_attr(feature = "conduit_bin", get("/_matrix/client/r0/capabilities"))]
+#[tracing::instrument]
pub async fn get_capabilities_route() -> ConduitResult {
let mut available = BTreeMap::new();
available.insert(
diff --git a/src/client_server/config.rs b/src/client_server/config.rs
index f1d233a..aece96e 100644
--- a/src/client_server/config.rs
+++ b/src/client_server/config.rs
@@ -16,6 +16,7 @@ use rocket::{get, put};
feature = "conduit_bin",
put("/_matrix/client/r0/user/<_>/account_data/<_>", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn set_global_account_data_route(
db: State<'_, Database>,
body: Ruma>,
@@ -49,6 +50,7 @@ pub async fn set_global_account_data_route(
feature = "conduit_bin",
get("/_matrix/client/r0/user/<_>/account_data/<_>", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn get_global_account_data_route(
db: State<'_, Database>,
body: Ruma>,
diff --git a/src/client_server/context.rs b/src/client_server/context.rs
index f2a8cd4..cb9aaf9 100644
--- a/src/client_server/context.rs
+++ b/src/client_server/context.rs
@@ -10,6 +10,7 @@ use rocket::get;
feature = "conduit_bin",
get("/_matrix/client/r0/rooms/<_>/context/<_>", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn get_context_route(
db: State<'_, Database>,
body: Ruma>,
diff --git a/src/client_server/device.rs b/src/client_server/device.rs
index 86ac511..1950c5c 100644
--- a/src/client_server/device.rs
+++ b/src/client_server/device.rs
@@ -16,6 +16,7 @@ use rocket::{delete, get, post, put};
feature = "conduit_bin",
get("/_matrix/client/r0/devices", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn get_devices_route(
db: State<'_, Database>,
body: Ruma,
@@ -35,6 +36,7 @@ pub async fn get_devices_route(
feature = "conduit_bin",
get("/_matrix/client/r0/devices/<_>", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn get_device_route(
db: State<'_, Database>,
body: Ruma>,
@@ -53,6 +55,7 @@ pub async fn get_device_route(
feature = "conduit_bin",
put("/_matrix/client/r0/devices/<_>", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn update_device_route(
db: State<'_, Database>,
body: Ruma>,
@@ -78,6 +81,7 @@ pub async fn update_device_route(
feature = "conduit_bin",
delete("/_matrix/client/r0/devices/<_>", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn delete_device_route(
db: State<'_, Database>,
body: Ruma>,
@@ -126,6 +130,7 @@ pub async fn delete_device_route(
feature = "conduit_bin",
post("/_matrix/client/r0/delete_devices", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn delete_devices_route(
db: State<'_, Database>,
body: Ruma>,
diff --git a/src/client_server/directory.rs b/src/client_server/directory.rs
index fa5db3a..1c72915 100644
--- a/src/client_server/directory.rs
+++ b/src/client_server/directory.rs
@@ -31,6 +31,7 @@ use rocket::{get, post, put};
feature = "conduit_bin",
post("/_matrix/client/r0/publicRooms", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn get_public_rooms_filtered_route(
db: State<'_, Database>,
body: Ruma>,
@@ -50,6 +51,7 @@ pub async fn get_public_rooms_filtered_route(
feature = "conduit_bin",
get("/_matrix/client/r0/publicRooms", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn get_public_rooms_route(
db: State<'_, Database>,
body: Ruma>,
@@ -78,6 +80,7 @@ pub async fn get_public_rooms_route(
feature = "conduit_bin",
put("/_matrix/client/r0/directory/list/room/<_>", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn set_room_visibility_route(
db: State<'_, Database>,
body: Ruma>,
@@ -107,6 +110,7 @@ pub async fn set_room_visibility_route(
feature = "conduit_bin",
get("/_matrix/client/r0/directory/list/room/<_>", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn get_room_visibility_route(
db: State<'_, Database>,
body: Ruma>,
diff --git a/src/client_server/filter.rs b/src/client_server/filter.rs
index 4513ab4..a08eb34 100644
--- a/src/client_server/filter.rs
+++ b/src/client_server/filter.rs
@@ -5,6 +5,7 @@ use ruma::api::client::r0::filter::{self, create_filter, get_filter};
use rocket::{get, post};
#[cfg_attr(feature = "conduit_bin", get("/_matrix/client/r0/user/<_>/filter/<_>"))]
+#[tracing::instrument]
pub async fn get_filter_route() -> ConduitResult {
// TODO
Ok(get_filter::Response::new(filter::IncomingFilterDefinition {
@@ -18,6 +19,7 @@ pub async fn get_filter_route() -> ConduitResult {
}
#[cfg_attr(feature = "conduit_bin", post("/_matrix/client/r0/user/<_>/filter"))]
+#[tracing::instrument]
pub async fn create_filter_route() -> ConduitResult {
// TODO
Ok(create_filter::Response::new(utils::random_string(10)).into())
diff --git a/src/client_server/keys.rs b/src/client_server/keys.rs
index 8426518..08bb4c6 100644
--- a/src/client_server/keys.rs
+++ b/src/client_server/keys.rs
@@ -22,6 +22,7 @@ use rocket::{get, post};
feature = "conduit_bin",
post("/_matrix/client/r0/keys/upload", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn upload_keys_route(
db: State<'_, Database>,
body: Ruma,
@@ -70,6 +71,7 @@ pub async fn upload_keys_route(
feature = "conduit_bin",
post("/_matrix/client/r0/keys/query", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn get_keys_route(
db: State<'_, Database>,
body: Ruma>,
@@ -150,6 +152,7 @@ pub async fn get_keys_route(
feature = "conduit_bin",
post("/_matrix/client/r0/keys/claim", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn claim_keys_route(
db: State<'_, Database>,
body: Ruma,
@@ -183,6 +186,7 @@ pub async fn claim_keys_route(
feature = "conduit_bin",
post("/_matrix/client/unstable/keys/device_signing/upload", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn upload_signing_keys_route(
db: State<'_, Database>,
body: Ruma>,
@@ -240,6 +244,7 @@ pub async fn upload_signing_keys_route(
feature = "conduit_bin",
post("/_matrix/client/unstable/keys/signatures/upload", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn upload_signatures_route(
db: State<'_, Database>,
body: Ruma,
@@ -300,6 +305,7 @@ pub async fn upload_signatures_route(
feature = "conduit_bin",
get("/_matrix/client/r0/keys/changes", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn get_key_changes_route(
db: State<'_, Database>,
body: Ruma>,
diff --git a/src/client_server/media.rs b/src/client_server/media.rs
index 156040b..2db4fc6 100644
--- a/src/client_server/media.rs
+++ b/src/client_server/media.rs
@@ -12,6 +12,7 @@ use std::convert::TryInto;
const MXC_LENGTH: usize = 32;
#[cfg_attr(feature = "conduit_bin", get("/_matrix/media/r0/config"))]
+#[tracing::instrument(skip(db))]
pub async fn get_media_config_route(
db: State<'_, Database>,
) -> ConduitResult {
@@ -25,6 +26,7 @@ pub async fn get_media_config_route(
feature = "conduit_bin",
post("/_matrix/media/r0/upload", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn create_content_route(
db: State<'_, Database>,
body: Ruma>,
@@ -54,6 +56,7 @@ pub async fn create_content_route(
feature = "conduit_bin",
get("/_matrix/media/r0/download/<_>/<_>", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn get_content_route(
db: State<'_, Database>,
body: Ruma>,
@@ -103,6 +106,7 @@ pub async fn get_content_route(
feature = "conduit_bin",
get("/_matrix/media/r0/thumbnail/<_>/<_>", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn get_content_thumbnail_route(
db: State<'_, Database>,
body: Ruma>,
diff --git a/src/client_server/membership.rs b/src/client_server/membership.rs
index b459d37..287cfbb 100644
--- a/src/client_server/membership.rs
+++ b/src/client_server/membership.rs
@@ -36,6 +36,7 @@ use rocket::{get, post};
feature = "conduit_bin",
post("/_matrix/client/r0/rooms/<_>/join", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn join_room_by_id_route(
db: State<'_, Database>,
body: Ruma>,
@@ -54,6 +55,7 @@ pub async fn join_room_by_id_route(
feature = "conduit_bin",
post("/_matrix/client/r0/join/<_>", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn join_room_by_id_or_alias_route(
db: State<'_, Database>,
body: Ruma>,
@@ -88,6 +90,7 @@ pub async fn join_room_by_id_or_alias_route(
feature = "conduit_bin",
post("/_matrix/client/r0/rooms/<_>/leave", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn leave_room_route(
db: State<'_, Database>,
body: Ruma>,
@@ -140,6 +143,7 @@ pub async fn leave_room_route(
feature = "conduit_bin",
post("/_matrix/client/r0/rooms/<_>/invite", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn invite_user_route(
db: State<'_, Database>,
body: Ruma>,
@@ -183,6 +187,7 @@ pub async fn invite_user_route(
feature = "conduit_bin",
post("/_matrix/client/r0/rooms/<_>/kick", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn kick_user_route(
db: State<'_, Database>,
body: Ruma>,
@@ -236,6 +241,7 @@ pub async fn kick_user_route(
feature = "conduit_bin",
post("/_matrix/client/r0/rooms/<_>/ban", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn ban_user_route(
db: State<'_, Database>,
body: Ruma>,
@@ -296,6 +302,7 @@ pub async fn ban_user_route(
feature = "conduit_bin",
post("/_matrix/client/r0/rooms/<_>/unban", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn unban_user_route(
db: State<'_, Database>,
body: Ruma>,
@@ -348,6 +355,7 @@ pub async fn unban_user_route(
feature = "conduit_bin",
post("/_matrix/client/r0/rooms/<_>/forget", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn forget_room_route(
db: State<'_, Database>,
body: Ruma>,
@@ -365,6 +373,7 @@ pub async fn forget_room_route(
feature = "conduit_bin",
get("/_matrix/client/r0/joined_rooms", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn joined_rooms_route(
db: State<'_, Database>,
body: Ruma,
@@ -385,6 +394,7 @@ pub async fn joined_rooms_route(
feature = "conduit_bin",
get("/_matrix/client/r0/rooms/<_>/members", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn get_member_events_route(
db: State<'_, Database>,
body: Ruma>,
@@ -414,6 +424,7 @@ pub async fn get_member_events_route(
feature = "conduit_bin",
get("/_matrix/client/r0/rooms/<_>/joined_members", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn joined_members_route(
db: State<'_, Database>,
body: Ruma>,
diff --git a/src/client_server/message.rs b/src/client_server/message.rs
index 3640730..39a61cb 100644
--- a/src/client_server/message.rs
+++ b/src/client_server/message.rs
@@ -17,6 +17,7 @@ use rocket::{get, put};
feature = "conduit_bin",
put("/_matrix/client/r0/rooms/<_>/send/<_>/<_>", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn send_message_event_route(
db: State<'_, Database>,
body: Ruma>,
@@ -88,6 +89,7 @@ pub async fn send_message_event_route(
feature = "conduit_bin",
get("/_matrix/client/r0/rooms/<_>/messages", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn get_message_events_route(
db: State<'_, Database>,
body: Ruma>,
diff --git a/src/client_server/mod.rs b/src/client_server/mod.rs
index 672957b..dd8e7a6 100644
--- a/src/client_server/mod.rs
+++ b/src/client_server/mod.rs
@@ -75,6 +75,7 @@ const SESSION_ID_LENGTH: usize = 256;
#[cfg(feature = "conduit_bin")]
#[options("/<_..>")]
+#[tracing::instrument]
pub async fn options_route() -> ConduitResult {
Ok(send_event_to_device::Response.into())
}
diff --git a/src/client_server/presence.rs b/src/client_server/presence.rs
index 15c746e..175853f 100644
--- a/src/client_server/presence.rs
+++ b/src/client_server/presence.rs
@@ -10,6 +10,7 @@ use rocket::put;
feature = "conduit_bin",
put("/_matrix/client/r0/presence/<_>/status", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn set_presence_route(
db: State<'_, Database>,
body: Ruma>,
diff --git a/src/client_server/profile.rs b/src/client_server/profile.rs
index 761443d..bd8425a 100644
--- a/src/client_server/profile.rs
+++ b/src/client_server/profile.rs
@@ -19,6 +19,7 @@ use std::convert::TryInto;
feature = "conduit_bin",
put("/_matrix/client/r0/profile/<_>/displayname", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn set_displayname_route(
db: State<'_, Database>,
body: Ruma>,
@@ -102,6 +103,7 @@ pub async fn set_displayname_route(
feature = "conduit_bin",
get("/_matrix/client/r0/profile/<_>/displayname", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn get_displayname_route(
db: State<'_, Database>,
body: Ruma>,
@@ -116,6 +118,7 @@ pub async fn get_displayname_route(
feature = "conduit_bin",
put("/_matrix/client/r0/profile/<_>/avatar_url", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn set_avatar_url_route(
db: State<'_, Database>,
body: Ruma>,
@@ -199,6 +202,7 @@ pub async fn set_avatar_url_route(
feature = "conduit_bin",
get("/_matrix/client/r0/profile/<_>/avatar_url", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn get_avatar_url_route(
db: State<'_, Database>,
body: Ruma>,
@@ -213,6 +217,7 @@ pub async fn get_avatar_url_route(
feature = "conduit_bin",
get("/_matrix/client/r0/profile/<_>", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn get_profile_route(
db: State<'_, Database>,
body: Ruma>,
diff --git a/src/client_server/push.rs b/src/client_server/push.rs
index 667d667..03da73a 100644
--- a/src/client_server/push.rs
+++ b/src/client_server/push.rs
@@ -22,6 +22,7 @@ use rocket::{delete, get, post, put};
feature = "conduit_bin",
get("/_matrix/client/r0/pushrules", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn get_pushrules_all_route(
db: State<'_, Database>,
body: Ruma,
@@ -46,6 +47,7 @@ pub async fn get_pushrules_all_route(
feature = "conduit_bin",
get("/_matrix/client/r0/pushrules/<_>/<_>/<_>", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn get_pushrule_route(
db: State<'_, Database>,
body: Ruma>,
@@ -101,6 +103,7 @@ pub async fn get_pushrule_route(
feature = "conduit_bin",
put("/_matrix/client/r0/pushrules/<_>/<_>/<_>", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn set_pushrule_route(
db: State<'_, Database>,
body: Ruma>,
@@ -247,6 +250,7 @@ pub async fn set_pushrule_route(
feature = "conduit_bin",
get("/_matrix/client/r0/pushrules/<_>/<_>/<_>/actions", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn get_pushrule_actions_route(
db: State<'_, Database>,
body: Ruma>,
@@ -310,6 +314,7 @@ pub async fn get_pushrule_actions_route(
feature = "conduit_bin",
put("/_matrix/client/r0/pushrules/<_>/<_>/<_>/actions", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn set_pushrule_actions_route(
db: State<'_, Database>,
body: Ruma>,
@@ -413,6 +418,7 @@ pub async fn set_pushrule_actions_route(
feature = "conduit_bin",
get("/_matrix/client/r0/pushrules/<_>/<_>/<_>/enabled", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn get_pushrule_enabled_route(
db: State<'_, Database>,
body: Ruma>,
@@ -473,6 +479,7 @@ pub async fn get_pushrule_enabled_route(
feature = "conduit_bin",
put("/_matrix/client/r0/pushrules/<_>/<_>/<_>/enabled", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn set_pushrule_enabled_route(
db: State<'_, Database>,
body: Ruma>,
@@ -576,6 +583,7 @@ pub async fn set_pushrule_enabled_route(
feature = "conduit_bin",
delete("/_matrix/client/r0/pushrules/<_>/<_>/<_>", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn delete_pushrule_route(
db: State<'_, Database>,
body: Ruma>,
@@ -666,6 +674,7 @@ pub async fn delete_pushrule_route(
}
#[cfg_attr(feature = "conduit_bin", get("/_matrix/client/r0/pushers"))]
+#[tracing::instrument]
pub async fn get_pushers_route() -> ConduitResult {
Ok(get_pushers::Response {
pushers: Vec::new(),
@@ -674,6 +683,7 @@ pub async fn get_pushers_route() -> ConduitResult {
}
#[cfg_attr(feature = "conduit_bin", post("/_matrix/client/r0/pushers/set"))]
+#[tracing::instrument(skip(db))]
pub async fn set_pushers_route(db: State<'_, Database>) -> ConduitResult {
db.flush().await?;
diff --git a/src/client_server/read_marker.rs b/src/client_server/read_marker.rs
index f7d3712..555b7e7 100644
--- a/src/client_server/read_marker.rs
+++ b/src/client_server/read_marker.rs
@@ -16,6 +16,7 @@ use std::{collections::BTreeMap, time::SystemTime};
feature = "conduit_bin",
post("/_matrix/client/r0/rooms/<_>/read_markers", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn set_read_marker_route(
db: State<'_, Database>,
body: Ruma>,
@@ -84,6 +85,7 @@ pub async fn set_read_marker_route(
feature = "conduit_bin",
post("/_matrix/client/r0/rooms/<_>/receipt/<_>/<_>", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn create_receipt_route(
db: State<'_, Database>,
body: Ruma>,
diff --git a/src/client_server/redact.rs b/src/client_server/redact.rs
index 212e751..af277db 100644
--- a/src/client_server/redact.rs
+++ b/src/client_server/redact.rs
@@ -12,6 +12,7 @@ use rocket::put;
feature = "conduit_bin",
put("/_matrix/client/r0/rooms/<_>/redact/<_>/<_>", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn redact_event_route(
db: State<'_, Database>,
body: Ruma>,
diff --git a/src/client_server/room.rs b/src/client_server/room.rs
index 092e083..e2c931c 100644
--- a/src/client_server/room.rs
+++ b/src/client_server/room.rs
@@ -22,6 +22,7 @@ use rocket::{get, post};
feature = "conduit_bin",
post("/_matrix/client/r0/createRoom", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn create_room_route(
db: State<'_, Database>,
body: Ruma>,
@@ -350,6 +351,7 @@ pub async fn create_room_route(
feature = "conduit_bin",
get("/_matrix/client/r0/rooms/<_>/event/<_>", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn get_room_event_route(
db: State<'_, Database>,
body: Ruma>,
@@ -377,6 +379,7 @@ pub async fn get_room_event_route(
feature = "conduit_bin",
post("/_matrix/client/r0/rooms/<_room_id>/upgrade", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn upgrade_room_route(
db: State<'_, Database>,
body: Ruma>,
diff --git a/src/client_server/search.rs b/src/client_server/search.rs
index 5fb87f0..a668a0d 100644
--- a/src/client_server/search.rs
+++ b/src/client_server/search.rs
@@ -11,6 +11,7 @@ use std::collections::BTreeMap;
feature = "conduit_bin",
post("/_matrix/client/r0/search", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn search_events_route(
db: State<'_, Database>,
body: Ruma>,
diff --git a/src/client_server/session.rs b/src/client_server/session.rs
index 1b2583c..8c8b643 100644
--- a/src/client_server/session.rs
+++ b/src/client_server/session.rs
@@ -24,6 +24,7 @@ use rocket::{get, post};
/// Get the homeserver's supported login types. One of these should be used as the `type` field
/// when logging in.
#[cfg_attr(feature = "conduit_bin", get("/_matrix/client/r0/login"))]
+#[tracing::instrument]
pub async fn get_login_types_route() -> ConduitResult {
Ok(get_login_types::Response::new(vec![get_login_types::LoginType::Password]).into())
}
@@ -42,6 +43,7 @@ pub async fn get_login_types_route() -> ConduitResult
feature = "conduit_bin",
post("/_matrix/client/r0/login", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn login_route(
db: State<'_, Database>,
body: Ruma>,
@@ -156,6 +158,7 @@ pub async fn login_route(
feature = "conduit_bin",
post("/_matrix/client/r0/logout", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn logout_route(
db: State<'_, Database>,
body: Ruma,
@@ -183,6 +186,7 @@ pub async fn logout_route(
feature = "conduit_bin",
post("/_matrix/client/r0/logout/all", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn logout_all_route(
db: State<'_, Database>,
body: Ruma,
diff --git a/src/client_server/state.rs b/src/client_server/state.rs
index faa415d..073d94f 100644
--- a/src/client_server/state.rs
+++ b/src/client_server/state.rs
@@ -22,6 +22,7 @@ use rocket::{get, put};
feature = "conduit_bin",
put("/_matrix/client/r0/rooms/<_>/state/<_>/<_>", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn send_state_event_for_key_route(
db: State<'_, Database>,
body: Ruma>,
@@ -55,6 +56,7 @@ pub async fn send_state_event_for_key_route(
feature = "conduit_bin",
put("/_matrix/client/r0/rooms/<_>/state/<_>", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn send_state_event_for_empty_key_route(
db: State<'_, Database>,
body: Ruma>,
@@ -96,6 +98,7 @@ pub async fn send_state_event_for_empty_key_route(
feature = "conduit_bin",
get("/_matrix/client/r0/rooms/<_>/state", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn get_state_events_route(
db: State<'_, Database>,
body: Ruma>,
@@ -142,6 +145,7 @@ pub async fn get_state_events_route(
feature = "conduit_bin",
get("/_matrix/client/r0/rooms/<_>/state/<_>/<_>", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn get_state_events_for_key_route(
db: State<'_, Database>,
body: Ruma>,
@@ -193,6 +197,7 @@ pub async fn get_state_events_for_key_route(
feature = "conduit_bin",
get("/_matrix/client/r0/rooms/<_>/state/<_>", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn get_state_events_for_empty_key_route(
db: State<'_, Database>,
body: Ruma>,
diff --git a/src/client_server/sync.rs b/src/client_server/sync.rs
index 494c773..b4d0520 100644
--- a/src/client_server/sync.rs
+++ b/src/client_server/sync.rs
@@ -30,6 +30,7 @@ use std::{
feature = "conduit_bin",
get("/_matrix/client/r0/sync", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn sync_events_route(
db: State<'_, Database>,
body: Ruma>,
@@ -310,8 +311,7 @@ pub async fn sync_events_route(
};
let state_events = if joined_since_last_sync {
- db.rooms
- .room_state_full(&room_id)?
+ current_state
.into_iter()
.map(|(_, pdu)| pdu.to_sync_state_event())
.collect()
@@ -708,6 +708,7 @@ pub async fn sync_events_route(
Ok(response.into())
}
+#[tracing::instrument(skip(db))]
fn share_encrypted_room(
db: &Database,
sender_user: &UserId,
diff --git a/src/client_server/tag.rs b/src/client_server/tag.rs
index 7bbf9e8..21264a1 100644
--- a/src/client_server/tag.rs
+++ b/src/client_server/tag.rs
@@ -13,6 +13,7 @@ use rocket::{delete, get, put};
feature = "conduit_bin",
put("/_matrix/client/r0/user/<_>/rooms/<_>/tags/<_>", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn update_tag_route(
db: State<'_, Database>,
body: Ruma>,
@@ -49,6 +50,7 @@ pub async fn update_tag_route(
feature = "conduit_bin",
delete("/_matrix/client/r0/user/<_>/rooms/<_>/tags/<_>", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn delete_tag_route(
db: State<'_, Database>,
body: Ruma>,
@@ -82,6 +84,7 @@ pub async fn delete_tag_route(
feature = "conduit_bin",
get("/_matrix/client/r0/user/<_>/rooms/<_>/tags", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn get_tags_route(
db: State<'_, Database>,
body: Ruma>,
diff --git a/src/client_server/thirdparty.rs b/src/client_server/thirdparty.rs
index c775e9b..3c07699 100644
--- a/src/client_server/thirdparty.rs
+++ b/src/client_server/thirdparty.rs
@@ -10,6 +10,7 @@ use std::collections::BTreeMap;
feature = "conduit_bin",
get("/_matrix/client/r0/thirdparty/protocols")
)]
+#[tracing::instrument]
pub async fn get_protocols_route() -> ConduitResult {
warn!("TODO: get_protocols_route");
Ok(get_protocols::Response {
diff --git a/src/client_server/to_device.rs b/src/client_server/to_device.rs
index 5bc001e..460bd05 100644
--- a/src/client_server/to_device.rs
+++ b/src/client_server/to_device.rs
@@ -12,6 +12,7 @@ use rocket::put;
feature = "conduit_bin",
put("/_matrix/client/r0/sendToDevice/<_>/<_>", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn send_event_to_device_route(
db: State<'_, Database>,
body: Ruma>,
diff --git a/src/client_server/typing.rs b/src/client_server/typing.rs
index e90746e..4b7feb7 100644
--- a/src/client_server/typing.rs
+++ b/src/client_server/typing.rs
@@ -10,6 +10,7 @@ use rocket::put;
feature = "conduit_bin",
put("/_matrix/client/r0/rooms/<_>/typing/<_>", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub fn create_typing_event_route(
db: State<'_, Database>,
body: Ruma>,
diff --git a/src/client_server/unversioned.rs b/src/client_server/unversioned.rs
index e51ed56..d25dce6 100644
--- a/src/client_server/unversioned.rs
+++ b/src/client_server/unversioned.rs
@@ -15,6 +15,7 @@ use rocket::get;
/// Note: Unstable features are used while developing new features. Clients should avoid using
/// unstable features in their stable releases
#[cfg_attr(feature = "conduit_bin", get("/_matrix/client/versions"))]
+#[tracing::instrument]
pub async fn get_supported_versions_route() -> ConduitResult {
let mut resp =
get_supported_versions::Response::new(vec!["r0.5.0".to_owned(), "r0.6.0".to_owned()]);
diff --git a/src/client_server/user_directory.rs b/src/client_server/user_directory.rs
index 5829364..b358274 100644
--- a/src/client_server/user_directory.rs
+++ b/src/client_server/user_directory.rs
@@ -9,6 +9,7 @@ use rocket::post;
feature = "conduit_bin",
post("/_matrix/client/r0/user_directory/search", data = "")
)]
+#[tracing::instrument(skip(db, body))]
pub async fn search_users_route(
db: State<'_, Database>,
body: Ruma>,
diff --git a/src/client_server/voip.rs b/src/client_server/voip.rs
index 9216f1a..7924a7f 100644
--- a/src/client_server/voip.rs
+++ b/src/client_server/voip.rs
@@ -6,6 +6,7 @@ use std::time::Duration;
use rocket::get;
#[cfg_attr(feature = "conduit_bin", get("/_matrix/client/r0/voip/turnServer"))]
+#[tracing::instrument]
pub async fn turn_server_route() -> ConduitResult {
Ok(get_turn_server_info::Response {
username: "".to_owned(),
diff --git a/src/database.rs b/src/database.rs
index 8fcffd9..6dc9c70 100644
--- a/src/database.rs
+++ b/src/database.rs
@@ -38,6 +38,8 @@ pub struct Config {
allow_encryption: bool,
#[serde(default = "false_fn")]
allow_federation: bool,
+ #[serde(default = "false_fn")]
+ pub allow_jaeger: bool,
jwt_secret: Option,
}
diff --git a/src/database/account_data.rs b/src/database/account_data.rs
index 855ebfe..38e6c32 100644
--- a/src/database/account_data.rs
+++ b/src/database/account_data.rs
@@ -74,6 +74,7 @@ impl AccountData {
}
/// Returns all changes to the account data that happened after `since`.
+ #[tracing::instrument(skip(self))]
pub fn changes_since(
&self,
room_id: Option<&RoomId>,
diff --git a/src/database/rooms.rs b/src/database/rooms.rs
index b35d006..7e80134 100644
--- a/src/database/rooms.rs
+++ b/src/database/rooms.rs
@@ -108,6 +108,7 @@ impl StateStore for Rooms {
impl Rooms {
/// Builds a StateMap by iterating over all keys that start
/// with state_hash, this gives the full state for the given state_hash.
+ #[tracing::instrument(skip(self))]
pub fn state_full(
&self,
room_id: &RoomId,
@@ -145,6 +146,7 @@ impl Rooms {
}
/// Returns a single PDU from `room_id` with key (`event_type`, `state_key`).
+ #[tracing::instrument(skip(self))]
pub fn state_get(
&self,
room_id: &RoomId,
@@ -186,11 +188,13 @@ impl Rooms {
}
/// Returns the last state hash key added to the db.
+ #[tracing::instrument(skip(self))]
pub fn pdu_state_hash(&self, pdu_id: &[u8]) -> Result