1
0
mirror of https://github.com/actix/actix-extras.git synced 2025-02-23 02:43:16 +01:00

Fixed custom root span builder code in README (#95)

This commit is contained in:
Harish Rajagopal 2022-12-23 11:28:46 +01:00 committed by GitHub
parent e888999e94
commit 3692cba538
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -128,6 +128,7 @@ Let's imagine, for example, that our system cares about a client identifier embe
We could add a `client_id` property to the root span using a custom builder, `DomainRootSpanBuilder`: We could add a `client_id` property to the root span using a custom builder, `DomainRootSpanBuilder`:
```rust ```rust
use actix_web::body::MessageBody;
use actix_web::dev::{ServiceResponse, ServiceRequest}; use actix_web::dev::{ServiceResponse, ServiceRequest};
use actix_web::Error; use actix_web::Error;
use tracing_actix_web::{TracingLogger, DefaultRootSpanBuilder, RootSpanBuilder}; use tracing_actix_web::{TracingLogger, DefaultRootSpanBuilder, RootSpanBuilder};
@ -141,7 +142,7 @@ impl RootSpanBuilder for DomainRootSpanBuilder {
tracing::info_span!("Request", client_id) tracing::info_span!("Request", client_id)
} }
fn on_request_end<B>(_span: Span, _outcome: &Result<ServiceResponse<B>, Error>) {} fn on_request_end<B: MessageBody>(_span: Span, _outcome: &Result<ServiceResponse<B>, Error>) {}
} }
let custom_middleware = TracingLogger::<DomainRootSpanBuilder>::new(); let custom_middleware = TracingLogger::<DomainRootSpanBuilder>::new();
@ -154,6 +155,7 @@ With `DomainRootSpanBuilder`, as it is, we do not get any of that useful HTTP-re
We can do better! We can do better!
```rust ```rust
use actix_web::body::MessageBody;
use actix_web::dev::{ServiceResponse, ServiceRequest}; use actix_web::dev::{ServiceResponse, ServiceRequest};
use actix_web::Error; use actix_web::Error;
use tracing_actix_web::{TracingLogger, DefaultRootSpanBuilder, RootSpanBuilder}; use tracing_actix_web::{TracingLogger, DefaultRootSpanBuilder, RootSpanBuilder};
@ -167,7 +169,7 @@ impl RootSpanBuilder for DomainRootSpanBuilder {
tracing_actix_web::root_span!(request, client_id) tracing_actix_web::root_span!(request, client_id)
} }
fn on_request_end<B>(span: Span, outcome: &Result<ServiceResponse<B>, Error>) { fn on_request_end<B: MessageBody>(span: Span, outcome: &Result<ServiceResponse<B>, Error>) {
DefaultRootSpanBuilder::on_request_end(span, outcome); DefaultRootSpanBuilder::on_request_end(span, outcome);
} }
} }
@ -186,6 +188,7 @@ composition.
the span level: the span level:
```rust ```rust
use actix_web::body::MessageBody;
use actix_web::dev::{ServiceResponse, ServiceRequest}; use actix_web::dev::{ServiceResponse, ServiceRequest};
use actix_web::Error; use actix_web::Error;
use tracing_actix_web::{TracingLogger, DefaultRootSpanBuilder, RootSpanBuilder, Level}; use tracing_actix_web::{TracingLogger, DefaultRootSpanBuilder, RootSpanBuilder, Level};
@ -203,7 +206,7 @@ impl RootSpanBuilder for CustomLevelRootSpanBuilder {
tracing_actix_web::root_span!(level = level, request) tracing_actix_web::root_span!(level = level, request)
} }
fn on_request_end<B>(span: Span, outcome: &Result<ServiceResponse<B>, Error>) { fn on_request_end<B: MessageBody>(span: Span, outcome: &Result<ServiceResponse<B>, Error>) {
DefaultRootSpanBuilder::on_request_end(span, outcome); DefaultRootSpanBuilder::on_request_end(span, outcome);
} }
} }
@ -218,6 +221,7 @@ You can use the [`RootSpan`] extractor to grab the root span in your handlers an
to your root span as it becomes available: to your root span as it becomes available:
```rust ```rust
use actix_web::body::MessageBody;
use actix_web::dev::{ServiceResponse, ServiceRequest}; use actix_web::dev::{ServiceResponse, ServiceRequest};
use actix_web::{Error, HttpResponse}; use actix_web::{Error, HttpResponse};
use tracing_actix_web::{RootSpan, DefaultRootSpanBuilder, RootSpanBuilder}; use tracing_actix_web::{RootSpan, DefaultRootSpanBuilder, RootSpanBuilder};
@ -249,7 +253,7 @@ impl RootSpanBuilder for DomainRootSpanBuilder {
) )
} }
fn on_request_end<B>(span: Span, response: &Result<ServiceResponse<B>, Error>) { fn on_request_end<B: MessageBody>(span: Span, response: &Result<ServiceResponse<B>, Error>) {
DefaultRootSpanBuilder::on_request_end(span, response); DefaultRootSpanBuilder::on_request_end(span, response);
} }
} }