relay_server/services/processor/
span.rs

1//! Processor code related to standalone spans.
2
3use relay_dynamic_config::Feature;
4
5use crate::envelope::ItemType;
6use crate::managed::{ItemAction, TypedEnvelope};
7use crate::services::processor::{SpanGroup, should_filter};
8
9#[cfg(feature = "processing")]
10mod processing;
11use crate::services::projects::project::ProjectInfo;
12#[cfg(feature = "processing")]
13pub use processing::*;
14use relay_config::Config;
15
16pub fn filter(
17    managed_envelope: &mut TypedEnvelope<SpanGroup>,
18    config: &Config,
19    project_info: &ProjectInfo,
20) {
21    let disabled = should_filter(config, project_info, Feature::StandaloneSpanIngestion);
22    if !disabled {
23        return;
24    }
25
26    managed_envelope.retain_items(|item| match item.ty() {
27        ItemType::Span => {
28            relay_log::debug!("dropping span because feature is disabled");
29            ItemAction::DropSilently
30        }
31        _ => ItemAction::Keep,
32    });
33}