Module relay_event_normalization::span::tag_extraction
source · Expand description
Logic for persisting items into span.sentry_tags
and span.measurements
fields.
+
Module relay_event_normalization::span::tag_extraction
source · Expand description
Logic for persisting items into span.sentry_tags
and span.measurements
fields.
These are then used for metrics extraction.
Enums§
- A list of supported span tags for tag extraction.
Statics§
- Regex with a capture group to extract the HTTP method from a string.
Functions§
- Copies specific numeric values from span data to span measurements.
- Extract segment span specific tags and measurements from the event and materialize them into the spans.
- Extracts tags and measurements from event and spans and materializes them into the spans.
- Writes fields into
Span::sentry_tags
.
Derive Macro relay_event_schema::processor::ProcessValue
#[derive(ProcessValue)]
+ProcessValue in relay_event_schema::processor - Rust Derive Macro relay_event_schema::processor::ProcessValue
source · #[derive(ProcessValue)]
{
// Attributes available to this derive:
#[metastructure]
diff --git a/src/relay_dynamic_config/defaults.rs.html b/src/relay_dynamic_config/defaults.rs.html
index e246e620c9..e114f86389 100644
--- a/src/relay_dynamic_config/defaults.rs.html
+++ b/src/relay_dynamic_config/defaults.rs.html
@@ -945,6 +945,14 @@
945
946
947
+948
+949
+950
+951
+952
+953
+954
+955
use relay_base_schema::data_category::DataCategory;
use relay_common::glob2::LazyGlob;
use relay_event_normalization::utils::MAX_DURATION_MOBILE_MS;
@@ -1139,6 +1147,14 @@
let is_app_start = RuleCondition::glob("span.op", "app.start.*")
& RuleCondition::eq("span.description", APP_START_ROOT_SPAN_DESCRIPTIONS);
+ // Metrics for common modules:
+ let is_common = is_app_start.clone()
+ | is_db.clone()
+ | is_resource.clone()
+ | is_http.clone()
+ | is_mobile.clone()
+ | is_interaction.clone();
+
// Metrics for addon modules are only extracted if the feature flag is enabled:
let is_addon = is_ai.clone() | is_queue_op.clone() | is_cache.clone();
@@ -1150,7 +1166,7 @@
category: DataCategory::Span,
mri: "d:spans/exclusive_time@millisecond".into(),
field: Some("span.exclusive_time".into()),
- condition: Some(!is_addon.clone()),
+ condition: Some(!is_addon.clone() & is_common.clone()),
tags: vec![],
},
MetricSpec {
@@ -1225,7 +1241,7 @@
category: DataCategory::Span,
mri: "d:spans/duration@millisecond".into(),
field: Some("span.duration".into()),
- condition: Some(!is_addon.clone()),
+ condition: Some(!is_addon.clone() & is_common.clone()),
tags: vec![],
},
MetricSpec {
diff --git a/src/relay_event_normalization/normalize/span/tag_extraction.rs.html b/src/relay_event_normalization/normalize/span/tag_extraction.rs.html
index 9779ef99ba..cad56df0aa 100644
--- a/src/relay_event_normalization/normalize/span/tag_extraction.rs.html
+++ b/src/relay_event_normalization/normalize/span/tag_extraction.rs.html
@@ -2431,6 +2431,22 @@
2431
2432
2433
+2434
+2435
+2436
+2437
+2438
+2439
+2440
+2441
+2442
+2443
+2444
+2445
+2446
+2447
+2448
+2449
//! Logic for persisting items into `span.sentry_tags` and `span.measurements` fields.
//! These are then used for metrics extraction.
use std::borrow::Cow;
@@ -4863,5 +4879,21 @@
"admin@sentry.io"
);
}
+
+ #[test]
+ fn long_descriptions_are_truncated() {
+ let json = r#"{
+ "description": "SELECT column FROM table1 WHERE another_col = %s AND yet_another_col = something_very_longgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg",
+ "op": "db"
+ }"#;
+
+ let span = Annotated::<Span>::from_json(json)
+ .unwrap()
+ .into_value()
+ .unwrap();
+
+ let tags = extract_tags(&span, 200, None, None, false, None);
+ assert_eq!(tags[&SpanTagKey::Description], "SELECT column FROM table1 WHERE another_col = %s AND yet_another_col = something_very_longggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg*");
+ }
}