fix: trace's span name (#3916)

This commit is contained in:
Taiming Liu
2024-07-06 22:16:55 +08:00
committed by GitHub
parent e2bdcba658
commit 4bff0be32e
5 changed files with 95 additions and 59 deletions
+39 -15
View File
@@ -45,7 +45,7 @@ use crate::{
utils::{
functions,
http::{
get_or_create_trace_id_and_span, get_search_type_from_request,
get_or_create_trace_id, get_search_type_from_request,
get_stream_type_from_request, get_use_cache_from_request,
},
},
@@ -142,8 +142,15 @@ pub async fn search(
let org_id = org_id.into_inner();
let mut range_error = String::new();
let cfg = get_config();
let (trace_id, http_span) =
get_or_create_trace_id_and_span(in_req.headers(), format!("api/{org_id}/_search"));
let http_span = if cfg.common.tracing_search_enabled {
Some(tracing::info_span!(
"/api/{org_id}/_search",
org_id = org_id.clone()
))
} else {
None
};
let trace_id = get_or_create_trace_id(in_req.headers(), &http_span);
let query = web::Query::<HashMap<String, String>>::from_query(in_req.query_string()).unwrap();
let stream_type = match get_stream_type_from_request(&query) {
@@ -548,10 +555,16 @@ pub async fn around(
let started_at = Utc::now().timestamp_micros();
let (org_id, stream_name) = path.into_inner();
let cfg = get_config();
let (trace_id, http_span) = get_or_create_trace_id_and_span(
in_req.headers(),
format!("/api/{org_id}/{stream_name}/_around"),
);
let http_span = if cfg.common.tracing_search_enabled {
Some(tracing::info_span!(
"/api/{org_id}/{stream_name}/_around",
org_id = org_id.clone(),
stream_name = stream_name.clone()
))
} else {
None
};
let trace_id = get_or_create_trace_id(in_req.headers(), &http_span);
let mut uses_fn = false;
let query = web::Query::<HashMap<String, String>>::from_query(in_req.query_string()).unwrap();
@@ -885,10 +898,16 @@ pub async fn values(
Some(v) => v.to_str().unwrap(),
None => "",
};
let (trace_id, http_span) = get_or_create_trace_id_and_span(
in_req.headers(),
format!("/api/{org_id}/{stream_name}/_values"),
);
let http_span = if config::get_config().common.tracing_search_enabled {
Some(tracing::info_span!(
"/api/{org_id}/{stream_name}/_values",
org_id = org_id.clone(),
stream_name = stream_name.clone()
))
} else {
None
};
let trace_id = get_or_create_trace_id(in_req.headers(), &http_span);
if fields.len() == 1
&& DISTINCT_FIELDS.contains(&fields[0])
@@ -1471,10 +1490,15 @@ pub async fn search_partition(
) -> Result<HttpResponse, Error> {
let start = std::time::Instant::now();
let cfg = get_config();
let (trace_id, http_span) = get_or_create_trace_id_and_span(
in_req.headers(),
format!("/api/{org_id}/_search_partition"),
);
let http_span = if cfg.common.tracing_search_enabled {
Some(tracing::info_span!(
"/api/{org_id}/_search_partition",
org_id = org_id.clone(),
))
} else {
None
};
let trace_id = get_or_create_trace_id(in_req.headers(), &http_span);
let org_id = org_id.into_inner();
let query = web::Query::<HashMap<String, String>>::from_query(in_req.query_string()).unwrap();
@@ -36,7 +36,7 @@ use crate::{
utils::{
functions,
http::{
get_or_create_trace_id_and_span, get_search_type_from_request,
get_or_create_trace_id, get_search_type_from_request,
get_stream_type_from_request,
},
},
@@ -119,8 +119,15 @@ pub async fn search_multi(
let org_id = org_id.into_inner();
let cfg = get_config();
let started_at = Utc::now().timestamp_micros();
let (trace_id, http_span) =
get_or_create_trace_id_and_span(in_req.headers(), format!("/api/{org_id}/_search_multi"));
let http_span = if cfg.common.tracing_search_enabled {
Some(tracing::info_span!(
"/api/{org_id}/_search_multi",
org_id = org_id.clone()
))
} else {
None
};
let trace_id = get_or_create_trace_id(in_req.headers(), &http_span);
let query = web::Query::<HashMap<String, String>>::from_query(in_req.query_string()).unwrap();
let stream_type = match get_stream_type_from_request(&query) {
@@ -419,10 +426,15 @@ pub async fn _search_partition_multi(
) -> Result<HttpResponse, Error> {
let start = std::time::Instant::now();
let cfg = get_config();
let (trace_id, http_span) = get_or_create_trace_id_and_span(
in_req.headers(),
format!("/api/{org_id}/_search_partition_multi"),
);
let http_span = if cfg.common.tracing_search_enabled {
Some(tracing::info_span!(
"/api/{org_id}/_search_partition_multi",
org_id = org_id.clone()
))
} else {
None
};
let trace_id = get_or_create_trace_id(in_req.headers(), &http_span);
let org_id = org_id.into_inner();
let query = web::Query::<HashMap<String, String>>::from_query(in_req.query_string()).unwrap();
@@ -555,10 +567,16 @@ pub async fn around_multi(
let (org_id, stream_names) = path.into_inner();
let cfg = get_config();
let (trace_id, http_span) = get_or_create_trace_id_and_span(
in_req.headers(),
format!("/api/{org_id}/{stream_names}/_around_multi"),
);
let http_span = if cfg.common.tracing_search_enabled {
Some(tracing::info_span!(
"/api/{org_id}/{stream_names}/_around_multi",
org_id = org_id.clone(),
stream_names = stream_names.clone()
))
} else {
None
};
let trace_id = get_or_create_trace_id(in_req.headers(), &http_span);
let stream_names = base64::decode_url(&stream_names)?;
let mut uses_fn = false;
+12 -6
View File
@@ -24,7 +24,7 @@ use tracing::Instrument;
use crate::{
common::{
meta::{self, http::HttpResponse as MetaHttpResponse},
utils::http::get_or_create_trace_id_and_span,
utils::http::get_or_create_trace_id,
},
handler::http::request::{CONTENT_TYPE_JSON, CONTENT_TYPE_PROTO},
service::{search as SearchService, traces::otlp_http},
@@ -129,12 +129,19 @@ pub async fn get_latest_traces(
path: web::Path<(String, String)>,
in_req: HttpRequest,
) -> Result<HttpResponse, Error> {
let cfg = get_config();
let start = std::time::Instant::now();
let (org_id, stream_name) = path.into_inner();
let (trace_id, http_span) = get_or_create_trace_id_and_span(
in_req.headers(),
format!("/api/{org_id}/{stream_name}/traces/latest"),
);
let http_span = if cfg.common.tracing_search_enabled {
Some(tracing::info_span!(
"/api/{org_id}/{stream_name}/traces/latest",
org_id = org_id.clone(),
stream_name = stream_name.clone()
))
} else {
None
};
let trace_id = get_or_create_trace_id(in_req.headers(), &http_span);
let query = web::Query::<HashMap<String, String>>::from_query(in_req.query_string()).unwrap();
@@ -204,7 +211,6 @@ pub async fn get_latest_traces(
metrics::QUERY_PENDING_NUMS
.with_label_values(&[&org_id])
.inc();
let cfg = get_config();
// get a local search queue lock
#[cfg(not(feature = "enterprise"))]
let locker = SearchService::QUEUE_LOCKER.clone();