mirror of
https://git.asonix.dog/asonix/pict-rs
synced 2024-11-10 06:25:00 +00:00
Remove tracing-error workaround
This commit is contained in:
parent
5e9d923d03
commit
79a0fa32ee
4 changed files with 12 additions and 62 deletions
20
Cargo.lock
generated
20
Cargo.lock
generated
|
@ -387,9 +387,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "bumpalo"
|
name = "bumpalo"
|
||||||
version = "3.7.0"
|
version = "3.7.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "9c59e7af012c713f529e7a3ee57ce9b31ddd858d4b512923602f74608b009631"
|
checksum = "d9df67f7bf9ef8498769f994239c45613ef0c5899415fb58e9add412d2c1a538"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "byteorder"
|
name = "byteorder"
|
||||||
|
@ -2026,9 +2026,9 @@ checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tracing"
|
name = "tracing"
|
||||||
version = "0.1.27"
|
version = "0.1.28"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "c2ba9ab62b7d6497a8638dfda5e5c4fb3b2d5a7fca4118f2b96151c8ef1a437e"
|
checksum = "84f96e095c0c82419687c20ddf5cb3eadb61f4e1405923c9dc8e53a1adacbda8"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cfg-if",
|
"cfg-if",
|
||||||
"log",
|
"log",
|
||||||
|
@ -2040,11 +2040,9 @@ dependencies = [
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tracing-actix-web"
|
name = "tracing-actix-web"
|
||||||
version = "0.4.0-beta.12"
|
version = "0.4.0-beta.12"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "git+https://github.com/asonix/tracing-actix-web?branch=asonix/tracing-error-work-around#51e7911af7d1dd6a9c8265fa19b94224ddff56e2"
|
||||||
checksum = "aef43d92080b0429626deba48d01dad848ad515777b373d7a18eac3f129be359"
|
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"actix-web",
|
"actix-web",
|
||||||
"futures",
|
|
||||||
"tracing",
|
"tracing",
|
||||||
"tracing-futures",
|
"tracing-futures",
|
||||||
"uuid",
|
"uuid",
|
||||||
|
@ -2126,9 +2124,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tracing-subscriber"
|
name = "tracing-subscriber"
|
||||||
version = "0.2.22"
|
version = "0.2.23"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "62af966210b88ad5776ee3ba12d5f35b8d6a2b2a12168f3080cf02b814d7376b"
|
checksum = "56c42e73a9d277d4d2b6a88389a137ccf3c58599660b17e8f5fc39305e490669"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"ansi_term 0.12.1",
|
"ansi_term 0.12.1",
|
||||||
"chrono",
|
"chrono",
|
||||||
|
@ -2203,9 +2201,9 @@ checksum = "8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "unicode-width"
|
name = "unicode-width"
|
||||||
version = "0.1.8"
|
version = "0.1.9"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3"
|
checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "unicode-xid"
|
name = "unicode-xid"
|
||||||
|
|
|
@ -35,7 +35,7 @@ time = { version = "0.3.0", features = ["serde"] }
|
||||||
tokio = { version = "1", default-features = false, features = ["fs", "io-util", "process", "sync"] }
|
tokio = { version = "1", default-features = false, features = ["fs", "io-util", "process", "sync"] }
|
||||||
tokio-util = { version = "0.6", default-features = false, features = ["codec"] }
|
tokio-util = { version = "0.6", default-features = false, features = ["codec"] }
|
||||||
tracing = "0.1.15"
|
tracing = "0.1.15"
|
||||||
tracing-actix-web = { version = "0.4.0-beta.8" }
|
tracing-actix-web = { version = "0.4.0-beta.8", git = "https://github.com/asonix/tracing-actix-web", branch = "asonix/tracing-error-work-around" }
|
||||||
tracing-error = "0.1.2"
|
tracing-error = "0.1.2"
|
||||||
tracing-futures = "0.2.4"
|
tracing-futures = "0.2.4"
|
||||||
tracing-log = "0.1.2"
|
tracing-log = "0.1.2"
|
||||||
|
|
|
@ -45,7 +45,6 @@ mod middleware;
|
||||||
mod migrate;
|
mod migrate;
|
||||||
mod processor;
|
mod processor;
|
||||||
mod range;
|
mod range;
|
||||||
mod root_span_builder;
|
|
||||||
mod stream;
|
mod stream;
|
||||||
mod upload_manager;
|
mod upload_manager;
|
||||||
mod validate;
|
mod validate;
|
||||||
|
@ -54,7 +53,6 @@ use self::{
|
||||||
config::{Config, Format},
|
config::{Config, Format},
|
||||||
error::{Error, UploadError},
|
error::{Error, UploadError},
|
||||||
middleware::{Deadline, Internal},
|
middleware::{Deadline, Internal},
|
||||||
root_span_builder::RootSpanBuilder,
|
|
||||||
upload_manager::{Details, UploadManager, UploadManagerSession},
|
upload_manager::{Details, UploadManager, UploadManagerSession},
|
||||||
validate::{image_webp, video_mp4},
|
validate::{image_webp, video_mp4},
|
||||||
};
|
};
|
||||||
|
@ -892,11 +890,11 @@ async fn main() -> Result<(), anyhow::Error> {
|
||||||
|
|
||||||
HttpServer::new(move || {
|
HttpServer::new(move || {
|
||||||
let client = Client::builder()
|
let client = Client::builder()
|
||||||
.header("User-Agent", "pict-rs v0.1.0-master")
|
.header("User-Agent", "pict-rs v0.3.0-main")
|
||||||
.finish();
|
.finish();
|
||||||
|
|
||||||
App::new()
|
App::new()
|
||||||
.wrap(TracingLogger::<RootSpanBuilder>::new())
|
.wrap(TracingLogger::default())
|
||||||
.wrap(Deadline)
|
.wrap(Deadline)
|
||||||
.app_data(web::Data::new(manager.clone()))
|
.app_data(web::Data::new(manager.clone()))
|
||||||
.app_data(web::Data::new(client))
|
.app_data(web::Data::new(client))
|
||||||
|
|
|
@ -1,46 +0,0 @@
|
||||||
use actix_web::{
|
|
||||||
dev::{ServiceRequest, ServiceResponse},
|
|
||||||
Error,
|
|
||||||
};
|
|
||||||
use tracing::Span;
|
|
||||||
use tracing_actix_web::root_span;
|
|
||||||
|
|
||||||
pub struct RootSpanBuilder;
|
|
||||||
|
|
||||||
impl tracing_actix_web::RootSpanBuilder for RootSpanBuilder {
|
|
||||||
fn on_request_start(request: &ServiceRequest) -> Span {
|
|
||||||
root_span!(request)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn on_request_end<B>(span: Span, outcome: &Result<ServiceResponse<B>, Error>) {
|
|
||||||
match &outcome {
|
|
||||||
Ok(response) => {
|
|
||||||
if let Some(error) = response.response().error() {
|
|
||||||
handle_error(span, error)
|
|
||||||
} else {
|
|
||||||
span.record("http.status_code", &response.response().status().as_u16());
|
|
||||||
span.record("otel.status_code", &"OK");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Err(error) => handle_error(span, error),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn handle_error(span: Span, error: &Error) {
|
|
||||||
let response_error = error.as_response_error();
|
|
||||||
|
|
||||||
let display = format!("{}", response_error);
|
|
||||||
let debug = format!("{:?}", response_error);
|
|
||||||
span.record("exception.message", &tracing::field::display(display));
|
|
||||||
span.record("exception.details", &tracing::field::display(debug));
|
|
||||||
|
|
||||||
let status_code = response_error.status_code();
|
|
||||||
span.record("http.status_code", &status_code.as_u16());
|
|
||||||
|
|
||||||
if status_code.is_client_error() {
|
|
||||||
span.record("otel.status_code", &"OK");
|
|
||||||
} else {
|
|
||||||
span.record("otel.status_code", &"ERROR");
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in a new issue