🐸 Frogue(Fed)

~ololduck/Frogue

chore: enable sea-orm tracing spans;fmt

426a1212026-10-25T13:26:47+01:00Ololduck

2 files changed, +44, −18
frogue/Cargo.toml+43−17
@@ -26,7 +26,7 @@ maud = "0.27.0"
# is not the server's to trust.
pulldown-cmark = "0.13.4"
ammonia = "4.2.0"
−miette = {version = "7.6.0", features = ["fancy"]}
+miette = { version = "7.6.0", features = ["fancy"] }
# The migrations are a library so the server can apply them at startup; the
# `migration` CLI binary remains for generating and inspecting them.
migration = { path = "../migration" }
@@ -39,14 +39,18 @@ opentelemetry = "0.33.0"
# transport is `reqwest-blocking`, which needs no runtime but cannot be driven
# concurrently; the asynchronous clients are what the export runtime in
# `telemetry` can drive.
−opentelemetry-otlp = { version = "0.33.0", default-features = false, features = ["http-proto", "hyper-client", "trace"] }
+opentelemetry-otlp = { version = "0.33.0", default-features = false, features = [
+ "http-proto",
+ "hyper-client",
+ "trace",
+] }
# No `experimental_*` features: the stable `BatchSpanProcessor` is enough once
# `telemetry::ExportOnRuntime` gives it a runtime to drive the exporter with.
# `internal-logs` is what makes the SDK report export failures, and it emits
# through `tracing`, so `RUST_LOG` decides what is shown.
opentelemetry_sdk = { version = "0.33.0", default-features = false, features = [
− "internal-logs",
− "trace",
+ "internal-logs",
+ "trace",
] }
# Randomness for generating the SSH host key on first start.
rand = "0.10"
@@ -54,18 +58,30 @@ rand = "0.10"
# default `aws-lc-rs` backend, which drags in cmake and a heavy C build; `ring`
# together with the pure-Rust `rsa` crate covers the host key and the client
# keys we accept.
−russh = { version = "0.64", default-features = false, features = ["ring", "rsa"] }
+russh = { version = "0.64", default-features = false, features = [
+ "ring",
+ "rsa",
+] }
# Colouring source files on the server, so a file's page needs no JavaScript
# to show it the way an editor would. `default-fancy` picks the pure-Rust
# regex engine for the same reason the russh choice above does: the default
# `onig` backend is a C library. The cost is the syntax and theme dumps it
# embeds - a few megabytes of the binary.
−syntect = { version = "5", default-features = false, features = ["default-fancy"] }
+syntect = { version = "5", default-features = false, features = [
+ "default-fancy",
+] }
# A file's media type, from its name, for the raw file endpoint. Already in
# the dependency tree behind `rust-embed`'s `mime-guess` feature; named here
# because the raw endpoint uses it directly.
mime_guess = "2"
−sea-orm = { version = "2.0.3", features = ["sqlx-sqlite", "runtime-tokio-rustls", "macros", "with-chrono", "with-uuid"] }
+sea-orm = { version = "2.0.3", features = [
+ "sqlx-sqlite",
+ "runtime-tokio-rustls",
+ "macros",
+ "with-chrono",
+ "with-uuid",
+ "tracing-spans",
+] }
serde = { version = "1.0.229", features = ["derive"] }
serde_json = "1.0.151"
# Strong validators for the embedded static assets, hashed once at startup by
@@ -74,19 +90,24 @@ serde_json = "1.0.151"
# this crate now uses them directly.
sha2 = "0.10"
hex = "0.4"
−sqlx = { version = "0.9.0", features = ["chrono", "runtime-tokio", "sqlite", "uuid"] }
+sqlx = { version = "0.9.0", features = [
+ "chrono",
+ "runtime-tokio",
+ "sqlite",
+ "uuid",
+] }
thiserror = "2.0.20"
# `rt` and `time` are for the span export runtime that `telemetry` owns; the
# rest serve the SSH listener, which spawns `git upload-pack`/`receive-pack`
# and shuttles their standard streams over the channel.
tokio = { version = "1.53.1", features = [
− "io-util",
− "macros",
− "net",
− "process",
− "rt",
− "rt-multi-thread",
− "time",
+ "io-util",
+ "macros",
+ "net",
+ "process",
+ "rt",
+ "rt-multi-thread",
+ "time",
] }
toml = "1.1.6"
tracing = "0.1.44"
@@ -97,7 +118,9 @@ uuid = { version = "1.26.1", features = ["v4"] }
# A terminal UI for the SSH registration flow and future interactive features.
# ratatui renders to any terminal backend; crossterm handles the input parsing
# and escape sequences over the SSH channel rather than a real tty.
−ratatui = { version = "0.29", default-features = false, features = ["crossterm"] }
+ratatui = { version = "0.29", default-features = false, features = [
+ "crossterm",
+] }
crossterm = "0.28"
# ActivityPub actor keypairs: RSA-2048, pure-Rust, already in the tree
@@ -115,7 +138,10 @@ base64 = "0.22"
url = "2"
# HTTP client for fetching remote ActivityPub actors when verifying signatures
# and for delivering activities to followers' inboxes.
−reqwest = { version = "0.13", default-features = false, features = ["rustls", "json"] }
+reqwest = { version = "0.13", default-features = false, features = [
+ "rustls",
+ "json",
+] }
# Middleware support for reqwest, used for automatic tracing spans on HTTP requests.
reqwest-middleware = { version = "0.5", features = ["rustls", "json"] }
# Automatic tracing spans for reqwest requests.
frogue/src/telemetry.rs+1−1
@@ -87,7 +87,7 @@ const DEFAULT_CONSOLE_FILTER: &str = "info,actix_server=warn,sqlx=warn,sea_orm=w
/// reading - the database round trips, the password hashing - sit at `debug`
/// so they do not clutter the terminal, and the exporter has a filter of its
/// own precisely so that turning the console down does not silence them.
−const DEFAULT_SPANS_FILTER: &str = "debug";
+const DEFAULT_SPANS_FILTER: &str = "sea_orm=info,html5ever=warn,debug";
/// Reports a problem with the telemetry setup itself.
///