From 250110563bb775b34bdcdab92c142633d35f87ee Mon Sep 17 00:00:00 2001 From: Adam Cattermole Date: Tue, 26 Mar 2024 14:00:57 +0000 Subject: [PATCH] Retrieve current span instead of manual enter --- limitador-server/src/envoy_rls/server.rs | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/limitador-server/src/envoy_rls/server.rs b/limitador-server/src/envoy_rls/server.rs index dee7dd4d..d5b1747f 100644 --- a/limitador-server/src/envoy_rls/server.rs +++ b/limitador-server/src/envoy_rls/server.rs @@ -6,7 +6,7 @@ use std::sync::Arc; use tonic::codegen::http::HeaderMap; use tonic::{transport, transport::Server, Request, Response, Status}; -use tracing::info_span; +use tracing::Span; use tracing_opentelemetry::OpenTelemetrySpanExt; use limitador::counter::Counter; @@ -45,21 +45,20 @@ impl MyRateLimiter { #[tonic::async_trait] impl RateLimitService for MyRateLimiter { + #[tracing::instrument(skip_all)] async fn should_rate_limit( &self, request: Request, ) -> Result, Status> { - let span = info_span!("should_rate_limit"); - let _enter = span.enter(); debug!("Request received: {:?}", request); let mut values: HashMap = HashMap::new(); let (metadata, _ext, req) = request.into_parts(); - - let rl_headers = RateLimitRequestHeaders::new(metadata.into_headers()); let namespace = req.domain; + let rl_headers = RateLimitRequestHeaders::new(metadata.into_headers()); let parent_context = global::get_text_map_propagator(|propagator| propagator.extract(&rl_headers)); + let span = Span::current(); span.set_parent(parent_context); if namespace.is_empty() { @@ -217,7 +216,7 @@ impl RateLimitRequestHeaders { impl Extractor for RateLimitRequestHeaders { fn get(&self, key: &str) -> Option<&str> { match self.inner.get(key) { - Some(v) => Some(v.to_str().unwrap_or("")), + Some(v) => v.to_str().ok(), None => None, } }