From 265366c9b51a3ceb625eee3f0a4d86b218b45135 Mon Sep 17 00:00:00 2001 From: Pierre Massat Date: Wed, 29 May 2024 10:22:37 -0400 Subject: [PATCH] feat(spans): Add separate feature flags for add-ons span metrics and indexed spans (#3633) --- CHANGELOG.md | 1 + relay-common/src/glob2.rs | 4 +- relay-dynamic-config/src/defaults.rs | 543 +- relay-dynamic-config/src/feature.rs | 25 +- relay-dynamic-config/src/global.rs | 6 +- relay-dynamic-config/src/metrics.rs | 55 +- relay-event-normalization/src/event.rs | 6 +- relay-server/src/metrics_extraction/event.rs | 117 +- .../src/metrics_extraction/generic.rs | 16 +- ...nt__tests__both_feature_flags_enabled.snap | 7550 +++++++++++++++++ ...extraction__event__tests__only_common.snap | 6343 ++++++++++++++ .../metrics_extraction/transactions/mod.rs | 4 +- relay-server/src/services/processor.rs | 25 +- .../src/services/processor/span/processing.rs | 11 +- relay-server/src/services/project/metrics.rs | 2 +- tests/integration/test_outcome.py | 2 +- tests/integration/test_projectconfigs.py | 2 +- tests/integration/test_spans.py | 8 +- 18 files changed, 14425 insertions(+), 295 deletions(-) create mode 100644 relay-server/src/metrics_extraction/snapshots/relay_server__metrics_extraction__event__tests__both_feature_flags_enabled.snap create mode 100644 relay-server/src/metrics_extraction/snapshots/relay_server__metrics_extraction__event__tests__only_common.snap diff --git a/CHANGELOG.md b/CHANGELOG.md index 31def7f568..7ed6c03636 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ **Features**: - Apply legacy inbound filters to standalone spans. ([#3552](https://github.com/getsentry/relay/pull/3552)) +- Add separate feature flags for add-ons span metrics and indexed spans. ([#3633](https://github.com/getsentry/relay/pull/3633)) **Internal**: diff --git a/relay-common/src/glob2.rs b/relay-common/src/glob2.rs index bdb646e828..7eb425d6e8 100644 --- a/relay-common/src/glob2.rs +++ b/relay-common/src/glob2.rs @@ -251,9 +251,9 @@ pub struct LazyGlob { impl LazyGlob { /// Create a new [`LazyGlob`] from the raw string. - pub fn new(raw: String) -> Self { + pub fn new(raw: impl Into) -> Self { Self { - raw, + raw: raw.into(), glob: OnceLock::new(), } } diff --git a/relay-dynamic-config/src/defaults.rs b/relay-dynamic-config/src/defaults.rs index 30f957d675..a73d5ec501 100644 --- a/relay-dynamic-config/src/defaults.rs +++ b/relay-dynamic-config/src/defaults.rs @@ -1,10 +1,11 @@ use relay_base_schema::data_category::DataCategory; +use relay_common::glob2::LazyGlob; use relay_event_normalization::utils::MAX_DURATION_MOBILE_MS; use relay_protocol::RuleCondition; use serde_json::Number; use crate::metrics::MetricSpec; -use crate::{Feature, MetricExtractionConfig, ProjectConfig, Tag}; +use crate::{Feature, GroupKey, MetricExtractionConfig, ProjectConfig, Tag, TagMapping}; /// A list of `span.op` patterns that indicate databases that should be skipped. const DISABLED_DATABASES: &[&str] = &[ @@ -59,13 +60,6 @@ const QUEUE_SPAN_OPS: &[&str] = &[ /// Depending on feature flags, groups are either enabled or not. /// This configuration is temporarily hard-coded here. It will later be provided by the upstream. pub fn add_span_metrics(project_config: &mut ProjectConfig) { - if !project_config - .features - .has(Feature::ExtractSpansAndSpanMetricsFromEvent) - { - return; - } - let config = project_config .metric_extraction .get_or_insert_with(MetricExtractionConfig::empty); @@ -74,13 +68,28 @@ pub fn add_span_metrics(project_config: &mut ProjectConfig) { return; } - // Enable the hardcoded span metrics group: + let features = &project_config.features; + + // Common span metrics is a requirement for everything else: + if !features.has(Feature::ExtractCommonSpanMetricsFromEvent) { + return; + } + + // Enable the common modules group: config .global_groups - .entry("span_metrics".to_owned()) + .entry(GroupKey::SpanMetricsCommon) .or_default() .is_enabled = true; + if features.has(Feature::ExtractAddonsSpanMetricsFromEvent) { + config + .global_groups + .entry(GroupKey::SpanMetricsAddons) + .or_default() + .is_enabled = true; + } + // Enable transaction metrics for span (score.total), but only if double-write to transactions // is disabled. if !project_config @@ -89,7 +98,7 @@ pub fn add_span_metrics(project_config: &mut ProjectConfig) { { let span_metrics_tx = config .global_groups - .entry("span_metrics_tx".to_owned()) + .entry(GroupKey::SpanMetricsTx) .or_default(); span_metrics_tx.is_enabled = true; } @@ -104,7 +113,7 @@ pub fn add_span_metrics(project_config: &mut ProjectConfig) { /// /// These metrics are added to [`crate::GlobalConfig`] by the service and enabled /// by project configs in sentry. -pub fn hardcoded_span_metrics() -> Vec<(String, Vec)> { +pub fn hardcoded_span_metrics() -> Vec<(GroupKey, Vec, Vec)> { let is_ai = RuleCondition::glob("span.op", "ai.*"); let is_db = RuleCondition::eq("span.sentry_tags.category", "db") @@ -163,129 +172,45 @@ pub fn hardcoded_span_metrics() -> Vec<(String, Vec)> { Number::from_f64(MAX_DURATION_MOBILE_MS).unwrap_or(0.into()), ); - let app_start_condition = duration_condition.clone() - & RuleCondition::glob("span.op", "app.start.*") + let is_app_start = RuleCondition::glob("span.op", "app.start.*") & RuleCondition::eq("span.description", APP_START_ROOT_SPAN_DESCRIPTIONS); - // `exclusive_time_light` excludes transaction tags (and some others) to reduce cardinality. - let exclusive_time_light_condition = (is_db.clone() - | is_ai.clone() - | is_resource.clone() - | is_mobile.clone() - | is_interaction - | is_http.clone() - | is_queue_op.clone() - | is_cache.clone()) - & duration_condition.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(); - let know_modules_condition = (is_db.clone() - | is_resource.clone() - | is_mobile.clone() - | is_http.clone() - | is_queue_op.clone()) - & duration_condition.clone(); - let span_time_tags = vec![ - // All modules: - Tag::with_key("environment") - .from_field("span.sentry_tags.environment") - .always(), - Tag::with_key("span.op") - .from_field("span.sentry_tags.op") - .always(), - Tag::with_key("transaction") - .from_field("span.sentry_tags.transaction") - .always(), - Tag::with_key("transaction.op") - .from_field("span.sentry_tags.transaction.op") - .always(), - // Most modules - Tag::with_key("span.group") - .from_field("span.sentry_tags.group") - .when(is_ai.clone() | know_modules_condition.clone() | app_start_condition.clone()), - Tag::with_key("span.category") - .from_field("span.sentry_tags.category") - .when(is_ai.clone() | know_modules_condition.clone()), - Tag::with_key("span.description") - .from_field("span.sentry_tags.description") - .when(is_ai.clone() | know_modules_condition.clone() | app_start_condition.clone()), - // Know modules: - Tag::with_key("transaction.method") - .from_field("span.sentry_tags.transaction.method") - .when(is_db.clone() | is_mobile.clone() | is_http.clone()), // groups by method + txn, e.g. `GET /users` - Tag::with_key("span.action") - .from_field("span.sentry_tags.action") - .when(is_db.clone()), - Tag::with_key("span.domain") - .from_field("span.sentry_tags.domain") - .when(is_db.clone() | is_resource.clone() | is_http.clone()), - // Mobile module: - Tag::with_key("device.class") - .from_field("span.sentry_tags.device.class") - .when(is_mobile.clone()), - Tag::with_key("os.name") // TODO: might not be needed on both `exclusive_time` metrics - .from_field("span.sentry_tags.os.name") - .when(is_mobile.clone() | app_start_condition.clone()), - Tag::with_key("release") - .from_field("span.sentry_tags.release") - .when(is_mobile.clone() | app_start_condition.clone()), - Tag::with_key("ttfd") - .from_field("span.sentry_tags.ttfd") - .when(is_mobile.clone()), - Tag::with_key("ttid") - .from_field("span.sentry_tags.ttid") - .when(is_mobile.clone()), - Tag::with_key("span.main_thread") - .from_field("span.sentry_tags.main_thread") - .when(is_mobile.clone()), - Tag::with_key("app_start_type") - .from_field("span.sentry_tags.app_start_type") - .when(is_mobile.clone()), - // Resource module: - Tag::with_key("file_extension") - .from_field("span.sentry_tags.file_extension") - .when(is_resource.clone()), - Tag::with_key("resource.render_blocking_status") - .from_field("span.sentry_tags.resource.render_blocking_status") - .when(is_resource.clone()), - // HTTP module: - Tag::with_key("span.status_code") - .from_field("span.sentry_tags.status_code") - .when(is_http.clone()), - // Cache module - Tag::with_key("cache.hit") - .from_field("span.sentry_tags.cache.hit") - .when(is_cache.clone()), - // Queue module - Tag::with_key("messaging.destination.name") - .from_field("span.sentry_tags.messaging.destination.name") - .when(is_queue_op.clone()), - Tag::with_key("trace.status") - .from_field("span.sentry_tags.trace.status") - .when(is_queue_op.clone()), - ]; vec![ ( - "span_metrics".to_owned(), + GroupKey::SpanMetricsCommon, vec![ MetricSpec { category: DataCategory::Span, mri: "c:spans/usage@none".into(), field: None, - condition: None, + condition: Some(!is_addon.clone()), tags: vec![], }, MetricSpec { category: DataCategory::Span, mri: "d:spans/exclusive_time@millisecond".into(), field: Some("span.exclusive_time".into()), - condition: None, - tags: span_time_tags.clone(), + condition: Some(!is_addon.clone()), + tags: vec![], }, MetricSpec { category: DataCategory::Span, mri: "d:spans/exclusive_time_light@millisecond".into(), field: Some("span.exclusive_time".into()), - condition: Some(exclusive_time_light_condition.clone()), + condition: Some( + // The `!is_addon` check might be redundant, but we want to make sure that + // `exclusive_time_light` is not extracted twice. + !is_addon.clone() + & (is_db.clone() + | is_resource.clone() + | is_mobile.clone() + | is_interaction.clone() + | is_http.clone()) + & duration_condition.clone(), + ), tags: vec![ Tag::with_key("environment") .from_field("span.sentry_tags.environment") @@ -293,9 +218,7 @@ pub fn hardcoded_span_metrics() -> Vec<(String, Vec)> { is_db.clone() | is_resource.clone() | is_mobile.clone() - | is_http.clone() - | is_cache.clone() - | is_queue_op.clone(), + | is_http.clone(), ), Tag::with_key("transaction.op") .from_field("span.sentry_tags.transaction.op") @@ -339,45 +262,14 @@ pub fn hardcoded_span_metrics() -> Vec<(String, Vec)> { Tag::with_key("span.status_code") .from_field("span.sentry_tags.status_code") .when(is_http.clone()), - // Cache module - Tag::with_key("cache.hit") - .from_field("span.sentry_tags.cache.hit") - .when(is_cache.clone()), - // Queue module - Tag::with_key("messaging.destination.name") - .from_field("span.sentry_tags.messaging.destination.name") - .when(is_queue_op.clone()), - Tag::with_key("trace.status") - .from_field("span.sentry_tags.trace.status") - .when(is_queue_op.clone()), ], }, MetricSpec { category: DataCategory::Span, mri: "d:spans/duration@millisecond".into(), field: Some("span.duration".into()), - condition: None, - tags: span_time_tags.clone(), - }, - MetricSpec { - category: DataCategory::Span, - mri: "d:spans/cache.item_size@byte".into(), - field: Some("span.measurements.cache.item_size.value".into()), - condition: Some(is_cache.clone()), - tags: vec![ - Tag::with_key("environment") - .from_field("span.sentry_tags.environment") - .always(), // already guarded by condition on metric - Tag::with_key("span.op") - .from_field("span.sentry_tags.op") - .always(), // already guarded by condition on metric - Tag::with_key("transaction") - .from_field("span.sentry_tags.transaction") - .always(), // already guarded by condition on metric - Tag::with_key("cache.hit") - .from_field("span.sentry_tags.cache.hit") - .always(), // already guarded by condition on metric - ], + condition: Some(!is_addon.clone()), + tags: vec![], }, MetricSpec { category: DataCategory::Span, @@ -454,7 +346,7 @@ pub fn hardcoded_span_metrics() -> Vec<(String, Vec)> { mri: "d:spans/http.response_transfer_size@byte".into(), field: Some("span.data.http\\.response_transfer_size".into()), condition: Some( - is_resource + is_resource.clone() & RuleCondition::gt("span.data.http\\.response_transfer_size", 0), ), tags: vec![ @@ -481,76 +373,6 @@ pub fn hardcoded_span_metrics() -> Vec<(String, Vec)> { .always(), // already guarded by condition on metric ], }, - MetricSpec { - category: DataCategory::Span, - mri: "c:spans/ai.total_tokens.used@none".into(), - field: Some("span.measurements.ai_total_tokens_used.value".into()), - condition: Some(is_ai.clone()), - tags: vec![ - Tag::with_key("span.op") - .from_field("span.sentry_tags.op") - .always(), - Tag::with_key("environment") - .from_field("span.sentry_tags.environment") - .always(), - Tag::with_key("release") - .from_field("span.sentry_tags.release") - .always(), - Tag::with_key("span.origin") - .from_field("span.origin") - .always(), - Tag::with_key("span.category") - .from_field("span.sentry_tags.category") - .always(), // already guarded by condition on metric - Tag::with_key("span.ai.pipeline.group") - .from_field("span.sentry_tags.ai_pipeline_group") - .always(), // already guarded by condition on metric - Tag::with_key("span.description") - .from_field("span.sentry_tags.description") - .always(), // already guarded by condition on metric - Tag::with_key("span.group") - .from_field("span.sentry_tags.group") - .always(), // already guarded by condition on metric - Tag::with_key("span.op") - .from_field("span.sentry_tags.op") - .always(), // already guarded by condition on metric - ], - }, - MetricSpec { - category: DataCategory::Span, - mri: "c:spans/ai.total_cost@usd".into(), - field: Some("span.measurements.ai_total_cost.value".into()), - condition: Some(is_ai.clone()), - tags: vec![ - Tag::with_key("span.op") - .from_field("span.sentry_tags.op") - .always(), - Tag::with_key("environment") - .from_field("span.sentry_tags.environment") - .always(), - Tag::with_key("release") - .from_field("span.sentry_tags.release") - .always(), - Tag::with_key("span.origin") - .from_field("span.origin") - .always(), - Tag::with_key("span.category") - .from_field("span.sentry_tags.category") - .always(), // already guarded by condition on metric - Tag::with_key("span.ai.pipeline.group") - .from_field("span.sentry_tags.ai_pipeline_group") - .always(), // already guarded by condition on metric - Tag::with_key("span.description") - .from_field("span.sentry_tags.description") - .always(), // already guarded by condition on metric - Tag::with_key("span.group") - .from_field("span.sentry_tags.group") - .always(), // already guarded by condition on metric - Tag::with_key("span.op") - .from_field("span.sentry_tags.op") - .always(), // already guarded by condition on metric - ], - }, MetricSpec { category: DataCategory::Span, mri: "d:spans/webvital.score.total@ratio".into(), @@ -786,6 +608,254 @@ pub fn hardcoded_span_metrics() -> Vec<(String, Vec)> { .always(), ], }, + ], + vec![TagMapping { + metrics: vec![ + LazyGlob::new("d:spans/duration@millisecond"), + LazyGlob::new("d:spans/exclusive_time@millisecond"), + ], + tags: vec![ + // All modules: + Tag::with_key("environment") + .from_field("span.sentry_tags.environment") + .always(), + Tag::with_key("span.op") + .from_field("span.sentry_tags.op") + .always(), + Tag::with_key("transaction") + .from_field("span.sentry_tags.transaction") + .always(), + Tag::with_key("transaction.op") + .from_field("span.sentry_tags.transaction.op") + .always(), + Tag::with_key("span.group") + .from_field("span.sentry_tags.group") + .when( + (is_app_start.clone() + | is_db.clone() + | is_resource.clone() + | is_mobile.clone() + | is_http.clone() + | is_ai.clone() // guarded by is_addon + | is_queue_op.clone()) // guarded by is_addon + & duration_condition.clone(), + ), + Tag::with_key("span.category") + .from_field("span.sentry_tags.category") + .when( + (is_db.clone() + | is_ai.clone() + | is_resource.clone() + | is_mobile.clone() + | is_http.clone() + | is_queue_op.clone() + | is_ai.clone() // guarded by is_addon + | is_queue_op.clone()) // guarded by is_addon + & duration_condition.clone(), + ), + Tag::with_key("span.description") + .from_field("span.sentry_tags.description") + .when( + (is_app_start.clone() + | is_ai.clone() + | is_db.clone() + | is_resource.clone() + | is_mobile.clone() + | is_http.clone() + | is_queue_op.clone()| is_ai.clone() // guarded by is_addon + | is_queue_op.clone()) // guarded by is_addon) + & duration_condition.clone(), + ), + // Know modules: + Tag::with_key("transaction.method") + .from_field("span.sentry_tags.transaction.method") + .when(is_db.clone() | is_mobile.clone() | is_http.clone()), // groups by method + txn, e.g. `GET /users` + Tag::with_key("span.action") + .from_field("span.sentry_tags.action") + .when(is_db.clone()), + Tag::with_key("span.domain") + .from_field("span.sentry_tags.domain") + .when(is_db.clone() | is_resource.clone() | is_http.clone()), + // Mobile module: + Tag::with_key("device.class") + .from_field("span.sentry_tags.device.class") + .when(is_mobile.clone()), + Tag::with_key("os.name") // TODO: might not be needed on both `exclusive_time` metrics + .from_field("span.sentry_tags.os.name") + .when( + is_mobile.clone() | (is_app_start.clone() & duration_condition.clone()), + ), + Tag::with_key("release") + .from_field("span.sentry_tags.release") + .when( + is_mobile.clone() | (is_app_start.clone() & duration_condition.clone()), + ), + Tag::with_key("ttfd") + .from_field("span.sentry_tags.ttfd") + .when(is_mobile.clone()), + Tag::with_key("ttid") + .from_field("span.sentry_tags.ttid") + .when(is_mobile.clone()), + Tag::with_key("span.main_thread") + .from_field("span.sentry_tags.main_thread") + .when(is_mobile.clone()), + Tag::with_key("app_start_type") + .from_field("span.sentry_tags.app_start_type") + .when(is_mobile.clone()), + // Resource module: + Tag::with_key("file_extension") + .from_field("span.sentry_tags.file_extension") + .when(is_resource.clone()), + Tag::with_key("resource.render_blocking_status") + .from_field("span.sentry_tags.resource.render_blocking_status") + .when(is_resource.clone()), + // HTTP module: + Tag::with_key("span.status_code") + .from_field("span.sentry_tags.status_code") + .when(is_http.clone()), + ], + }], + ), + ( + GroupKey::SpanMetricsAddons, + vec![ + // all addon modules + MetricSpec { + category: DataCategory::Span, + mri: "c:spans/usage@none".into(), + field: None, + condition: Some(is_addon.clone()), + tags: vec![], + }, + MetricSpec { + category: DataCategory::Span, + mri: "d:spans/exclusive_time@millisecond".into(), + field: Some("span.exclusive_time".into()), + condition: Some(is_addon.clone()), + tags: vec![], + }, + MetricSpec { + category: DataCategory::Span, + mri: "d:spans/exclusive_time_light@millisecond".into(), + field: Some("span.exclusive_time".into()), + condition: Some(is_addon.clone() & duration_condition.clone()), + tags: vec![ + Tag::with_key("environment") + .from_field("span.sentry_tags.environment") + .when(is_cache.clone() | is_queue_op.clone()), + Tag::with_key("span.category") + .from_field("span.sentry_tags.category") + .always(), + Tag::with_key("span.description") + .from_field("span.sentry_tags.description") + .always(), + Tag::with_key("span.group") + .from_field("span.sentry_tags.group") + .always(), + Tag::with_key("span.op") + .from_field("span.sentry_tags.op") + .always(), + ], + }, + MetricSpec { + category: DataCategory::Span, + mri: "d:spans/duration@millisecond".into(), + field: Some("span.duration".into()), + condition: Some(is_addon), + tags: vec![], + }, + // cache module + MetricSpec { + category: DataCategory::Span, + mri: "d:spans/cache.item_size@byte".into(), + field: Some("span.measurements.cache.item_size.value".into()), + condition: Some(is_cache.clone()), + tags: vec![ + Tag::with_key("environment") + .from_field("span.sentry_tags.environment") + .always(), // already guarded by condition on metric + Tag::with_key("span.op") + .from_field("span.sentry_tags.op") + .always(), // already guarded by condition on metric + Tag::with_key("transaction") + .from_field("span.sentry_tags.transaction") + .always(), // already guarded by condition on metric + Tag::with_key("cache.hit") + .from_field("span.sentry_tags.cache.hit") + .always(), // already guarded by condition on metric + ], + }, + // ai module + MetricSpec { + category: DataCategory::Span, + mri: "c:spans/ai.total_tokens.used@none".into(), + field: Some("span.measurements.ai_total_tokens_used.value".into()), + condition: Some(is_ai.clone()), + tags: vec![ + Tag::with_key("span.op") + .from_field("span.sentry_tags.op") + .always(), + Tag::with_key("environment") + .from_field("span.sentry_tags.environment") + .always(), + Tag::with_key("release") + .from_field("span.sentry_tags.release") + .always(), + Tag::with_key("span.origin") + .from_field("span.origin") + .always(), + Tag::with_key("span.category") + .from_field("span.sentry_tags.category") + .always(), // already guarded by condition on metric + Tag::with_key("span.ai.pipeline.group") + .from_field("span.sentry_tags.ai_pipeline_group") + .always(), // already guarded by condition on metric + Tag::with_key("span.description") + .from_field("span.sentry_tags.description") + .always(), // already guarded by condition on metric + Tag::with_key("span.group") + .from_field("span.sentry_tags.group") + .always(), // already guarded by condition on metric + Tag::with_key("span.op") + .from_field("span.sentry_tags.op") + .always(), // already guarded by condition on metric + ], + }, + MetricSpec { + category: DataCategory::Span, + mri: "c:spans/ai.total_cost@usd".into(), + field: Some("span.measurements.ai_total_cost.value".into()), + condition: Some(is_ai.clone()), + tags: vec![ + Tag::with_key("span.op") + .from_field("span.sentry_tags.op") + .always(), + Tag::with_key("environment") + .from_field("span.sentry_tags.environment") + .always(), + Tag::with_key("release") + .from_field("span.sentry_tags.release") + .always(), + Tag::with_key("span.origin") + .from_field("span.origin") + .always(), + Tag::with_key("span.category") + .from_field("span.sentry_tags.category") + .always(), // already guarded by condition on metric + Tag::with_key("span.ai.pipeline.group") + .from_field("span.sentry_tags.ai_pipeline_group") + .always(), // already guarded by condition on metric + Tag::with_key("span.description") + .from_field("span.sentry_tags.description") + .always(), // already guarded by condition on metric + Tag::with_key("span.group") + .from_field("span.sentry_tags.group") + .always(), // already guarded by condition on metric + Tag::with_key("span.op") + .from_field("span.sentry_tags.op") + .always(), // already guarded by condition on metric + ], + }, // queue module MetricSpec { category: DataCategory::Span, mri: "g:spans/messaging.message.receive.latency@millisecond".into(), @@ -807,9 +877,37 @@ pub fn hardcoded_span_metrics() -> Vec<(String, Vec)> { ], }, ], + vec![ + TagMapping { + metrics: vec![ + LazyGlob::new("d:spans/duration@millisecond"), + LazyGlob::new("d:spans/exclusive_time_light@millisecond"), + LazyGlob::new("d:spans/exclusive_time@millisecond"), + ], + tags: vec![ + // cache module + Tag::with_key("cache.hit") + .from_field("span.sentry_tags.cache.hit") + .when(is_cache.clone()), + // queue module + Tag::with_key("messaging.destination.name") + .from_field("span.sentry_tags.messaging.destination.name") + .when(is_queue_op.clone()), + Tag::with_key("trace.status") + .from_field("span.sentry_tags.trace.status") + .when(is_queue_op.clone()), + ], + }, + TagMapping { + metrics: vec![LazyGlob::new("d:spans/exclusive_time_light@millisecond")], + tags: vec![Tag::with_key("environment") + .from_field("span.sentry_tags.environment") + .when(is_cache.clone())], + }, + ], ), ( - "span_metrics_tx".to_owned(), + GroupKey::SpanMetricsTx, vec![MetricSpec { category: DataCategory::Span, mri: "d:transactions/measurements.score.total@ratio".into(), @@ -840,6 +938,7 @@ pub fn hardcoded_span_metrics() -> Vec<(String, Vec)> { .always(), // already guarded by condition on metric ], }], + vec![], ), ] } diff --git a/relay-dynamic-config/src/feature.rs b/relay-dynamic-config/src/feature.rs index 0b4daad668..86af13fcd2 100644 --- a/relay-dynamic-config/src/feature.rs +++ b/relay-dynamic-config/src/feature.rs @@ -35,11 +35,6 @@ pub enum Feature { /// Serialized as `organizations:device-class-synthesis`. #[serde(rename = "organizations:device-class-synthesis")] DeviceClassSynthesis, - /// Enables metric extraction from spans. - /// - /// Serialized as `projects:span-metrics-extraction`. - #[serde(rename = "projects:span-metrics-extraction")] - ExtractSpansAndSpanMetricsFromEvent, /// Allow ingestion of metrics in the "custom" namespace. /// /// Serialized as `organizations:custom-metrics`. @@ -90,6 +85,24 @@ pub enum Feature { #[serde(rename = "projects:extract-transaction-from-segment-span")] ExtractTransactionFromSegmentSpan, + /// Enables metric extraction from spans for common modules. + /// + /// Serialized as `projects:span-metrics-extraction`. + #[serde(rename = "projects:span-metrics-extraction")] + ExtractCommonSpanMetricsFromEvent, + + /// Enables metric extraction from spans for addon modules. + /// + /// Serialized as `projects:span-metrics-extraction-addons`. + #[serde(rename = "projects:span-metrics-extraction-addons")] + ExtractAddonsSpanMetricsFromEvent, + + /// When enabled, spans will be extracted from a transaction. + /// + /// Serialized as `projects:indexed-spans-extraction`. + #[serde(rename = "organizations:indexed-spans-extraction")] + ExtractSpansFromEvent, + /// Deprecated, still forwarded for older downstream Relays. #[doc(hidden)] #[serde(rename = "organizations:transaction-name-mark-scrubbed-as-sanitized")] @@ -109,7 +122,7 @@ pub enum Feature { /// Deprecated, still forwarded for older downstream Relays. #[doc(hidden)] #[serde(rename = "projects:span-metrics-extraction-all-modules")] - Deprected6, + Deprecated6, /// Forward compatibility. #[doc(hidden)] #[serde(other)] diff --git a/relay-dynamic-config/src/global.rs b/relay-dynamic-config/src/global.rs index e332e82244..13ff09ca23 100644 --- a/relay-dynamic-config/src/global.rs +++ b/relay-dynamic-config/src/global.rs @@ -81,14 +81,14 @@ impl GlobalConfig { /// - Adds hard-coded groups to metrics extraction configs. pub fn normalize(&mut self) { if let ErrorBoundary::Ok(config) = &mut self.metric_extraction { - for (group_name, metrics) in defaults::hardcoded_span_metrics() { + for (group_name, metrics, tags) in defaults::hardcoded_span_metrics() { // We only define these groups if they haven't been defined by the upstream yet. // This ensures that the innermost Relay always defines the metrics. if let Entry::Vacant(entry) = config.groups.entry(group_name) { entry.insert(MetricExtractionGroup { is_enabled: false, // must be enabled via project config metrics, - tags: Default::default(), + tags, }); } } @@ -201,7 +201,7 @@ pub struct Options { /// Overall sampling of span extraction. /// /// This number represents the fraction of transactions for which - /// spans are extracted. It applies on top of [`crate::Feature::ExtractSpansAndSpanMetricsFromEvent`], + /// spans are extracted. It applies on top of [`crate::Feature::ExtractCommonSpanMetricsFromEvent`], /// so both feature flag and sample rate need to be enabled to get any spans extracted. /// /// `None` is the default and interpreted as a value of 1.0 (extract everything). diff --git a/relay-dynamic-config/src/metrics.rs b/relay-dynamic-config/src/metrics.rs index f504bef380..bb641af2cc 100644 --- a/relay-dynamic-config/src/metrics.rs +++ b/relay-dynamic-config/src/metrics.rs @@ -1,11 +1,15 @@ //! Dynamic configuration for metrics extraction from sessions and transactions. +use core::fmt; use std::collections::{BTreeMap, BTreeSet}; +use std::convert::Infallible; +use std::str::FromStr; use relay_base_schema::data_category::DataCategory; use relay_cardinality::CardinalityLimit; use relay_common::glob2::LazyGlob; use relay_common::glob3::GlobPatterns; +use relay_common::impl_str_serde; use relay_protocol::RuleCondition; use serde::{Deserialize, Serialize}; @@ -173,7 +177,7 @@ impl TransactionMetricsConfig { } /// Combined view of global and project-specific metrics extraction configs. -#[derive(Debug, Clone)] +#[derive(Debug, Clone, Copy)] pub struct CombinedMetricExtractionConfig<'a> { global: &'a MetricExtractionGroups, project: &'a MetricExtractionConfig, @@ -185,7 +189,7 @@ impl<'a> CombinedMetricExtractionConfig<'a> { for key in project.global_groups.keys() { if !global.groups.contains_key(key) { relay_log::error!( - "Metrics group configured for project missing in global config: {key}" + "Metrics group configured for project missing in global config: {key:?}" ) } } @@ -238,7 +242,7 @@ impl<'a> From<&'a MetricExtractionConfig> for CombinedMetricExtractionConfig<'a> pub struct MetricExtractionGroups { /// Mapping from group name to metrics specs & tags. #[serde(skip_serializing_if = "BTreeMap::is_empty")] - pub groups: BTreeMap, + pub groups: BTreeMap, } impl MetricExtractionGroups { @@ -286,7 +290,7 @@ pub struct MetricExtractionConfig { /// The groups themselves are configured in [`crate::GlobalConfig`], /// but can be enabled or disabled here. #[serde(default, skip_serializing_if = "BTreeMap::is_empty")] - pub global_groups: BTreeMap, + pub global_groups: BTreeMap, /// A list of metric specifications to extract. #[serde(default, skip_serializing_if = "Vec::is_empty")] @@ -364,6 +368,49 @@ pub struct MetricExtractionGroupOverride { pub is_enabled: bool, } +/// Enumeration of keys in [`MetricExtractionGroups`]. In JSON, this is simply a string. +#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord)] +pub enum GroupKey { + /// Metric extracted for all plans. + SpanMetricsCommon, + /// "addon" metrics. + SpanMetricsAddons, + /// Metrics extracted from spans in the transaction namespace. + SpanMetricsTx, + /// Any other group defined by the upstream. + Other(String), +} + +impl fmt::Display for GroupKey { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!( + f, + "{}", + match self { + GroupKey::SpanMetricsCommon => "span_metrics_common", + GroupKey::SpanMetricsAddons => "span_metrics_addons", + GroupKey::SpanMetricsTx => "span_metrics_tx", + GroupKey::Other(s) => &s, + } + ) + } +} + +impl FromStr for GroupKey { + type Err = Infallible; + + fn from_str(s: &str) -> Result { + Ok(match s { + "span_metrics_common" => GroupKey::SpanMetricsCommon, + "span_metrics_addons" => GroupKey::SpanMetricsAddons, + "span_metrics_tx" => GroupKey::SpanMetricsTx, + s => GroupKey::Other(s.to_owned()), + }) + } +} + +impl_str_serde!(GroupKey, "a metrics extraction group key"); + /// Specification for a metric to extract from some data. #[derive(Clone, Debug, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] diff --git a/relay-event-normalization/src/event.rs b/relay-event-normalization/src/event.rs index 47cfda5c3a..c3655bbab4 100644 --- a/relay-event-normalization/src/event.rs +++ b/relay-event-normalization/src/event.rs @@ -2152,17 +2152,17 @@ mod tests { version: 1, costs: vec![ ModelCost { - model_id: LazyGlob::new("claude-2*".into()), + model_id: LazyGlob::new("claude-2*"), for_completion: false, cost_per_1k_tokens: 1.0, }, ModelCost { - model_id: LazyGlob::new("gpt4-21*".into()), + model_id: LazyGlob::new("gpt4-21*"), for_completion: false, cost_per_1k_tokens: 2.0, }, ModelCost { - model_id: LazyGlob::new("gpt4-21*".into()), + model_id: LazyGlob::new("gpt4-21*"), for_completion: true, cost_per_1k_tokens: 20.0, }, diff --git a/relay-server/src/metrics_extraction/event.rs b/relay-server/src/metrics_extraction/event.rs index f765b2f7c2..a6049008ba 100644 --- a/relay-server/src/metrics_extraction/event.rs +++ b/relay-server/src/metrics_extraction/event.rs @@ -48,7 +48,7 @@ impl Extractable for Span { pub fn extract_metrics( event: &Event, spans_extracted: bool, - config: &CombinedMetricExtractionConfig<'_>, + config: CombinedMetricExtractionConfig<'_>, max_tag_value_size: usize, span_extraction_sample_rate: Option, ) -> Vec { @@ -65,7 +65,7 @@ pub fn extract_metrics( fn extract_span_metrics_for_event( event: &Event, - config: &CombinedMetricExtractionConfig<'_>, + config: CombinedMetricExtractionConfig<'_>, max_tag_value_size: usize, output: &mut Vec, ) { @@ -90,7 +90,6 @@ mod tests { use chrono::{DateTime, Utc}; use insta::assert_debug_snapshot; - use once_cell::sync::Lazy; use relay_dynamic_config::{ Feature, FeatureSet, GlobalConfig, MetricExtractionConfig, MetricExtractionGroups, ProjectConfig, @@ -101,31 +100,35 @@ mod tests { use super::*; - static GLOBAL_CONFIG: Lazy = Lazy::new(|| { + struct OwnedConfig { + global: MetricExtractionGroups, + project: MetricExtractionConfig, + } + + impl OwnedConfig { + fn combined(&self) -> CombinedMetricExtractionConfig { + CombinedMetricExtractionConfig::new(&self.global, &self.project) + } + } + + fn combined_config(features: impl Into>) -> OwnedConfig { let mut global = GlobalConfig::default(); global.normalize(); // defines metrics extraction rules - global.metric_extraction.ok().unwrap() - }); + let global = global.metric_extraction.ok().unwrap(); - static PROJECT_CONFIG: Lazy = Lazy::new(|| { - let features = FeatureSet(BTreeSet::from([ - Feature::ExtractSpansAndSpanMetricsFromEvent, - ])); + let features = FeatureSet(features.into()); let mut project = ProjectConfig { features, ..ProjectConfig::default() }; project.sanitize(); // enables metrics extraction rules - project.metric_extraction.ok().unwrap() - }); + let project = project.metric_extraction.ok().unwrap(); - fn combined_config() -> CombinedMetricExtractionConfig<'static> { - CombinedMetricExtractionConfig::new(&GLOBAL_CONFIG, &PROJECT_CONFIG) + OwnedConfig { global, project } } - #[test] - fn test_extract_span_metrics() { + fn extract_span_metrics(features: impl Into>) -> Vec { let json = r#" { "type": "transaction", @@ -1177,7 +1180,40 @@ mod tests { }, ); - let metrics = extract_metrics(event.value().unwrap(), false, &combined_config(), 200, None); + extract_metrics( + event.value().unwrap(), + false, + combined_config(features).combined(), + 200, + None, + ) + } + + #[test] + fn no_feature_flags_enabled() { + let metrics = extract_span_metrics([]); + assert!(metrics.is_empty()); + } + + #[test] + fn only_common() { + let metrics = extract_span_metrics([Feature::ExtractCommonSpanMetricsFromEvent]); + insta::assert_debug_snapshot!(metrics); + } + + #[test] + fn only_addons() { + // Nothing is extracted without the common flag: + let metrics = extract_span_metrics([Feature::ExtractAddonsSpanMetricsFromEvent]); + assert!(metrics.is_empty()); + } + + #[test] + fn both_feature_flags_enabled() { + let metrics = extract_span_metrics([ + Feature::ExtractCommonSpanMetricsFromEvent, + Feature::ExtractAddonsSpanMetricsFromEvent, + ]); insta::assert_debug_snapshot!(metrics); } @@ -1339,7 +1375,13 @@ mod tests { }, ); - let metrics = extract_metrics(event.value().unwrap(), false, &combined_config(), 200, None); + let metrics = extract_metrics( + event.value().unwrap(), + false, + combined_config([Feature::ExtractCommonSpanMetricsFromEvent]).combined(), + 200, + None, + ); insta::assert_debug_snapshot!((&event.value().unwrap().spans, metrics)); } @@ -1390,7 +1432,13 @@ mod tests { "#; let event = Annotated::from_json(json).unwrap(); - let metrics = extract_metrics(event.value().unwrap(), false, &combined_config(), 200, None); + let metrics = extract_metrics( + event.value().unwrap(), + false, + combined_config([Feature::ExtractCommonSpanMetricsFromEvent]).combined(), + 200, + None, + ); // When transaction.op:ui.load and mobile:true, HTTP spans still get both // exclusive_time metrics: @@ -1416,7 +1464,13 @@ mod tests { }, ); - let metrics = extract_metrics(event.value().unwrap(), false, &combined_config(), 200, None); + let metrics = extract_metrics( + event.value().unwrap(), + false, + combined_config([Feature::ExtractCommonSpanMetricsFromEvent]).combined(), + 200, + None, + ); let usage_metrics = metrics .into_iter() @@ -1441,7 +1495,10 @@ mod tests { span.op.set_value(Some(span_op.into())); span.exclusive_time.set_value(Some(duration_millis)); - generic::extract_metrics(&span, &combined_config()) + generic::extract_metrics( + &span, + combined_config([Feature::ExtractCommonSpanMetricsFromEvent]).combined(), + ) } #[test] @@ -1551,7 +1608,10 @@ mod tests { .unwrap() .into_value() .unwrap(); - let metrics = generic::extract_metrics(&span, &combined_config()); + let metrics = generic::extract_metrics( + &span, + combined_config([Feature::ExtractCommonSpanMetricsFromEvent]).combined(), + ); assert!(!metrics.is_empty()); for metric in metrics { @@ -1591,7 +1651,10 @@ mod tests { } "#; let span = Annotated::::from_json(json).unwrap(); - let metrics = generic::extract_metrics(span.value().unwrap(), &combined_config()); + let metrics = generic::extract_metrics( + span.value().unwrap(), + combined_config([Feature::ExtractCommonSpanMetricsFromEvent]).combined(), + ); for mri in [ "d:spans/webvital.inp@millisecond", @@ -1624,7 +1687,13 @@ mod tests { "#; let event = Annotated::::from_json(event).unwrap(); - let metrics = extract_metrics(event.value().unwrap(), false, &combined_config(), 200, None); + let metrics = extract_metrics( + event.value().unwrap(), + false, + combined_config([Feature::ExtractCommonSpanMetricsFromEvent]).combined(), + 200, + None, + ); assert_eq!(metrics.len(), 4); diff --git a/relay-server/src/metrics_extraction/generic.rs b/relay-server/src/metrics_extraction/generic.rs index b1f4f1b8e2..18ca1a9c94 100644 --- a/relay-server/src/metrics_extraction/generic.rs +++ b/relay-server/src/metrics_extraction/generic.rs @@ -26,7 +26,7 @@ pub trait Extractable: Getter { /// /// Any MRI can be defined multiple times in the config (this will create multiple buckets), but /// for every tag in a bucket, there can be only one value. The first encountered tag value wins. -pub fn extract_metrics(instance: &T, config: &CombinedMetricExtractionConfig<'_>) -> Vec +pub fn extract_metrics(instance: &T, config: CombinedMetricExtractionConfig<'_>) -> Vec where T: Extractable, { @@ -199,7 +199,7 @@ mod tests { let metrics = extract_metrics( event.value().unwrap(), - &CombinedMetricExtractionConfig::from(&config), + CombinedMetricExtractionConfig::from(&config), ); insta::assert_debug_snapshot!(metrics, @r###" [ @@ -247,7 +247,7 @@ mod tests { let metrics = extract_metrics( event.value().unwrap(), - &CombinedMetricExtractionConfig::from(&config), + CombinedMetricExtractionConfig::from(&config), ); insta::assert_debug_snapshot!(metrics, @r###" [ @@ -299,7 +299,7 @@ mod tests { let metrics = extract_metrics( event.value().unwrap(), - &CombinedMetricExtractionConfig::from(&config), + CombinedMetricExtractionConfig::from(&config), ); insta::assert_debug_snapshot!(metrics, @r###" [ @@ -363,7 +363,7 @@ mod tests { let metrics = extract_metrics( event.value().unwrap(), - &CombinedMetricExtractionConfig::from(&config), + CombinedMetricExtractionConfig::from(&config), ); insta::assert_debug_snapshot!(metrics, @r###" [ @@ -428,7 +428,7 @@ mod tests { let metrics = extract_metrics( event.value().unwrap(), - &CombinedMetricExtractionConfig::from(&config), + CombinedMetricExtractionConfig::from(&config), ); insta::assert_debug_snapshot!(metrics, @r###" [ @@ -495,7 +495,7 @@ mod tests { let metrics = extract_metrics( event.value().unwrap(), - &CombinedMetricExtractionConfig::from(&config), + CombinedMetricExtractionConfig::from(&config), ); insta::assert_debug_snapshot!(metrics, @r###" [ @@ -570,7 +570,7 @@ mod tests { let metrics = extract_metrics( event.value().unwrap(), - &CombinedMetricExtractionConfig::from(&config), + CombinedMetricExtractionConfig::from(&config), ); insta::assert_debug_snapshot!(metrics, @r###" [ diff --git a/relay-server/src/metrics_extraction/snapshots/relay_server__metrics_extraction__event__tests__both_feature_flags_enabled.snap b/relay-server/src/metrics_extraction/snapshots/relay_server__metrics_extraction__event__tests__both_feature_flags_enabled.snap new file mode 100644 index 0000000000..c51a96e7d7 --- /dev/null +++ b/relay-server/src/metrics_extraction/snapshots/relay_server__metrics_extraction__event__tests__both_feature_flags_enabled.snap @@ -0,0 +1,7550 @@ +--- +source: relay-server/src/metrics_extraction/event.rs +expression: metrics +--- +[ + Bucket { + timestamp: UnixTimestamp(1619420400), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1619420400), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 59000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "myop", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1619420400), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 59000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "myop", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "ui.react.render", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "ui.react.render", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "GET http://domain.tld", + "span.domain": "domain.tld", + "span.group": "d9dc18637d441612", + "span.op": "http.client", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "GET http://domain.tld", + "span.domain": "domain.tld", + "span.group": "d9dc18637d441612", + "span.op": "http.client", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "GET http://domain.tld", + "span.domain": "domain.tld", + "span.group": "d9dc18637d441612", + "span.op": "http.client", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://domain.tld", + "span.domain": "domain.tld", + "span.group": "25faf23529f71d3e", + "span.op": "http.client", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://domain.tld", + "span.domain": "domain.tld", + "span.group": "25faf23529f71d3e", + "span.op": "http.client", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://domain.tld", + "span.domain": "domain.tld", + "span.group": "25faf23529f71d3e", + "span.op": "http.client", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "PUT http://domain.tld", + "span.domain": "domain.tld", + "span.group": "488f09b46e5978be", + "span.op": "http.client", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "PUT http://domain.tld", + "span.domain": "domain.tld", + "span.group": "488f09b46e5978be", + "span.op": "http.client", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "PUT http://domain.tld", + "span.domain": "domain.tld", + "span.group": "488f09b46e5978be", + "span.op": "http.client", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "GET *", + "span.group": "37e3d9fab1ae9162", + "span.op": "http.client", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "GET *", + "span.group": "37e3d9fab1ae9162", + "span.op": "http.client", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "GET *", + "span.group": "37e3d9fab1ae9162", + "span.op": "http.client", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "GET *", + "span.group": "37e3d9fab1ae9162", + "span.op": "http.client", + "span.status_code": "500", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "GET *", + "span.group": "37e3d9fab1ae9162", + "span.op": "http.client", + "span.status_code": "500", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "GET *", + "span.group": "37e3d9fab1ae9162", + "span.op": "http.client", + "span.status_code": "500", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://127.0.0.1:1234", + "span.domain": "127.0.0.1:1234", + "span.group": "464fe695f9cf639c", + "span.op": "http.client", + "span.status_code": "200", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://127.0.0.1:1234", + "span.domain": "127.0.0.1:1234", + "span.group": "464fe695f9cf639c", + "span.op": "http.client", + "span.status_code": "200", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://127.0.0.1:1234", + "span.domain": "127.0.0.1:1234", + "span.group": "464fe695f9cf639c", + "span.op": "http.client", + "span.status_code": "200", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://*.domain.tld:1234", + "span.domain": "*.domain.tld:1234", + "span.group": "86818d1c74ecfc66", + "span.op": "http.client", + "span.status_code": "200", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://*.domain.tld:1234", + "span.domain": "*.domain.tld:1234", + "span.group": "86818d1c74ecfc66", + "span.op": "http.client", + "span.status_code": "200", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://*.domain.tld:1234", + "span.domain": "*.domain.tld:1234", + "span.group": "86818d1c74ecfc66", + "span.op": "http.client", + "span.status_code": "200", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://targetdomain.tld:1234", + "span.domain": "targetdomain.tld:1234", + "span.group": "72ab88b506cb04b2", + "span.op": "http.client", + "span.status_code": "200", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://targetdomain.tld:1234", + "span.domain": "targetdomain.tld:1234", + "span.group": "72ab88b506cb04b2", + "span.op": "http.client", + "span.status_code": "200", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://targetdomain.tld:1234", + "span.domain": "targetdomain.tld:1234", + "span.group": "72ab88b506cb04b2", + "span.op": "http.client", + "span.status_code": "200", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://targetdomain:1234", + "span.domain": "targetdomain:1234", + "span.group": "c8e531abe96ff360", + "span.op": "http.client", + "span.status_code": "200", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://targetdomain:1234", + "span.domain": "targetdomain:1234", + "span.group": "c8e531abe96ff360", + "span.op": "http.client", + "span.status_code": "200", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://targetdomain:1234", + "span.domain": "targetdomain:1234", + "span.group": "c8e531abe96ff360", + "span.op": "http.client", + "span.status_code": "200", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://*.domain.tld:1234", + "span.domain": "*.domain.tld:1234", + "span.group": "86818d1c74ecfc66", + "span.op": "http.client", + "span.status_code": "200", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://*.domain.tld:1234", + "span.domain": "*.domain.tld:1234", + "span.group": "86818d1c74ecfc66", + "span.op": "http.client", + "span.status_code": "200", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://*.domain.tld:1234", + "span.domain": "*.domain.tld:1234", + "span.group": "86818d1c74ecfc66", + "span.op": "http.client", + "span.status_code": "200", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://*.domain.tld:1234", + "span.domain": "*.domain.tld:1234", + "span.group": "86818d1c74ecfc66", + "span.op": "http.client", + "span.status_code": "200", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://*.domain.tld:1234", + "span.domain": "*.domain.tld:1234", + "span.group": "86818d1c74ecfc66", + "span.op": "http.client", + "span.status_code": "200", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://*.domain.tld:1234", + "span.domain": "*.domain.tld:1234", + "span.group": "86818d1c74ecfc66", + "span.op": "http.client", + "span.status_code": "200", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SELECT", + "span.category": "db", + "span.description": "SeLeCt column FROM tAbLe WHERE id IN (%s)", + "span.domain": "table", + "span.group": "f4a7fef06db3d88e", + "span.op": "db.sql.query", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SELECT", + "span.category": "db", + "span.description": "SeLeCt column FROM tAbLe WHERE id IN (%s)", + "span.domain": "table", + "span.group": "f4a7fef06db3d88e", + "span.op": "db.sql.query", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SELECT", + "span.category": "db", + "span.description": "SeLeCt column FROM tAbLe WHERE id IN (%s)", + "span.domain": "table", + "span.group": "f4a7fef06db3d88e", + "span.op": "db.sql.query", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SELECT", + "span.category": "db", + "span.description": "select column FROM table WHERE id IN (%s)", + "span.domain": "table", + "span.group": "4f9711d2d09963b9", + "span.op": "db", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SELECT", + "span.category": "db", + "span.description": "select column FROM table WHERE id IN (%s)", + "span.domain": "table", + "span.group": "4f9711d2d09963b9", + "span.op": "db", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SELECT", + "span.category": "db", + "span.description": "select column FROM table WHERE id IN (%s)", + "span.domain": "table", + "span.group": "4f9711d2d09963b9", + "span.op": "db", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "INSERT", + "span.category": "db", + "span.domain": "table", + "span.op": "db.sql.query", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "INSERT", + "span.category": "db", + "span.domain": "table", + "span.op": "db.sql.query", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "INSERT", + "span.category": "db", + "span.domain": "table", + "span.op": "db.sql.query", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "INSERT", + "span.category": "db", + "span.description": "INSERT INTO from_date (..) VALUES (%s)", + "span.domain": ",from_date,", + "span.group": "e4ea457c8e7e4109", + "span.op": "db.sql.query", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "INSERT", + "span.category": "db", + "span.description": "INSERT INTO from_date (..) VALUES (%s)", + "span.domain": ",from_date,", + "span.group": "e4ea457c8e7e4109", + "span.op": "db.sql.query", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "INSERT", + "span.category": "db", + "span.description": "INSERT INTO from_date (..) VALUES (%s)", + "span.domain": ",from_date,", + "span.group": "e4ea457c8e7e4109", + "span.op": "db.sql.query", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "INSERT", + "span.category": "db", + "span.domain": "table", + "span.op": "db", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "INSERT", + "span.category": "db", + "span.domain": "table", + "span.op": "db", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "INSERT", + "span.category": "db", + "span.domain": "table", + "span.op": "db", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SELECT", + "span.category": "db", + "span.description": "SELECT * FROM table WHERE id IN (val)", + "span.domain": "table", + "span.group": "03cb381cee3f1463", + "span.op": "db.sql.query", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SELECT", + "span.category": "db", + "span.description": "SELECT * FROM table WHERE id IN (val)", + "span.domain": "table", + "span.group": "03cb381cee3f1463", + "span.op": "db.sql.query", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SELECT", + "span.category": "db", + "span.description": "SELECT * FROM table WHERE id IN (val)", + "span.domain": "table", + "span.group": "03cb381cee3f1463", + "span.op": "db.sql.query", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SELECT", + "span.category": "db", + "span.description": "SELECT col FROM table WHERE col = %s", + "span.domain": ",table,", + "span.group": "e0f7e81a59b030ba", + "span.op": "db", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SELECT", + "span.category": "db", + "span.description": "SELECT col FROM table WHERE col = %s", + "span.domain": ",table,", + "span.group": "e0f7e81a59b030ba", + "span.op": "db", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SELECT", + "span.category": "db", + "span.description": "SELECT col FROM table WHERE col = %s", + "span.domain": ",table,", + "span.group": "e0f7e81a59b030ba", + "span.op": "db", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "DELETE", + "span.category": "db", + "span.domain": "table", + "span.op": "db", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "DELETE", + "span.category": "db", + "span.domain": "table", + "span.op": "db", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "DELETE", + "span.category": "db", + "span.domain": "table", + "span.op": "db", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "UPDATE", + "span.category": "db", + "span.domain": "table", + "span.op": "db", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "UPDATE", + "span.category": "db", + "span.domain": "table", + "span.op": "db", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "UPDATE", + "span.category": "db", + "span.domain": "table", + "span.op": "db", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SAVEPOINT", + "span.category": "db", + "span.description": "SAVEPOINT %s", + "span.group": "3f955cbde39e04b9", + "span.op": "db", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SAVEPOINT", + "span.category": "db", + "span.description": "SAVEPOINT %s", + "span.group": "3f955cbde39e04b9", + "span.op": "db", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SAVEPOINT", + "span.category": "db", + "span.description": "SAVEPOINT %s", + "span.group": "3f955cbde39e04b9", + "span.op": "db", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "cache.hit": "false", + "environment": "fake_environment", + "span.op": "cache.get_item", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "cache.hit": "false", + "environment": "fake_environment", + "span.category": "cache", + "span.description": "GET *", + "span.group": "37e3d9fab1ae9162", + "span.op": "cache.get_item", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "cache.hit": "false", + "environment": "fake_environment", + "span.op": "cache.get_item", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/cache.item_size@byte", + ), + value: Distribution( + [ + 8.0, + ], + ), + tags: { + "cache.hit": "false", + "environment": "fake_environment", + "span.op": "cache.get_item", + "transaction": "gEt /api/:version/users/", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "cache.hit": "false", + "environment": "fake_environment", + "span.op": "cache.get", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "cache.hit": "false", + "environment": "fake_environment", + "span.category": "cache", + "span.description": "GET *", + "span.group": "37e3d9fab1ae9162", + "span.op": "cache.get", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "cache.hit": "false", + "environment": "fake_environment", + "span.op": "cache.get", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/cache.item_size@byte", + ), + value: Distribution( + [ + 8.0, + ], + ), + tags: { + "cache.hit": "false", + "environment": "fake_environment", + "span.op": "cache.get", + "transaction": "gEt /api/:version/users/", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "db.redis", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "db.redis", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "db.redis", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "db.redis", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "db.redis", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "db.redis", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "file_extension": "js", + "span.category": "resource", + "span.description": "http://domain/static/myscript-*.js", + "span.domain": "domain", + "span.group": "022f81fdf31228bf", + "span.op": "resource.script", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "file_extension": "js", + "span.category": "resource", + "span.description": "http://domain/static/myscript-*.js", + "span.domain": "domain", + "span.group": "022f81fdf31228bf", + "span.op": "resource.script", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "file_extension": "js", + "span.category": "resource", + "span.description": "http://domain/static/myscript-*.js", + "span.domain": "domain", + "span.group": "022f81fdf31228bf", + "span.op": "resource.script", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "db.sql.query", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "db.sql.query", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "DELETE", + "span.category": "db", + "span.domain": "table", + "span.op": "db.sql.query", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "DELETE", + "span.category": "db", + "span.domain": "table", + "span.op": "db.sql.query", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "DELETE", + "span.category": "db", + "span.domain": "table", + "span.op": "db.sql.query", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "db.mongodb.find", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "db.mongodb.find", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "DELETE", + "span.category": "db", + "span.domain": "table", + "span.op": "db.sql.activerecord", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "DELETE", + "span.category": "db", + "span.domain": "table", + "span.op": "db.sql.activerecord", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "DELETE", + "span.category": "db", + "span.domain": "table", + "span.op": "db.sql.activerecord", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "db.redis.command", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "db.redis.command", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1695255152), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1695255152), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 15833.532095, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "ui.load", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1695255152), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 15833.532095, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "ui.load", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1695255136), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1695255136), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 1668.516159, + ], + ), + tags: { + "environment": "fake_environment", + "release": "1.2.3", + "span.description": "Cold Start", + "span.group": "2d675185edfeb30c", + "span.op": "app.start.cold", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1695255136), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 1668.516159, + ], + ), + tags: { + "environment": "fake_environment", + "release": "1.2.3", + "span.description": "Cold Start", + "span.group": "2d675185edfeb30c", + "span.op": "app.start.cold", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1694732408), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1694732408), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 477.800131, + ], + ), + tags: { + "environment": "fake_environment", + "file_extension": "css", + "resource.render_blocking_status": "blocking", + "span.category": "resource", + "span.description": "https://*.domain.com/*/*.css", + "span.domain": "*.domain.com", + "span.group": "d744fa0716ef1142", + "span.op": "resource.css", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1694732408), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 477.800131, + ], + ), + tags: { + "environment": "fake_environment", + "file_extension": "css", + "resource.render_blocking_status": "blocking", + "span.category": "resource", + "span.description": "https://*.domain.com/*/*.css", + "span.domain": "*.domain.com", + "span.group": "d744fa0716ef1142", + "span.op": "resource.css", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1694732408), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 477.800131, + ], + ), + tags: { + "environment": "fake_environment", + "file_extension": "css", + "resource.render_blocking_status": "blocking", + "span.category": "resource", + "span.description": "https://*.domain.com/*/*.css", + "span.domain": "*.domain.com", + "span.group": "d744fa0716ef1142", + "span.op": "resource.css", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1694732408), + width: 0, + name: MetricName( + "d:spans/http.response_content_length@byte", + ), + value: Distribution( + [ + 36170.0, + ], + ), + tags: { + "environment": "fake_environment", + "file_extension": "css", + "resource.render_blocking_status": "blocking", + "span.description": "https://*.domain.com/*/*.css", + "span.domain": "*.domain.com", + "span.group": "d744fa0716ef1142", + "span.op": "resource.css", + "transaction": "gEt /api/:version/users/", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1694732408), + width: 0, + name: MetricName( + "d:spans/http.decoded_response_content_length@byte", + ), + value: Distribution( + [ + 128950.0, + ], + ), + tags: { + "environment": "fake_environment", + "file_extension": "css", + "resource.render_blocking_status": "blocking", + "span.description": "https://*.domain.com/*/*.css", + "span.domain": "*.domain.com", + "span.group": "d744fa0716ef1142", + "span.op": "resource.css", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1694732408), + width: 0, + name: MetricName( + "d:spans/http.response_transfer_size@byte", + ), + value: Distribution( + [ + 36470.0, + ], + ), + tags: { + "environment": "fake_environment", + "file_extension": "css", + "resource.render_blocking_status": "blocking", + "span.description": "https://*.domain.com/*/*.css", + "span.domain": "*.domain.com", + "span.group": "d744fa0716ef1142", + "span.op": "resource.css", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1694732408), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1694732408), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 477.800131, + ], + ), + tags: { + "environment": "fake_environment", + "file_extension": "js", + "resource.render_blocking_status": "blocking", + "span.category": "resource", + "span.description": "/static/myscript-*.js", + "span.domain": "*.example.com:5688", + "span.group": "89bda2e660f6236c", + "span.op": "resource.script", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1694732408), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 477.800131, + ], + ), + tags: { + "environment": "fake_environment", + "file_extension": "js", + "resource.render_blocking_status": "blocking", + "span.category": "resource", + "span.description": "/static/myscript-*.js", + "span.domain": "*.example.com:5688", + "span.group": "89bda2e660f6236c", + "span.op": "resource.script", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1694732408), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 477.800131, + ], + ), + tags: { + "environment": "fake_environment", + "file_extension": "js", + "resource.render_blocking_status": "blocking", + "span.category": "resource", + "span.description": "/static/myscript-*.js", + "span.domain": "*.example.com:5688", + "span.group": "89bda2e660f6236c", + "span.op": "resource.script", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1694732408), + width: 0, + name: MetricName( + "d:spans/http.response_content_length@byte", + ), + value: Distribution( + [ + 36170.0, + ], + ), + tags: { + "environment": "fake_environment", + "file_extension": "js", + "resource.render_blocking_status": "blocking", + "span.description": "/static/myscript-*.js", + "span.domain": "*.example.com:5688", + "span.group": "89bda2e660f6236c", + "span.op": "resource.script", + "transaction": "gEt /api/:version/users/", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1694732408), + width: 0, + name: MetricName( + "d:spans/http.decoded_response_content_length@byte", + ), + value: Distribution( + [ + 128950.0, + ], + ), + tags: { + "environment": "fake_environment", + "file_extension": "js", + "resource.render_blocking_status": "blocking", + "span.description": "/static/myscript-*.js", + "span.domain": "*.example.com:5688", + "span.group": "89bda2e660f6236c", + "span.op": "resource.script", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1694732408), + width: 0, + name: MetricName( + "d:spans/http.response_transfer_size@byte", + ), + value: Distribution( + [ + 36470.0, + ], + ), + tags: { + "environment": "fake_environment", + "file_extension": "js", + "resource.render_blocking_status": "blocking", + "span.description": "/static/myscript-*.js", + "span.domain": "*.example.com:5688", + "span.group": "89bda2e660f6236c", + "span.op": "resource.script", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "ui.react.render", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "ui.react.render", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "GET http://domain.tld", + "span.domain": "domain.tld", + "span.group": "d9dc18637d441612", + "span.op": "http.client", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "GET http://domain.tld", + "span.domain": "domain.tld", + "span.group": "d9dc18637d441612", + "span.op": "http.client", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "GET http://domain.tld", + "span.domain": "domain.tld", + "span.group": "d9dc18637d441612", + "span.op": "http.client", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://domain.tld", + "span.domain": "domain.tld", + "span.group": "25faf23529f71d3e", + "span.op": "http.client", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://domain.tld", + "span.domain": "domain.tld", + "span.group": "25faf23529f71d3e", + "span.op": "http.client", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://domain.tld", + "span.domain": "domain.tld", + "span.group": "25faf23529f71d3e", + "span.op": "http.client", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "PUT http://domain.tld", + "span.domain": "domain.tld", + "span.group": "488f09b46e5978be", + "span.op": "http.client", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "PUT http://domain.tld", + "span.domain": "domain.tld", + "span.group": "488f09b46e5978be", + "span.op": "http.client", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "PUT http://domain.tld", + "span.domain": "domain.tld", + "span.group": "488f09b46e5978be", + "span.op": "http.client", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "GET *", + "span.group": "37e3d9fab1ae9162", + "span.op": "http.client", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "GET *", + "span.group": "37e3d9fab1ae9162", + "span.op": "http.client", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "GET *", + "span.group": "37e3d9fab1ae9162", + "span.op": "http.client", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://127.0.0.1:1234", + "span.domain": "127.0.0.1:1234", + "span.group": "464fe695f9cf639c", + "span.op": "http.client", + "span.status_code": "200", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://127.0.0.1:1234", + "span.domain": "127.0.0.1:1234", + "span.group": "464fe695f9cf639c", + "span.op": "http.client", + "span.status_code": "200", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://127.0.0.1:1234", + "span.domain": "127.0.0.1:1234", + "span.group": "464fe695f9cf639c", + "span.op": "http.client", + "span.status_code": "200", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://*.domain.tld:1234", + "span.domain": "*.domain.tld:1234", + "span.group": "86818d1c74ecfc66", + "span.op": "http.client", + "span.status_code": "200", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://*.domain.tld:1234", + "span.domain": "*.domain.tld:1234", + "span.group": "86818d1c74ecfc66", + "span.op": "http.client", + "span.status_code": "200", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://*.domain.tld:1234", + "span.domain": "*.domain.tld:1234", + "span.group": "86818d1c74ecfc66", + "span.op": "http.client", + "span.status_code": "200", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://targetdomain.tld:1234", + "span.domain": "targetdomain.tld:1234", + "span.group": "72ab88b506cb04b2", + "span.op": "http.client", + "span.status_code": "200", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://targetdomain.tld:1234", + "span.domain": "targetdomain.tld:1234", + "span.group": "72ab88b506cb04b2", + "span.op": "http.client", + "span.status_code": "200", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://targetdomain.tld:1234", + "span.domain": "targetdomain.tld:1234", + "span.group": "72ab88b506cb04b2", + "span.op": "http.client", + "span.status_code": "200", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://targetdomain:1234", + "span.domain": "targetdomain:1234", + "span.group": "c8e531abe96ff360", + "span.op": "http.client", + "span.status_code": "200", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://targetdomain:1234", + "span.domain": "targetdomain:1234", + "span.group": "c8e531abe96ff360", + "span.op": "http.client", + "span.status_code": "200", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://targetdomain:1234", + "span.domain": "targetdomain:1234", + "span.group": "c8e531abe96ff360", + "span.op": "http.client", + "span.status_code": "200", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://*.domain.tld:1234", + "span.domain": "*.domain.tld:1234", + "span.group": "86818d1c74ecfc66", + "span.op": "http.client", + "span.status_code": "200", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://*.domain.tld:1234", + "span.domain": "*.domain.tld:1234", + "span.group": "86818d1c74ecfc66", + "span.op": "http.client", + "span.status_code": "200", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://*.domain.tld:1234", + "span.domain": "*.domain.tld:1234", + "span.group": "86818d1c74ecfc66", + "span.op": "http.client", + "span.status_code": "200", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://*.domain.tld:1234", + "span.domain": "*.domain.tld:1234", + "span.group": "86818d1c74ecfc66", + "span.op": "http.client", + "span.status_code": "200", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://*.domain.tld:1234", + "span.domain": "*.domain.tld:1234", + "span.group": "86818d1c74ecfc66", + "span.op": "http.client", + "span.status_code": "200", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://*.domain.tld:1234", + "span.domain": "*.domain.tld:1234", + "span.group": "86818d1c74ecfc66", + "span.op": "http.client", + "span.status_code": "200", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SELECT", + "span.category": "db", + "span.description": "SeLeCt column FROM tAbLe WHERE id IN (%s)", + "span.domain": "table", + "span.group": "f4a7fef06db3d88e", + "span.op": "db.sql.query", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SELECT", + "span.category": "db", + "span.description": "SeLeCt column FROM tAbLe WHERE id IN (%s)", + "span.domain": "table", + "span.group": "f4a7fef06db3d88e", + "span.op": "db.sql.query", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SELECT", + "span.category": "db", + "span.description": "SeLeCt column FROM tAbLe WHERE id IN (%s)", + "span.domain": "table", + "span.group": "f4a7fef06db3d88e", + "span.op": "db.sql.query", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SELECT", + "span.category": "db", + "span.description": "select column FROM table WHERE id IN (%s)", + "span.domain": "table", + "span.group": "4f9711d2d09963b9", + "span.op": "db", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SELECT", + "span.category": "db", + "span.description": "select column FROM table WHERE id IN (%s)", + "span.domain": "table", + "span.group": "4f9711d2d09963b9", + "span.op": "db", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SELECT", + "span.category": "db", + "span.description": "select column FROM table WHERE id IN (%s)", + "span.domain": "table", + "span.group": "4f9711d2d09963b9", + "span.op": "db", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "INSERT", + "span.category": "db", + "span.domain": "table", + "span.op": "db.sql.query", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "INSERT", + "span.category": "db", + "span.domain": "table", + "span.op": "db.sql.query", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "INSERT", + "span.category": "db", + "span.domain": "table", + "span.op": "db.sql.query", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "INSERT", + "span.category": "db", + "span.description": "INSERT INTO from_date (..) VALUES (%s)", + "span.domain": ",from_date,", + "span.group": "e4ea457c8e7e4109", + "span.op": "db.sql.query", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "INSERT", + "span.category": "db", + "span.description": "INSERT INTO from_date (..) VALUES (%s)", + "span.domain": ",from_date,", + "span.group": "e4ea457c8e7e4109", + "span.op": "db.sql.query", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "INSERT", + "span.category": "db", + "span.description": "INSERT INTO from_date (..) VALUES (%s)", + "span.domain": ",from_date,", + "span.group": "e4ea457c8e7e4109", + "span.op": "db.sql.query", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "INSERT", + "span.category": "db", + "span.domain": "table", + "span.op": "db", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "INSERT", + "span.category": "db", + "span.domain": "table", + "span.op": "db", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "INSERT", + "span.category": "db", + "span.domain": "table", + "span.op": "db", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SELECT", + "span.category": "db", + "span.description": "SELECT * FROM table WHERE id IN (val)", + "span.domain": "table", + "span.group": "03cb381cee3f1463", + "span.op": "db.sql.query", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SELECT", + "span.category": "db", + "span.description": "SELECT * FROM table WHERE id IN (val)", + "span.domain": "table", + "span.group": "03cb381cee3f1463", + "span.op": "db.sql.query", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SELECT", + "span.category": "db", + "span.description": "SELECT * FROM table WHERE id IN (val)", + "span.domain": "table", + "span.group": "03cb381cee3f1463", + "span.op": "db.sql.query", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SELECT", + "span.category": "db", + "span.description": "SELECT col FROM table WHERE col = %s", + "span.domain": ",table,", + "span.group": "e0f7e81a59b030ba", + "span.op": "db", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SELECT", + "span.category": "db", + "span.description": "SELECT col FROM table WHERE col = %s", + "span.domain": ",table,", + "span.group": "e0f7e81a59b030ba", + "span.op": "db", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SELECT", + "span.category": "db", + "span.description": "SELECT col FROM table WHERE col = %s", + "span.domain": ",table,", + "span.group": "e0f7e81a59b030ba", + "span.op": "db", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "DELETE", + "span.category": "db", + "span.domain": "table", + "span.op": "db", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "DELETE", + "span.category": "db", + "span.domain": "table", + "span.op": "db", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "DELETE", + "span.category": "db", + "span.domain": "table", + "span.op": "db", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "UPDATE", + "span.category": "db", + "span.domain": "table", + "span.op": "db", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "UPDATE", + "span.category": "db", + "span.domain": "table", + "span.op": "db", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "UPDATE", + "span.category": "db", + "span.domain": "table", + "span.op": "db", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SAVEPOINT", + "span.category": "db", + "span.description": "SAVEPOINT %s", + "span.group": "3f955cbde39e04b9", + "span.op": "db", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SAVEPOINT", + "span.category": "db", + "span.description": "SAVEPOINT %s", + "span.group": "3f955cbde39e04b9", + "span.op": "db", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SAVEPOINT", + "span.category": "db", + "span.description": "SAVEPOINT %s", + "span.group": "3f955cbde39e04b9", + "span.op": "db", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "cache.hit": "false", + "environment": "fake_environment", + "span.op": "cache.get_item", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "cache.hit": "false", + "environment": "fake_environment", + "span.category": "cache", + "span.description": "GET *", + "span.group": "37e3d9fab1ae9162", + "span.op": "cache.get_item", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "cache.hit": "false", + "environment": "fake_environment", + "span.op": "cache.get_item", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/cache.item_size@byte", + ), + value: Distribution( + [ + 10.0, + ], + ), + tags: { + "cache.hit": "false", + "environment": "fake_environment", + "span.op": "cache.get_item", + "transaction": "gEt /api/:version/users/", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "cache.hit": "true", + "environment": "fake_environment", + "span.op": "cache.get_item", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "cache.hit": "true", + "environment": "fake_environment", + "span.category": "cache", + "span.description": "GET *", + "span.group": "37e3d9fab1ae9162", + "span.op": "cache.get_item", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "cache.hit": "true", + "environment": "fake_environment", + "span.op": "cache.get_item", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "db.redis", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "db.redis", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "db.redis", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "db.redis", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "db.redis", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "db.redis", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "resource", + "span.description": "browser-extension://*", + "span.domain": "*", + "span.group": "3e92c536f98104b2", + "span.op": "resource.script", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "resource", + "span.description": "browser-extension://*", + "span.domain": "*", + "span.group": "3e92c536f98104b2", + "span.op": "resource.script", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "resource", + "span.description": "browser-extension://*", + "span.domain": "*", + "span.group": "3e92c536f98104b2", + "span.op": "resource.script", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "file_extension": "js", + "span.category": "resource", + "span.description": "http://domain/static/myscript-*.js", + "span.domain": "domain", + "span.group": "022f81fdf31228bf", + "span.op": "resource.script", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "file_extension": "js", + "span.category": "resource", + "span.description": "http://domain/static/myscript-*.js", + "span.domain": "domain", + "span.group": "022f81fdf31228bf", + "span.op": "resource.script", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "file_extension": "js", + "span.category": "resource", + "span.description": "http://domain/static/myscript-*.js", + "span.domain": "domain", + "span.group": "022f81fdf31228bf", + "span.op": "resource.script", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1694732408), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1694732408), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 477.800131, + ], + ), + tags: { + "environment": "fake_environment", + "file_extension": "css", + "resource.render_blocking_status": "blocking", + "span.category": "resource", + "span.description": "https://*.domain.com/*/*.CSS", + "span.domain": "*.domain.com", + "span.group": "7f402250846262be", + "span.op": "resource.css", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1694732408), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 477.800131, + ], + ), + tags: { + "environment": "fake_environment", + "file_extension": "css", + "resource.render_blocking_status": "blocking", + "span.category": "resource", + "span.description": "https://*.domain.com/*/*.CSS", + "span.domain": "*.domain.com", + "span.group": "7f402250846262be", + "span.op": "resource.css", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1694732408), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 477.800131, + ], + ), + tags: { + "environment": "fake_environment", + "file_extension": "css", + "resource.render_blocking_status": "blocking", + "span.category": "resource", + "span.description": "https://*.domain.com/*/*.CSS", + "span.domain": "*.domain.com", + "span.group": "7f402250846262be", + "span.op": "resource.css", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1694732408), + width: 0, + name: MetricName( + "d:spans/http.response_content_length@byte", + ), + value: Distribution( + [ + 36170.0, + ], + ), + tags: { + "environment": "fake_environment", + "file_extension": "css", + "resource.render_blocking_status": "blocking", + "span.description": "https://*.domain.com/*/*.CSS", + "span.domain": "*.domain.com", + "span.group": "7f402250846262be", + "span.op": "resource.css", + "transaction": "gEt /api/:version/users/", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1694732408), + width: 0, + name: MetricName( + "d:spans/http.decoded_response_content_length@byte", + ), + value: Distribution( + [ + 128950.0, + ], + ), + tags: { + "environment": "fake_environment", + "file_extension": "css", + "resource.render_blocking_status": "blocking", + "span.description": "https://*.domain.com/*/*.CSS", + "span.domain": "*.domain.com", + "span.group": "7f402250846262be", + "span.op": "resource.css", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1694732408), + width: 0, + name: MetricName( + "d:spans/http.response_transfer_size@byte", + ), + value: Distribution( + [ + 36470.0, + ], + ), + tags: { + "environment": "fake_environment", + "file_extension": "css", + "resource.render_blocking_status": "blocking", + "span.description": "https://*.domain.com/*/*.CSS", + "span.domain": "*.domain.com", + "span.group": "7f402250846262be", + "span.op": "resource.css", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1694732408), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1694732408), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 477.800131, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "resource", + "span.description": "*/zero-length-*", + "span.group": "c7d3c9d83f92123a", + "span.op": "resource.script", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1694732408), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 477.800131, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "resource", + "span.description": "*/zero-length-*", + "span.group": "c7d3c9d83f92123a", + "span.op": "resource.script", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1694732408), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 477.800131, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "resource", + "span.description": "*/zero-length-*", + "span.group": "c7d3c9d83f92123a", + "span.op": "resource.script", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1702474613), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1702474613), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 32.000065, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "ui.interaction.click", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1702474613), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 32.000065, + ], + ), + tags: { + "span.description": "my-component-name", + "span.group": "e674f9eca1d88a4d", + "span.op": "ui.interaction.click", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1702474613), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 32.000065, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "ui.interaction.click", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1702474613), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1702474613), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 32.000065, + ], + ), + tags: { + "environment": "fake_environment", + "messaging.destination.name": "default", + "span.category": "queue", + "span.op": "queue.task.celery", + "trace.status": "ok", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1702474613), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 32.000065, + ], + ), + tags: { + "environment": "fake_environment", + "messaging.destination.name": "default", + "span.category": "queue", + "span.op": "queue.task.celery", + "trace.status": "ok", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1702474613), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 32.000065, + ], + ), + tags: { + "environment": "fake_environment", + "messaging.destination.name": "default", + "span.category": "queue", + "span.op": "queue.task.celery", + "trace.status": "ok", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1702474613), + width: 0, + name: MetricName( + "g:spans/messaging.message.receive.latency@millisecond", + ), + value: Gauge( + GaugeValue { + last: 100.0, + min: 100.0, + max: 100.0, + sum: 100.0, + count: 1, + }, + ), + tags: { + "environment": "fake_environment", + "messaging.destination.name": "default", + "span.op": "queue.task.celery", + "transaction": "gEt /api/:version/users/", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1702474613), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1702474613), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 32.000065, + ], + ), + tags: { + "environment": "fake_environment", + "messaging.destination.name": "default", + "span.category": "queue", + "span.op": "queue.submit.celery", + "trace.status": "ok", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1702474613), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 32.000065, + ], + ), + tags: { + "environment": "fake_environment", + "messaging.destination.name": "default", + "span.category": "queue", + "span.op": "queue.submit.celery", + "trace.status": "ok", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1702474613), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 32.000065, + ], + ), + tags: { + "environment": "fake_environment", + "messaging.destination.name": "default", + "span.category": "queue", + "span.op": "queue.submit.celery", + "trace.status": "ok", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1702474613), + width: 0, + name: MetricName( + "g:spans/messaging.message.receive.latency@millisecond", + ), + value: Gauge( + GaugeValue { + last: 100.0, + min: 100.0, + max: 100.0, + sum: 100.0, + count: 1, + }, + ), + tags: { + "environment": "fake_environment", + "messaging.destination.name": "default", + "span.op": "queue.submit.celery", + "transaction": "gEt /api/:version/users/", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1702474613), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1702474613), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 32.000065, + ], + ), + tags: { + "environment": "fake_environment", + "messaging.destination.name": "default", + "span.category": "queue", + "span.op": "queue.publish", + "trace.status": "ok", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1702474613), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 32.000065, + ], + ), + tags: { + "environment": "fake_environment", + "messaging.destination.name": "default", + "span.category": "queue", + "span.op": "queue.publish", + "trace.status": "ok", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1702474613), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 32.000065, + ], + ), + tags: { + "environment": "fake_environment", + "messaging.destination.name": "default", + "span.category": "queue", + "span.op": "queue.publish", + "trace.status": "ok", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1702474613), + width: 0, + name: MetricName( + "g:spans/messaging.message.receive.latency@millisecond", + ), + value: Gauge( + GaugeValue { + last: 100.0, + min: 100.0, + max: 100.0, + sum: 100.0, + count: 1, + }, + ), + tags: { + "environment": "fake_environment", + "messaging.destination.name": "default", + "span.op": "queue.publish", + "transaction": "gEt /api/:version/users/", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1702474613), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1702474613), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 32.000065, + ], + ), + tags: { + "environment": "fake_environment", + "messaging.destination.name": "default", + "span.category": "queue", + "span.op": "queue.process", + "trace.status": "ok", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1702474613), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 32.000065, + ], + ), + tags: { + "environment": "fake_environment", + "messaging.destination.name": "default", + "span.category": "queue", + "span.op": "queue.process", + "trace.status": "ok", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1702474613), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 32.000065, + ], + ), + tags: { + "environment": "fake_environment", + "messaging.destination.name": "default", + "span.category": "queue", + "span.op": "queue.process", + "trace.status": "ok", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1702474613), + width: 0, + name: MetricName( + "g:spans/messaging.message.receive.latency@millisecond", + ), + value: Gauge( + GaugeValue { + last: 100.0, + min: 100.0, + max: 100.0, + sum: 100.0, + count: 1, + }, + ), + tags: { + "environment": "fake_environment", + "messaging.destination.name": "default", + "span.op": "queue.process", + "transaction": "gEt /api/:version/users/", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1702474613), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1702474613), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 32.000065, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "ai", + "span.description": "ConcurrentStream", + "span.group": "fdd5a729aef245ba", + "span.op": "ai.run.langchain", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1702474613), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 32.000065, + ], + ), + tags: { + "span.category": "ai", + "span.description": "ConcurrentStream", + "span.group": "fdd5a729aef245ba", + "span.op": "ai.run.langchain", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1702474613), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 32.000065, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "ai", + "span.description": "ConcurrentStream", + "span.group": "fdd5a729aef245ba", + "span.op": "ai.run.langchain", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1702474613), + width: 0, + name: MetricName( + "c:spans/ai.total_tokens.used@none", + ), + value: Counter( + 20.0, + ), + tags: { + "environment": "fake_environment", + "release": "1.2.3", + "span.ai.pipeline.group": "86148ae2d6c09430", + "span.category": "ai", + "span.description": "ConcurrentStream", + "span.group": "fdd5a729aef245ba", + "span.op": "ai.run.langchain", + "span.origin": "auto.langchain", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1702474613), + width: 0, + name: MetricName( + "c:spans/ai.total_cost@usd", + ), + value: Counter( + 0.0002, + ), + tags: { + "environment": "fake_environment", + "release": "1.2.3", + "span.ai.pipeline.group": "86148ae2d6c09430", + "span.category": "ai", + "span.description": "ConcurrentStream", + "span.group": "fdd5a729aef245ba", + "span.op": "ai.run.langchain", + "span.origin": "auto.langchain", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1702474613), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1702474613), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 32.000065, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "ai.pipeline", + "span.description": "Autofix Pipeline", + "span.group": "86148ae2d6c09430", + "span.op": "ai.pipeline", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1702474613), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 32.000065, + ], + ), + tags: { + "span.category": "ai.pipeline", + "span.description": "Autofix Pipeline", + "span.group": "86148ae2d6c09430", + "span.op": "ai.pipeline", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1702474613), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 32.000065, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "ai.pipeline", + "span.description": "Autofix Pipeline", + "span.group": "86148ae2d6c09430", + "span.op": "ai.pipeline", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1702474613), + width: 0, + name: MetricName( + "c:spans/ai.total_tokens.used@none", + ), + value: Counter( + 30.0, + ), + tags: { + "environment": "fake_environment", + "release": "1.2.3", + "span.category": "ai.pipeline", + "span.description": "Autofix Pipeline", + "span.group": "86148ae2d6c09430", + "span.op": "ai.pipeline", + "span.origin": "auto.langchain", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, +] diff --git a/relay-server/src/metrics_extraction/snapshots/relay_server__metrics_extraction__event__tests__only_common.snap b/relay-server/src/metrics_extraction/snapshots/relay_server__metrics_extraction__event__tests__only_common.snap new file mode 100644 index 0000000000..e3de13d97e --- /dev/null +++ b/relay-server/src/metrics_extraction/snapshots/relay_server__metrics_extraction__event__tests__only_common.snap @@ -0,0 +1,6343 @@ +--- +source: relay-server/src/metrics_extraction/event.rs +expression: metrics +--- +[ + Bucket { + timestamp: UnixTimestamp(1619420400), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1619420400), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 59000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "myop", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1619420400), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 59000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "myop", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "ui.react.render", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "ui.react.render", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "GET http://domain.tld", + "span.domain": "domain.tld", + "span.group": "d9dc18637d441612", + "span.op": "http.client", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "GET http://domain.tld", + "span.domain": "domain.tld", + "span.group": "d9dc18637d441612", + "span.op": "http.client", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "GET http://domain.tld", + "span.domain": "domain.tld", + "span.group": "d9dc18637d441612", + "span.op": "http.client", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://domain.tld", + "span.domain": "domain.tld", + "span.group": "25faf23529f71d3e", + "span.op": "http.client", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://domain.tld", + "span.domain": "domain.tld", + "span.group": "25faf23529f71d3e", + "span.op": "http.client", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://domain.tld", + "span.domain": "domain.tld", + "span.group": "25faf23529f71d3e", + "span.op": "http.client", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "PUT http://domain.tld", + "span.domain": "domain.tld", + "span.group": "488f09b46e5978be", + "span.op": "http.client", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "PUT http://domain.tld", + "span.domain": "domain.tld", + "span.group": "488f09b46e5978be", + "span.op": "http.client", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "PUT http://domain.tld", + "span.domain": "domain.tld", + "span.group": "488f09b46e5978be", + "span.op": "http.client", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "GET *", + "span.group": "37e3d9fab1ae9162", + "span.op": "http.client", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "GET *", + "span.group": "37e3d9fab1ae9162", + "span.op": "http.client", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "GET *", + "span.group": "37e3d9fab1ae9162", + "span.op": "http.client", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "GET *", + "span.group": "37e3d9fab1ae9162", + "span.op": "http.client", + "span.status_code": "500", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "GET *", + "span.group": "37e3d9fab1ae9162", + "span.op": "http.client", + "span.status_code": "500", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "GET *", + "span.group": "37e3d9fab1ae9162", + "span.op": "http.client", + "span.status_code": "500", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://127.0.0.1:1234", + "span.domain": "127.0.0.1:1234", + "span.group": "464fe695f9cf639c", + "span.op": "http.client", + "span.status_code": "200", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://127.0.0.1:1234", + "span.domain": "127.0.0.1:1234", + "span.group": "464fe695f9cf639c", + "span.op": "http.client", + "span.status_code": "200", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://127.0.0.1:1234", + "span.domain": "127.0.0.1:1234", + "span.group": "464fe695f9cf639c", + "span.op": "http.client", + "span.status_code": "200", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://*.domain.tld:1234", + "span.domain": "*.domain.tld:1234", + "span.group": "86818d1c74ecfc66", + "span.op": "http.client", + "span.status_code": "200", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://*.domain.tld:1234", + "span.domain": "*.domain.tld:1234", + "span.group": "86818d1c74ecfc66", + "span.op": "http.client", + "span.status_code": "200", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://*.domain.tld:1234", + "span.domain": "*.domain.tld:1234", + "span.group": "86818d1c74ecfc66", + "span.op": "http.client", + "span.status_code": "200", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://targetdomain.tld:1234", + "span.domain": "targetdomain.tld:1234", + "span.group": "72ab88b506cb04b2", + "span.op": "http.client", + "span.status_code": "200", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://targetdomain.tld:1234", + "span.domain": "targetdomain.tld:1234", + "span.group": "72ab88b506cb04b2", + "span.op": "http.client", + "span.status_code": "200", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://targetdomain.tld:1234", + "span.domain": "targetdomain.tld:1234", + "span.group": "72ab88b506cb04b2", + "span.op": "http.client", + "span.status_code": "200", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://targetdomain:1234", + "span.domain": "targetdomain:1234", + "span.group": "c8e531abe96ff360", + "span.op": "http.client", + "span.status_code": "200", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://targetdomain:1234", + "span.domain": "targetdomain:1234", + "span.group": "c8e531abe96ff360", + "span.op": "http.client", + "span.status_code": "200", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://targetdomain:1234", + "span.domain": "targetdomain:1234", + "span.group": "c8e531abe96ff360", + "span.op": "http.client", + "span.status_code": "200", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://*.domain.tld:1234", + "span.domain": "*.domain.tld:1234", + "span.group": "86818d1c74ecfc66", + "span.op": "http.client", + "span.status_code": "200", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://*.domain.tld:1234", + "span.domain": "*.domain.tld:1234", + "span.group": "86818d1c74ecfc66", + "span.op": "http.client", + "span.status_code": "200", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://*.domain.tld:1234", + "span.domain": "*.domain.tld:1234", + "span.group": "86818d1c74ecfc66", + "span.op": "http.client", + "span.status_code": "200", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://*.domain.tld:1234", + "span.domain": "*.domain.tld:1234", + "span.group": "86818d1c74ecfc66", + "span.op": "http.client", + "span.status_code": "200", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://*.domain.tld:1234", + "span.domain": "*.domain.tld:1234", + "span.group": "86818d1c74ecfc66", + "span.op": "http.client", + "span.status_code": "200", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://*.domain.tld:1234", + "span.domain": "*.domain.tld:1234", + "span.group": "86818d1c74ecfc66", + "span.op": "http.client", + "span.status_code": "200", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SELECT", + "span.category": "db", + "span.description": "SeLeCt column FROM tAbLe WHERE id IN (%s)", + "span.domain": "table", + "span.group": "f4a7fef06db3d88e", + "span.op": "db.sql.query", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SELECT", + "span.category": "db", + "span.description": "SeLeCt column FROM tAbLe WHERE id IN (%s)", + "span.domain": "table", + "span.group": "f4a7fef06db3d88e", + "span.op": "db.sql.query", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SELECT", + "span.category": "db", + "span.description": "SeLeCt column FROM tAbLe WHERE id IN (%s)", + "span.domain": "table", + "span.group": "f4a7fef06db3d88e", + "span.op": "db.sql.query", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SELECT", + "span.category": "db", + "span.description": "select column FROM table WHERE id IN (%s)", + "span.domain": "table", + "span.group": "4f9711d2d09963b9", + "span.op": "db", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SELECT", + "span.category": "db", + "span.description": "select column FROM table WHERE id IN (%s)", + "span.domain": "table", + "span.group": "4f9711d2d09963b9", + "span.op": "db", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SELECT", + "span.category": "db", + "span.description": "select column FROM table WHERE id IN (%s)", + "span.domain": "table", + "span.group": "4f9711d2d09963b9", + "span.op": "db", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "INSERT", + "span.category": "db", + "span.domain": "table", + "span.op": "db.sql.query", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "INSERT", + "span.category": "db", + "span.domain": "table", + "span.op": "db.sql.query", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "INSERT", + "span.category": "db", + "span.domain": "table", + "span.op": "db.sql.query", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "INSERT", + "span.category": "db", + "span.description": "INSERT INTO from_date (..) VALUES (%s)", + "span.domain": ",from_date,", + "span.group": "e4ea457c8e7e4109", + "span.op": "db.sql.query", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "INSERT", + "span.category": "db", + "span.description": "INSERT INTO from_date (..) VALUES (%s)", + "span.domain": ",from_date,", + "span.group": "e4ea457c8e7e4109", + "span.op": "db.sql.query", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "INSERT", + "span.category": "db", + "span.description": "INSERT INTO from_date (..) VALUES (%s)", + "span.domain": ",from_date,", + "span.group": "e4ea457c8e7e4109", + "span.op": "db.sql.query", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "INSERT", + "span.category": "db", + "span.domain": "table", + "span.op": "db", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "INSERT", + "span.category": "db", + "span.domain": "table", + "span.op": "db", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "INSERT", + "span.category": "db", + "span.domain": "table", + "span.op": "db", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SELECT", + "span.category": "db", + "span.description": "SELECT * FROM table WHERE id IN (val)", + "span.domain": "table", + "span.group": "03cb381cee3f1463", + "span.op": "db.sql.query", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SELECT", + "span.category": "db", + "span.description": "SELECT * FROM table WHERE id IN (val)", + "span.domain": "table", + "span.group": "03cb381cee3f1463", + "span.op": "db.sql.query", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SELECT", + "span.category": "db", + "span.description": "SELECT * FROM table WHERE id IN (val)", + "span.domain": "table", + "span.group": "03cb381cee3f1463", + "span.op": "db.sql.query", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SELECT", + "span.category": "db", + "span.description": "SELECT col FROM table WHERE col = %s", + "span.domain": ",table,", + "span.group": "e0f7e81a59b030ba", + "span.op": "db", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SELECT", + "span.category": "db", + "span.description": "SELECT col FROM table WHERE col = %s", + "span.domain": ",table,", + "span.group": "e0f7e81a59b030ba", + "span.op": "db", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SELECT", + "span.category": "db", + "span.description": "SELECT col FROM table WHERE col = %s", + "span.domain": ",table,", + "span.group": "e0f7e81a59b030ba", + "span.op": "db", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "DELETE", + "span.category": "db", + "span.domain": "table", + "span.op": "db", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "DELETE", + "span.category": "db", + "span.domain": "table", + "span.op": "db", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "DELETE", + "span.category": "db", + "span.domain": "table", + "span.op": "db", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "UPDATE", + "span.category": "db", + "span.domain": "table", + "span.op": "db", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "UPDATE", + "span.category": "db", + "span.domain": "table", + "span.op": "db", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "UPDATE", + "span.category": "db", + "span.domain": "table", + "span.op": "db", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SAVEPOINT", + "span.category": "db", + "span.description": "SAVEPOINT %s", + "span.group": "3f955cbde39e04b9", + "span.op": "db", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SAVEPOINT", + "span.category": "db", + "span.description": "SAVEPOINT %s", + "span.group": "3f955cbde39e04b9", + "span.op": "db", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SAVEPOINT", + "span.category": "db", + "span.description": "SAVEPOINT %s", + "span.group": "3f955cbde39e04b9", + "span.op": "db", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "db.redis", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "db.redis", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "db.redis", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "db.redis", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "db.redis", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "db.redis", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "file_extension": "js", + "span.category": "resource", + "span.description": "http://domain/static/myscript-*.js", + "span.domain": "domain", + "span.group": "022f81fdf31228bf", + "span.op": "resource.script", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "file_extension": "js", + "span.category": "resource", + "span.description": "http://domain/static/myscript-*.js", + "span.domain": "domain", + "span.group": "022f81fdf31228bf", + "span.op": "resource.script", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "file_extension": "js", + "span.category": "resource", + "span.description": "http://domain/static/myscript-*.js", + "span.domain": "domain", + "span.group": "022f81fdf31228bf", + "span.op": "resource.script", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "db.sql.query", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "db.sql.query", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "DELETE", + "span.category": "db", + "span.domain": "table", + "span.op": "db.sql.query", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "DELETE", + "span.category": "db", + "span.domain": "table", + "span.op": "db.sql.query", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "DELETE", + "span.category": "db", + "span.domain": "table", + "span.op": "db.sql.query", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "db.mongodb.find", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "db.mongodb.find", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "DELETE", + "span.category": "db", + "span.domain": "table", + "span.op": "db.sql.activerecord", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "DELETE", + "span.category": "db", + "span.domain": "table", + "span.op": "db.sql.activerecord", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "DELETE", + "span.category": "db", + "span.domain": "table", + "span.op": "db.sql.activerecord", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "db.redis.command", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "db.redis.command", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1695255152), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1695255152), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 15833.532095, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "ui.load", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1695255152), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 15833.532095, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "ui.load", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1695255136), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1695255136), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 1668.516159, + ], + ), + tags: { + "environment": "fake_environment", + "release": "1.2.3", + "span.description": "Cold Start", + "span.group": "2d675185edfeb30c", + "span.op": "app.start.cold", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1695255136), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 1668.516159, + ], + ), + tags: { + "environment": "fake_environment", + "release": "1.2.3", + "span.description": "Cold Start", + "span.group": "2d675185edfeb30c", + "span.op": "app.start.cold", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1694732408), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1694732408), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 477.800131, + ], + ), + tags: { + "environment": "fake_environment", + "file_extension": "css", + "resource.render_blocking_status": "blocking", + "span.category": "resource", + "span.description": "https://*.domain.com/*/*.css", + "span.domain": "*.domain.com", + "span.group": "d744fa0716ef1142", + "span.op": "resource.css", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1694732408), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 477.800131, + ], + ), + tags: { + "environment": "fake_environment", + "file_extension": "css", + "resource.render_blocking_status": "blocking", + "span.category": "resource", + "span.description": "https://*.domain.com/*/*.css", + "span.domain": "*.domain.com", + "span.group": "d744fa0716ef1142", + "span.op": "resource.css", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1694732408), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 477.800131, + ], + ), + tags: { + "environment": "fake_environment", + "file_extension": "css", + "resource.render_blocking_status": "blocking", + "span.category": "resource", + "span.description": "https://*.domain.com/*/*.css", + "span.domain": "*.domain.com", + "span.group": "d744fa0716ef1142", + "span.op": "resource.css", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1694732408), + width: 0, + name: MetricName( + "d:spans/http.response_content_length@byte", + ), + value: Distribution( + [ + 36170.0, + ], + ), + tags: { + "environment": "fake_environment", + "file_extension": "css", + "resource.render_blocking_status": "blocking", + "span.description": "https://*.domain.com/*/*.css", + "span.domain": "*.domain.com", + "span.group": "d744fa0716ef1142", + "span.op": "resource.css", + "transaction": "gEt /api/:version/users/", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1694732408), + width: 0, + name: MetricName( + "d:spans/http.decoded_response_content_length@byte", + ), + value: Distribution( + [ + 128950.0, + ], + ), + tags: { + "environment": "fake_environment", + "file_extension": "css", + "resource.render_blocking_status": "blocking", + "span.description": "https://*.domain.com/*/*.css", + "span.domain": "*.domain.com", + "span.group": "d744fa0716ef1142", + "span.op": "resource.css", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1694732408), + width: 0, + name: MetricName( + "d:spans/http.response_transfer_size@byte", + ), + value: Distribution( + [ + 36470.0, + ], + ), + tags: { + "environment": "fake_environment", + "file_extension": "css", + "resource.render_blocking_status": "blocking", + "span.description": "https://*.domain.com/*/*.css", + "span.domain": "*.domain.com", + "span.group": "d744fa0716ef1142", + "span.op": "resource.css", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1694732408), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1694732408), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 477.800131, + ], + ), + tags: { + "environment": "fake_environment", + "file_extension": "js", + "resource.render_blocking_status": "blocking", + "span.category": "resource", + "span.description": "/static/myscript-*.js", + "span.domain": "*.example.com:5688", + "span.group": "89bda2e660f6236c", + "span.op": "resource.script", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1694732408), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 477.800131, + ], + ), + tags: { + "environment": "fake_environment", + "file_extension": "js", + "resource.render_blocking_status": "blocking", + "span.category": "resource", + "span.description": "/static/myscript-*.js", + "span.domain": "*.example.com:5688", + "span.group": "89bda2e660f6236c", + "span.op": "resource.script", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1694732408), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 477.800131, + ], + ), + tags: { + "environment": "fake_environment", + "file_extension": "js", + "resource.render_blocking_status": "blocking", + "span.category": "resource", + "span.description": "/static/myscript-*.js", + "span.domain": "*.example.com:5688", + "span.group": "89bda2e660f6236c", + "span.op": "resource.script", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1694732408), + width: 0, + name: MetricName( + "d:spans/http.response_content_length@byte", + ), + value: Distribution( + [ + 36170.0, + ], + ), + tags: { + "environment": "fake_environment", + "file_extension": "js", + "resource.render_blocking_status": "blocking", + "span.description": "/static/myscript-*.js", + "span.domain": "*.example.com:5688", + "span.group": "89bda2e660f6236c", + "span.op": "resource.script", + "transaction": "gEt /api/:version/users/", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1694732408), + width: 0, + name: MetricName( + "d:spans/http.decoded_response_content_length@byte", + ), + value: Distribution( + [ + 128950.0, + ], + ), + tags: { + "environment": "fake_environment", + "file_extension": "js", + "resource.render_blocking_status": "blocking", + "span.description": "/static/myscript-*.js", + "span.domain": "*.example.com:5688", + "span.group": "89bda2e660f6236c", + "span.op": "resource.script", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1694732408), + width: 0, + name: MetricName( + "d:spans/http.response_transfer_size@byte", + ), + value: Distribution( + [ + 36470.0, + ], + ), + tags: { + "environment": "fake_environment", + "file_extension": "js", + "resource.render_blocking_status": "blocking", + "span.description": "/static/myscript-*.js", + "span.domain": "*.example.com:5688", + "span.group": "89bda2e660f6236c", + "span.op": "resource.script", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "ui.react.render", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "ui.react.render", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "GET http://domain.tld", + "span.domain": "domain.tld", + "span.group": "d9dc18637d441612", + "span.op": "http.client", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "GET http://domain.tld", + "span.domain": "domain.tld", + "span.group": "d9dc18637d441612", + "span.op": "http.client", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "GET http://domain.tld", + "span.domain": "domain.tld", + "span.group": "d9dc18637d441612", + "span.op": "http.client", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://domain.tld", + "span.domain": "domain.tld", + "span.group": "25faf23529f71d3e", + "span.op": "http.client", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://domain.tld", + "span.domain": "domain.tld", + "span.group": "25faf23529f71d3e", + "span.op": "http.client", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://domain.tld", + "span.domain": "domain.tld", + "span.group": "25faf23529f71d3e", + "span.op": "http.client", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "PUT http://domain.tld", + "span.domain": "domain.tld", + "span.group": "488f09b46e5978be", + "span.op": "http.client", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "PUT http://domain.tld", + "span.domain": "domain.tld", + "span.group": "488f09b46e5978be", + "span.op": "http.client", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "PUT http://domain.tld", + "span.domain": "domain.tld", + "span.group": "488f09b46e5978be", + "span.op": "http.client", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "GET *", + "span.group": "37e3d9fab1ae9162", + "span.op": "http.client", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "GET *", + "span.group": "37e3d9fab1ae9162", + "span.op": "http.client", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "GET *", + "span.group": "37e3d9fab1ae9162", + "span.op": "http.client", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://127.0.0.1:1234", + "span.domain": "127.0.0.1:1234", + "span.group": "464fe695f9cf639c", + "span.op": "http.client", + "span.status_code": "200", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://127.0.0.1:1234", + "span.domain": "127.0.0.1:1234", + "span.group": "464fe695f9cf639c", + "span.op": "http.client", + "span.status_code": "200", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://127.0.0.1:1234", + "span.domain": "127.0.0.1:1234", + "span.group": "464fe695f9cf639c", + "span.op": "http.client", + "span.status_code": "200", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://*.domain.tld:1234", + "span.domain": "*.domain.tld:1234", + "span.group": "86818d1c74ecfc66", + "span.op": "http.client", + "span.status_code": "200", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://*.domain.tld:1234", + "span.domain": "*.domain.tld:1234", + "span.group": "86818d1c74ecfc66", + "span.op": "http.client", + "span.status_code": "200", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://*.domain.tld:1234", + "span.domain": "*.domain.tld:1234", + "span.group": "86818d1c74ecfc66", + "span.op": "http.client", + "span.status_code": "200", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://targetdomain.tld:1234", + "span.domain": "targetdomain.tld:1234", + "span.group": "72ab88b506cb04b2", + "span.op": "http.client", + "span.status_code": "200", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://targetdomain.tld:1234", + "span.domain": "targetdomain.tld:1234", + "span.group": "72ab88b506cb04b2", + "span.op": "http.client", + "span.status_code": "200", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://targetdomain.tld:1234", + "span.domain": "targetdomain.tld:1234", + "span.group": "72ab88b506cb04b2", + "span.op": "http.client", + "span.status_code": "200", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://targetdomain:1234", + "span.domain": "targetdomain:1234", + "span.group": "c8e531abe96ff360", + "span.op": "http.client", + "span.status_code": "200", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://targetdomain:1234", + "span.domain": "targetdomain:1234", + "span.group": "c8e531abe96ff360", + "span.op": "http.client", + "span.status_code": "200", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://targetdomain:1234", + "span.domain": "targetdomain:1234", + "span.group": "c8e531abe96ff360", + "span.op": "http.client", + "span.status_code": "200", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://*.domain.tld:1234", + "span.domain": "*.domain.tld:1234", + "span.group": "86818d1c74ecfc66", + "span.op": "http.client", + "span.status_code": "200", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://*.domain.tld:1234", + "span.domain": "*.domain.tld:1234", + "span.group": "86818d1c74ecfc66", + "span.op": "http.client", + "span.status_code": "200", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://*.domain.tld:1234", + "span.domain": "*.domain.tld:1234", + "span.group": "86818d1c74ecfc66", + "span.op": "http.client", + "span.status_code": "200", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://*.domain.tld:1234", + "span.domain": "*.domain.tld:1234", + "span.group": "86818d1c74ecfc66", + "span.op": "http.client", + "span.status_code": "200", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://*.domain.tld:1234", + "span.domain": "*.domain.tld:1234", + "span.group": "86818d1c74ecfc66", + "span.op": "http.client", + "span.status_code": "200", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "http", + "span.description": "POST http://*.domain.tld:1234", + "span.domain": "*.domain.tld:1234", + "span.group": "86818d1c74ecfc66", + "span.op": "http.client", + "span.status_code": "200", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SELECT", + "span.category": "db", + "span.description": "SeLeCt column FROM tAbLe WHERE id IN (%s)", + "span.domain": "table", + "span.group": "f4a7fef06db3d88e", + "span.op": "db.sql.query", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SELECT", + "span.category": "db", + "span.description": "SeLeCt column FROM tAbLe WHERE id IN (%s)", + "span.domain": "table", + "span.group": "f4a7fef06db3d88e", + "span.op": "db.sql.query", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SELECT", + "span.category": "db", + "span.description": "SeLeCt column FROM tAbLe WHERE id IN (%s)", + "span.domain": "table", + "span.group": "f4a7fef06db3d88e", + "span.op": "db.sql.query", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SELECT", + "span.category": "db", + "span.description": "select column FROM table WHERE id IN (%s)", + "span.domain": "table", + "span.group": "4f9711d2d09963b9", + "span.op": "db", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SELECT", + "span.category": "db", + "span.description": "select column FROM table WHERE id IN (%s)", + "span.domain": "table", + "span.group": "4f9711d2d09963b9", + "span.op": "db", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SELECT", + "span.category": "db", + "span.description": "select column FROM table WHERE id IN (%s)", + "span.domain": "table", + "span.group": "4f9711d2d09963b9", + "span.op": "db", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "INSERT", + "span.category": "db", + "span.domain": "table", + "span.op": "db.sql.query", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "INSERT", + "span.category": "db", + "span.domain": "table", + "span.op": "db.sql.query", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "INSERT", + "span.category": "db", + "span.domain": "table", + "span.op": "db.sql.query", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "INSERT", + "span.category": "db", + "span.description": "INSERT INTO from_date (..) VALUES (%s)", + "span.domain": ",from_date,", + "span.group": "e4ea457c8e7e4109", + "span.op": "db.sql.query", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "INSERT", + "span.category": "db", + "span.description": "INSERT INTO from_date (..) VALUES (%s)", + "span.domain": ",from_date,", + "span.group": "e4ea457c8e7e4109", + "span.op": "db.sql.query", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "INSERT", + "span.category": "db", + "span.description": "INSERT INTO from_date (..) VALUES (%s)", + "span.domain": ",from_date,", + "span.group": "e4ea457c8e7e4109", + "span.op": "db.sql.query", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "INSERT", + "span.category": "db", + "span.domain": "table", + "span.op": "db", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "INSERT", + "span.category": "db", + "span.domain": "table", + "span.op": "db", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "INSERT", + "span.category": "db", + "span.domain": "table", + "span.op": "db", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SELECT", + "span.category": "db", + "span.description": "SELECT * FROM table WHERE id IN (val)", + "span.domain": "table", + "span.group": "03cb381cee3f1463", + "span.op": "db.sql.query", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SELECT", + "span.category": "db", + "span.description": "SELECT * FROM table WHERE id IN (val)", + "span.domain": "table", + "span.group": "03cb381cee3f1463", + "span.op": "db.sql.query", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SELECT", + "span.category": "db", + "span.description": "SELECT * FROM table WHERE id IN (val)", + "span.domain": "table", + "span.group": "03cb381cee3f1463", + "span.op": "db.sql.query", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SELECT", + "span.category": "db", + "span.description": "SELECT col FROM table WHERE col = %s", + "span.domain": ",table,", + "span.group": "e0f7e81a59b030ba", + "span.op": "db", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SELECT", + "span.category": "db", + "span.description": "SELECT col FROM table WHERE col = %s", + "span.domain": ",table,", + "span.group": "e0f7e81a59b030ba", + "span.op": "db", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SELECT", + "span.category": "db", + "span.description": "SELECT col FROM table WHERE col = %s", + "span.domain": ",table,", + "span.group": "e0f7e81a59b030ba", + "span.op": "db", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "DELETE", + "span.category": "db", + "span.domain": "table", + "span.op": "db", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "DELETE", + "span.category": "db", + "span.domain": "table", + "span.op": "db", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "DELETE", + "span.category": "db", + "span.domain": "table", + "span.op": "db", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "UPDATE", + "span.category": "db", + "span.domain": "table", + "span.op": "db", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "UPDATE", + "span.category": "db", + "span.domain": "table", + "span.op": "db", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "UPDATE", + "span.category": "db", + "span.domain": "table", + "span.op": "db", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SAVEPOINT", + "span.category": "db", + "span.description": "SAVEPOINT %s", + "span.group": "3f955cbde39e04b9", + "span.op": "db", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SAVEPOINT", + "span.category": "db", + "span.description": "SAVEPOINT %s", + "span.group": "3f955cbde39e04b9", + "span.op": "db", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.action": "SAVEPOINT", + "span.category": "db", + "span.description": "SAVEPOINT %s", + "span.group": "3f955cbde39e04b9", + "span.op": "db", + "transaction": "gEt /api/:version/users/", + "transaction.method": "POST", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "db.redis", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "db.redis", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "db.redis", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "db.redis", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "db.redis", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "db.redis", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "resource", + "span.description": "browser-extension://*", + "span.domain": "*", + "span.group": "3e92c536f98104b2", + "span.op": "resource.script", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "resource", + "span.description": "browser-extension://*", + "span.domain": "*", + "span.group": "3e92c536f98104b2", + "span.op": "resource.script", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "resource", + "span.description": "browser-extension://*", + "span.domain": "*", + "span.group": "3e92c536f98104b2", + "span.op": "resource.script", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "file_extension": "js", + "span.category": "resource", + "span.description": "http://domain/static/myscript-*.js", + "span.domain": "domain", + "span.group": "022f81fdf31228bf", + "span.op": "resource.script", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "file_extension": "js", + "span.category": "resource", + "span.description": "http://domain/static/myscript-*.js", + "span.domain": "domain", + "span.group": "022f81fdf31228bf", + "span.op": "resource.script", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1597976302), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 2000.0, + ], + ), + tags: { + "environment": "fake_environment", + "file_extension": "js", + "span.category": "resource", + "span.description": "http://domain/static/myscript-*.js", + "span.domain": "domain", + "span.group": "022f81fdf31228bf", + "span.op": "resource.script", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1694732408), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1694732408), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 477.800131, + ], + ), + tags: { + "environment": "fake_environment", + "file_extension": "css", + "resource.render_blocking_status": "blocking", + "span.category": "resource", + "span.description": "https://*.domain.com/*/*.CSS", + "span.domain": "*.domain.com", + "span.group": "7f402250846262be", + "span.op": "resource.css", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1694732408), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 477.800131, + ], + ), + tags: { + "environment": "fake_environment", + "file_extension": "css", + "resource.render_blocking_status": "blocking", + "span.category": "resource", + "span.description": "https://*.domain.com/*/*.CSS", + "span.domain": "*.domain.com", + "span.group": "7f402250846262be", + "span.op": "resource.css", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1694732408), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 477.800131, + ], + ), + tags: { + "environment": "fake_environment", + "file_extension": "css", + "resource.render_blocking_status": "blocking", + "span.category": "resource", + "span.description": "https://*.domain.com/*/*.CSS", + "span.domain": "*.domain.com", + "span.group": "7f402250846262be", + "span.op": "resource.css", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1694732408), + width: 0, + name: MetricName( + "d:spans/http.response_content_length@byte", + ), + value: Distribution( + [ + 36170.0, + ], + ), + tags: { + "environment": "fake_environment", + "file_extension": "css", + "resource.render_blocking_status": "blocking", + "span.description": "https://*.domain.com/*/*.CSS", + "span.domain": "*.domain.com", + "span.group": "7f402250846262be", + "span.op": "resource.css", + "transaction": "gEt /api/:version/users/", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1694732408), + width: 0, + name: MetricName( + "d:spans/http.decoded_response_content_length@byte", + ), + value: Distribution( + [ + 128950.0, + ], + ), + tags: { + "environment": "fake_environment", + "file_extension": "css", + "resource.render_blocking_status": "blocking", + "span.description": "https://*.domain.com/*/*.CSS", + "span.domain": "*.domain.com", + "span.group": "7f402250846262be", + "span.op": "resource.css", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1694732408), + width: 0, + name: MetricName( + "d:spans/http.response_transfer_size@byte", + ), + value: Distribution( + [ + 36470.0, + ], + ), + tags: { + "environment": "fake_environment", + "file_extension": "css", + "resource.render_blocking_status": "blocking", + "span.description": "https://*.domain.com/*/*.CSS", + "span.domain": "*.domain.com", + "span.group": "7f402250846262be", + "span.op": "resource.css", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1694732408), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1694732408), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 477.800131, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "resource", + "span.description": "*/zero-length-*", + "span.group": "c7d3c9d83f92123a", + "span.op": "resource.script", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1694732408), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 477.800131, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "resource", + "span.description": "*/zero-length-*", + "span.group": "c7d3c9d83f92123a", + "span.op": "resource.script", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1694732408), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 477.800131, + ], + ), + tags: { + "environment": "fake_environment", + "span.category": "resource", + "span.description": "*/zero-length-*", + "span.group": "c7d3c9d83f92123a", + "span.op": "resource.script", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1702474613), + width: 0, + name: MetricName( + "c:spans/usage@none", + ), + value: Counter( + 1.0, + ), + tags: {}, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1702474613), + width: 0, + name: MetricName( + "d:spans/exclusive_time@millisecond", + ), + value: Distribution( + [ + 32.000065, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "ui.interaction.click", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1702474613), + width: 0, + name: MetricName( + "d:spans/exclusive_time_light@millisecond", + ), + value: Distribution( + [ + 32.000065, + ], + ), + tags: { + "span.description": "my-component-name", + "span.group": "e674f9eca1d88a4d", + "span.op": "ui.interaction.click", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, + Bucket { + timestamp: UnixTimestamp(1702474613), + width: 0, + name: MetricName( + "d:spans/duration@millisecond", + ), + value: Distribution( + [ + 32.000065, + ], + ), + tags: { + "environment": "fake_environment", + "span.op": "ui.interaction.click", + "transaction": "gEt /api/:version/users/", + "transaction.op": "myop", + }, + metadata: BucketMetadata { + merges: 1, + received_at: Some( + UnixTimestamp(0), + ), + }, + }, +] diff --git a/relay-server/src/metrics_extraction/transactions/mod.rs b/relay-server/src/metrics_extraction/transactions/mod.rs index a05ccf9cc7..4df374bd7e 100644 --- a/relay-server/src/metrics_extraction/transactions/mod.rs +++ b/relay-server/src/metrics_extraction/transactions/mod.rs @@ -247,7 +247,7 @@ impl ExtractedMetrics { /// A utility that extracts metrics from transactions. pub struct TransactionExtractor<'a> { pub config: &'a TransactionMetricsConfig, - pub generic_config: Option<&'a CombinedMetricExtractionConfig<'a>>, + pub generic_config: Option>, pub transaction_from_dsc: Option<&'a str>, pub sampling_result: &'a SamplingResult, pub has_profile: bool, @@ -2183,7 +2183,7 @@ mod tests { let extractor = TransactionExtractor { config: &config, - generic_config: Some(&combined_config), + generic_config: Some(combined_config), transaction_from_dsc: Some("test_transaction"), sampling_result: &SamplingResult::Pending, has_profile: false, diff --git a/relay-server/src/services/processor.rs b/relay-server/src/services/processor.rs index 5477f24724..71a0ed005a 100644 --- a/relay-server/src/services/processor.rs +++ b/relay-server/src/services/processor.rs @@ -1268,7 +1268,7 @@ impl EnvelopeProcessorService { let metrics = crate::metrics_extraction::event::extract_metrics( event, state.spans_extracted, - &combined_config, + combined_config, self.inner .config .aggregator_config_for(MetricNamespace::Spans) @@ -1286,7 +1286,7 @@ impl EnvelopeProcessorService { let extractor = TransactionExtractor { config: tx_config, - generic_config: Some(&combined_config), + generic_config: Some(combined_config), transaction_from_dsc, sampling_result, has_profile: state.profile_id.is_some(), @@ -1404,7 +1404,10 @@ impl EnvelopeProcessorService { .has_feature(Feature::DeviceClassSynthesis), enrich_spans: state .project_state - .has_feature(Feature::ExtractSpansAndSpanMetricsFromEvent), + .has_feature(Feature::ExtractSpansFromEvent) + || state + .project_state + .has_feature(Feature::ExtractCommonSpanMetricsFromEvent), max_tag_value_length: self .inner .config @@ -1543,12 +1546,18 @@ impl EnvelopeProcessorService { if state.has_event() { event::scrub(state)?; + if_processing!(self.inner.config, { - span::extract_from_event( - state, - &self.inner.config, - &self.inner.global_config.current(), - ); + if state + .project_state + .has_feature(Feature::ExtractSpansFromEvent) + { + span::extract_from_event( + state, + &self.inner.config, + &self.inner.global_config.current(), + ); + } }); } diff --git a/relay-server/src/services/processor/span/processing.rs b/relay-server/src/services/processor/span/processing.rs index 16f2ae8c36..ea35256827 100644 --- a/relay-server/src/services/processor/span/processing.rs +++ b/relay-server/src/services/processor/span/processing.rs @@ -159,7 +159,7 @@ pub fn process( let metrics = extract_metrics( span, - &CombinedMetricExtractionConfig::new(global_metrics_config, config), + CombinedMetricExtractionConfig::new(global_metrics_config, config), ); state.extracted_metrics.project_metrics.extend(metrics); item.set_metrics_extracted(true); @@ -298,13 +298,6 @@ pub fn extract_from_event( return; } - if !state - .project_state - .has_feature(Feature::ExtractSpansAndSpanMetricsFromEvent) - { - return; - } - if let Some(sample_rate) = global_config.options.span_extraction_sample_rate { if !sample(sample_rate) { return; @@ -736,7 +729,7 @@ mod tests { .config .features .0 - .insert(Feature::ExtractSpansAndSpanMetricsFromEvent); + .insert(Feature::ExtractCommonSpanMetricsFromEvent); let event = Event { ty: EventType::Transaction.into(), diff --git a/relay-server/src/services/project/metrics.rs b/relay-server/src/services/project/metrics.rs index 4c54bc5a60..c36f65bbd5 100644 --- a/relay-server/src/services/project/metrics.rs +++ b/relay-server/src/services/project/metrics.rs @@ -130,7 +130,7 @@ fn is_metric_namespace_valid(state: &ProjectState, namespace: MetricNamespace) - MetricNamespace::Sessions => true, MetricNamespace::Transactions => true, MetricNamespace::Spans => { - state.has_feature(Feature::ExtractSpansAndSpanMetricsFromEvent) + state.has_feature(Feature::ExtractCommonSpanMetricsFromEvent) || state.has_feature(Feature::StandaloneSpanIngestion) } MetricNamespace::Profiles => true, diff --git a/tests/integration/test_outcome.py b/tests/integration/test_outcome.py index 972bd3a624..d5bbfc5461 100644 --- a/tests/integration/test_outcome.py +++ b/tests/integration/test_outcome.py @@ -1741,7 +1741,7 @@ def test_span_outcomes( project_config.setdefault("features", []).extend( [ "projects:span-metrics-extraction", - "projects:span-metrics-extraction-all-modules", + "organizations:indexed-spans-extraction", ] ) project_config["transactionMetrics"] = { diff --git a/tests/integration/test_projectconfigs.py b/tests/integration/test_projectconfigs.py index 5e63beddf0..5e44867e3c 100644 --- a/tests/integration/test_projectconfigs.py +++ b/tests/integration/test_projectconfigs.py @@ -401,7 +401,7 @@ def test_get_global_config(mini_sentry, relay): data = get_response(relay, packed, signature, version="3") global_extraction_config = data["global"].pop("metricExtraction") - assert "span_metrics" in global_extraction_config["groups"] + assert "span_metrics_common" in global_extraction_config["groups"] assert data["global"] == mini_sentry.global_config diff --git a/tests/integration/test_spans.py b/tests/integration/test_spans.py index df4b01b3c3..b2733966f0 100644 --- a/tests/integration/test_spans.py +++ b/tests/integration/test_spans.py @@ -40,7 +40,7 @@ def test_span_extraction( project_config = mini_sentry.add_full_project_config(project_id) project_config["config"]["features"] = [ "projects:span-metrics-extraction", - "projects:span-metrics-extraction-all-modules", + "organizations:indexed-spans-extraction", ] project_config["config"]["transactionMetrics"] = { "version": 3, @@ -192,6 +192,7 @@ def test_span_extraction_with_sampling( project_config = mini_sentry.add_full_project_config(project_id) project_config["config"]["features"] = [ "projects:span-metrics-extraction", + "organizations:indexed-spans-extraction", ] project_config["config"]["transactionMetrics"] = { "version": 3, @@ -235,6 +236,7 @@ def test_duplicate_performance_score(mini_sentry, relay): project_config = mini_sentry.add_full_project_config(project_id) project_config["config"]["features"] = [ "projects:span-metrics-extraction", + "organizations:indexed-spans-extraction", ] project_config["config"]["transactionMetrics"] = { "version": 1, @@ -939,6 +941,7 @@ def test_span_extraction_with_metrics_summary( project_config["config"]["features"] = [ "organizations:custom-metrics", "projects:span-metrics-extraction", + "organizations:indexed-spans-extraction", ] event = make_transaction({"event_id": "cbf6960622e14a45abc1f03b2055b186"}) @@ -1118,6 +1121,7 @@ def test_span_extraction_with_ddm_missing_values( project_config["config"]["features"] = [ "organizations:custom-metrics", "projects:span-metrics-extraction", + "organizations:indexed-spans-extraction", ] event = make_transaction({"event_id": "cbf6960622e14a45abc1f03b2055b186"}) @@ -1529,6 +1533,7 @@ def test_rate_limit_indexed_consistent_extracted( project_config["config"]["transactionMetrics"] = {"version": 3} project_config["config"]["features"] = [ "projects:span-metrics-extraction", + "organizations:indexed-spans-extraction", ] project_config["config"]["quotas"] = [ { @@ -1692,6 +1697,7 @@ def test_span_extraction_with_tags( project_config = mini_sentry.add_full_project_config(project_id) project_config["config"]["features"] = [ "projects:span-metrics-extraction", + "organizations:indexed-spans-extraction", ] event = make_transaction(