mirror of
https://github.com/actix/actix-extras.git
synced 2025-02-23 19:03:03 +01:00
Merge branch 'main' of github.com:LukeMathWalker/tracing-actix-web into main
This commit is contained in:
commit
a2f2d0d1d6
@ -30,7 +30,6 @@ emit_event_on_error = []
|
|||||||
actix-web = { version = "=4.0.0-beta.9", default-features = false }
|
actix-web = { version = "=4.0.0-beta.9", default-features = false }
|
||||||
tracing = "0.1.19"
|
tracing = "0.1.19"
|
||||||
tracing-futures = "0.2.4"
|
tracing-futures = "0.2.4"
|
||||||
futures = "0.3.5"
|
|
||||||
uuid = { version = "0.8.1", features = ["v4"] }
|
uuid = { version = "0.8.1", features = ["v4"] }
|
||||||
opentelemetry_0_13_pkg = { package = "opentelemetry", version = "0.13", optional = true }
|
opentelemetry_0_13_pkg = { package = "opentelemetry", version = "0.13", optional = true }
|
||||||
opentelemetry_0_14_pkg = { package = "opentelemetry", version = "0.14", optional = true }
|
opentelemetry_0_14_pkg = { package = "opentelemetry", version = "0.14", optional = true }
|
||||||
|
@ -1,8 +1,7 @@
|
|||||||
use crate::{DefaultRootSpanBuilder, RequestId, RootSpan, RootSpanBuilder};
|
use crate::{DefaultRootSpanBuilder, RequestId, RootSpan, RootSpanBuilder};
|
||||||
use actix_web::dev::{Service, ServiceRequest, ServiceResponse, Transform};
|
use actix_web::dev::{Service, ServiceRequest, ServiceResponse, Transform};
|
||||||
use actix_web::{Error, HttpMessage, ResponseError};
|
use actix_web::{Error, HttpMessage, ResponseError};
|
||||||
use futures::future::{ok, Ready};
|
use std::future::{ready, Future, Ready};
|
||||||
use std::future::Future;
|
|
||||||
use std::pin::Pin;
|
use std::pin::Pin;
|
||||||
use tracing::Span;
|
use tracing::Span;
|
||||||
use tracing_futures::Instrument;
|
use tracing_futures::Instrument;
|
||||||
@ -100,10 +99,10 @@ where
|
|||||||
type Future = Ready<Result<Self::Transform, Self::InitError>>;
|
type Future = Ready<Result<Self::Transform, Self::InitError>>;
|
||||||
|
|
||||||
fn new_transform(&self, service: S) -> Self::Future {
|
fn new_transform(&self, service: S) -> Self::Future {
|
||||||
ok(TracingLoggerMiddleware {
|
ready(Ok(TracingLoggerMiddleware {
|
||||||
service,
|
service,
|
||||||
root_span_builder: std::marker::PhantomData::default(),
|
root_span_builder: std::marker::PhantomData::default(),
|
||||||
})
|
}))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -134,7 +133,7 @@ where
|
|||||||
let root_span_wrapper = RootSpan::new(root_span.clone());
|
let root_span_wrapper = RootSpan::new(root_span.clone());
|
||||||
req.extensions_mut().insert(root_span_wrapper);
|
req.extensions_mut().insert(root_span_wrapper);
|
||||||
|
|
||||||
let fut = self.service.call(req);
|
let fut = root_span.in_scope(|| self.service.call(req));
|
||||||
Box::pin(
|
Box::pin(
|
||||||
async move {
|
async move {
|
||||||
let outcome = fut.await;
|
let outcome = fut.await;
|
||||||
|
@ -56,11 +56,13 @@ impl RootSpanBuilder for DefaultRootSpanBuilder {
|
|||||||
|
|
||||||
fn handle_error(span: Span, error: &actix_web::Error) {
|
fn handle_error(span: Span, error: &actix_web::Error) {
|
||||||
let response_error = error.as_response_error();
|
let response_error = error.as_response_error();
|
||||||
span.record(
|
|
||||||
"exception.message",
|
// pre-formatting errors is a workaround for https://github.com/tokio-rs/tracing/issues/1565
|
||||||
&tracing::field::display(response_error),
|
let display = format!("{}", response_error);
|
||||||
);
|
let debug = format!("{:?}", response_error);
|
||||||
span.record("exception.details", &tracing::field::debug(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();
|
let status_code = response_error.status_code();
|
||||||
span.record("http.status_code", &status_code.as_u16());
|
span.record("http.status_code", &status_code.as_u16());
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user