Skip to content

Commit

Permalink
ref(server): Organize project services in nested modules
Browse files Browse the repository at this point in the history
  • Loading branch information
Dav1dde committed Oct 15, 2024
1 parent fb6bdef commit aa726be
Show file tree
Hide file tree
Showing 24 changed files with 53 additions and 47 deletions.
2 changes: 1 addition & 1 deletion relay-server/src/endpoints/batch_metrics.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ use serde::{Deserialize, Serialize};
use crate::extractors::{SignedBytes, StartTime};
use crate::service::ServiceState;
use crate::services::processor::ProcessBatchedMetrics;
use crate::services::project_cache::BucketSource;
use crate::services::projects::cache::BucketSource;

#[derive(Debug, Serialize, Deserialize)]
struct SendMetricsResponse {}
Expand Down
2 changes: 1 addition & 1 deletion relay-server/src/endpoints/common.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ use crate::service::ServiceState;
use crate::services::buffer::EnvelopeBuffer;
use crate::services::outcome::{DiscardReason, Outcome};
use crate::services::processor::{MetricData, ProcessMetricMeta, ProcessingGroup};
use crate::services::project_cache::{CheckEnvelope, ProcessMetrics, ValidateEnvelope};
use crate::services::projects::cache::{CheckEnvelope, ProcessMetrics, ValidateEnvelope};
use crate::statsd::{RelayCounters, RelayHistograms};
use crate::utils::{self, ApiErrorResponse, FormDataIter, ManagedEnvelope};

Expand Down
6 changes: 4 additions & 2 deletions relay-server/src/endpoints/project_configs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,10 @@ use crate::endpoints::forward;
use crate::extractors::SignedJson;
use crate::service::ServiceState;
use crate::services::global_config::{self, StatusResponse};
use crate::services::project::{LimitedParsedProjectState, ParsedProjectState, ProjectState};
use crate::services::project_cache::{GetCachedProjectState, GetProjectState};
use crate::services::projects::cache::{GetCachedProjectState, GetProjectState};
use crate::services::projects::project::{
LimitedParsedProjectState, ParsedProjectState, ProjectState,
};

/// V2 version of this endpoint.
///
Expand Down
2 changes: 1 addition & 1 deletion relay-server/src/service.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ use crate::services::metrics::{Aggregator, RouterService};
use crate::services::outcome::{OutcomeProducer, OutcomeProducerService, TrackOutcome};
use crate::services::outcome_aggregator::OutcomeAggregator;
use crate::services::processor::{self, EnvelopeProcessor, EnvelopeProcessorService};
use crate::services::project_cache::{ProjectCache, ProjectCacheService, Services};
use crate::services::projects::cache::{ProjectCache, ProjectCacheService, Services};
use crate::services::relays::{RelayCache, RelayCacheService};
use crate::services::stats::RelayStats;
#[cfg(feature = "processing")]
Expand Down
2 changes: 1 addition & 1 deletion relay-server/src/services/buffer/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ use crate::services::outcome::DiscardReason;
use crate::services::outcome::Outcome;
use crate::services::outcome::TrackOutcome;
use crate::services::processor::ProcessingGroup;
use crate::services::project_cache::{DequeuedEnvelope, ProjectCache, UpdateProject};
use crate::services::projects::cache::{DequeuedEnvelope, ProjectCache, UpdateProject};

use crate::services::test_store::TestStore;
use crate::statsd::{RelayCounters, RelayHistograms};
Expand Down
7 changes: 1 addition & 6 deletions relay-server/src/services/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -35,18 +35,13 @@ pub mod metrics;
pub mod outcome;
pub mod outcome_aggregator;
pub mod processor;
pub mod project;
pub mod project_cache;
pub mod project_local;
pub mod project_upstream;
pub mod projects;
pub mod relays;
pub mod server;
pub mod spooler;
pub mod stats;
pub mod test_store;
pub mod upstream;

#[cfg(feature = "processing")]
pub mod project_redis;
#[cfg(feature = "processing")]
pub mod store;
4 changes: 2 additions & 2 deletions relay-server/src/services/processor.rs
Original file line number Diff line number Diff line change
Expand Up @@ -72,10 +72,10 @@ use crate::services::global_config::GlobalConfigHandle;
use crate::services::metrics::{Aggregator, MergeBuckets};
use crate::services::outcome::{DiscardReason, Outcome, TrackOutcome};
use crate::services::processor::event::FiltersStatus;
use crate::services::project::{ProjectInfo, ProjectState};
use crate::services::project_cache::{
use crate::services::projects::cache::{
AddMetricMeta, BucketSource, ProcessMetrics, ProjectCache, UpdateRateLimits,
};
use crate::services::projects::project::{ProjectInfo, ProjectState};
use crate::services::test_store::{Capture, TestStore};
use crate::services::upstream::{
SendRequest, UpstreamRelay, UpstreamRequest, UpstreamRequestError,
Expand Down
2 changes: 1 addition & 1 deletion relay-server/src/services/processor/dynamic_sampling.rs
Original file line number Diff line number Diff line change
Expand Up @@ -252,7 +252,7 @@ mod tests {
use crate::services::processor::{
ProcessEnvelope, ProcessingExtractedMetrics, ProcessingGroup, SpanGroup,
};
use crate::services::project::ProjectInfo;
use crate::services::projects::project::ProjectInfo;
use crate::testutils::{
self, create_test_processor, new_envelope, state_with_rule_and_condition,
};
Expand Down
4 changes: 2 additions & 2 deletions relay-server/src/services/processor/metrics.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ use relay_quotas::Scoping;

use crate::metrics::MetricOutcomes;
use crate::services::outcome::Outcome;
use crate::services::project::ProjectInfo;
use crate::services::project_cache::BucketSource;
use crate::services::projects::cache::BucketSource;
use crate::services::projects::project::ProjectInfo;

/// Checks if the namespace of the passed bucket is valid.
///
Expand Down
2 changes: 1 addition & 1 deletion relay-server/src/services/processor/profile.rs
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ mod tests {
use crate::envelope::Envelope;
use crate::extractors::RequestMeta;
use crate::services::processor::{ProcessEnvelope, ProcessingGroup};
use crate::services::project::ProjectInfo;
use crate::services::projects::project::ProjectInfo;
use crate::testutils::create_test_processor;
use crate::utils::ManagedEnvelope;

Expand Down
2 changes: 1 addition & 1 deletion relay-server/src/services/processor/report.rs
Original file line number Diff line number Diff line change
Expand Up @@ -274,7 +274,7 @@ mod tests {
use crate::extractors::RequestMeta;
use crate::services::outcome::RuleCategory;
use crate::services::processor::{ProcessEnvelope, ProcessingGroup};
use crate::services::project::ProjectInfo;
use crate::services::projects::project::ProjectInfo;
use crate::testutils::{self, create_test_processor};
use crate::utils::ManagedEnvelope;

Expand Down
2 changes: 1 addition & 1 deletion relay-server/src/services/processor/span/processing.rs
Original file line number Diff line number Diff line change
Expand Up @@ -768,7 +768,7 @@ mod tests {

use crate::envelope::Envelope;
use crate::services::processor::{ProcessingExtractedMetrics, ProcessingGroup};
use crate::services::project::ProjectInfo;
use crate::services::projects::project::ProjectInfo;
use crate::utils::ManagedEnvelope;

use super::*;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ use crate::services::global_config;
use crate::services::processor::{
EncodeMetrics, EnvelopeProcessor, MetricData, ProcessEnvelope, ProcessingGroup, ProjectMetrics,
};
use crate::services::project::state::UpstreamProjectState;
use crate::services::projects::project::state::UpstreamProjectState;
use crate::Envelope;
use chrono::{DateTime, Utc};
use hashbrown::HashSet;
Expand All @@ -29,11 +29,13 @@ use tokio::time::Instant;

use crate::services::metrics::{Aggregator, FlushBuckets};
use crate::services::outcome::{DiscardReason, Outcome, TrackOutcome};
use crate::services::project::{Project, ProjectFetchState, ProjectSender, ProjectState};
use crate::services::project_local::{LocalProjectSource, LocalProjectSourceService};
use crate::services::projects::project::{Project, ProjectFetchState, ProjectSender, ProjectState};
use crate::services::projects::source::local::{LocalProjectSource, LocalProjectSourceService};
#[cfg(feature = "processing")]
use crate::services::project_redis::RedisProjectSource;
use crate::services::project_upstream::{UpstreamProjectSource, UpstreamProjectSourceService};
use crate::services::projects::source::redis::RedisProjectSource;
use crate::services::projects::source::upstream::{
UpstreamProjectSource, UpstreamProjectSourceService,
};
use crate::services::spooler::{
self, Buffer, BufferService, DequeueMany, Enqueue, QueueKey, RemoveMany, RestoreIndex,
UnspooledEnvelope, BATCH_KEY_COUNT,
Expand Down
3 changes: 3 additions & 0 deletions relay-server/src/services/projects/mod.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
pub mod cache;
pub mod project;
pub mod source;
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,7 @@ use crate::envelope::ItemType;
use crate::services::metrics::{Aggregator, MergeBuckets};
use crate::services::outcome::{DiscardReason, Outcome};
use crate::services::processor::{EncodeMetricMeta, EnvelopeProcessor, ProcessProjectMetrics};
use crate::services::project::state::ExpiryState;
use crate::services::project_cache::{
use crate::services::projects::cache::{
CheckedEnvelope, ProcessMetrics, ProjectCache, RequestUpdate,
};
use crate::utils::{Enforcement, SeqCount};
Expand All @@ -28,7 +27,8 @@ use crate::utils::{CheckLimits, EnvelopeLimiter, ManagedEnvelope, RetryBackoff};
pub mod state;

pub use state::{
LimitedParsedProjectState, ParsedProjectState, ProjectFetchState, ProjectInfo, ProjectState,
ExpiryState, LimitedParsedProjectState, ParsedProjectState, ProjectFetchState, ProjectInfo,
ProjectState,
};

/// Sender type for messages that respond with project states.
Expand Down Expand Up @@ -433,7 +433,7 @@ impl Project {
/// `no_cache` should be passed from the requesting call. Updates with `no_cache` will always
/// take precedence.
///
/// [`ValidateEnvelope`]: crate::services::project_cache::ValidateEnvelope
/// [`ValidateEnvelope`]: crate::services::projects::cache::ValidateEnvelope
pub fn update_state(
&mut self,
project_cache: &Addr<ProjectCache>,
Expand Down Expand Up @@ -515,7 +515,7 @@ impl Project {

/// Runs the checks on incoming envelopes.
///
/// See, [`crate::services::project_cache::CheckEnvelope`] for more information
/// See, [`crate::services::projects::cache::CheckEnvelope`] for more information
///
/// * checks the rate limits
/// * validates the envelope meta in `check_request` - determines whether the given request
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ use tokio::time::Instant;
use relay_config::Config;
use relay_dynamic_config::ProjectConfig;

use crate::services::project::state::info::ProjectInfo;
use crate::services::project::ProjectState;
use crate::services::projects::project::state::info::ProjectInfo;
use crate::services::projects::project::ProjectState;

/// Hides a cached project state and only exposes it if it has not expired.
#[derive(Clone, Debug)]
Expand Down Expand Up @@ -65,7 +65,7 @@ impl ProjectFetchState {

/// Create a config that immediately counts as expired.
///
/// This is what [`Project`](crate::services::project::Project) initializes itself with.
/// This is what [`Project`](crate::services::projects::project::Project) initializes itself with.
pub fn expired() -> Self {
Self {
// Make sure the state immediately qualifies as expired:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ use url::Url;
use crate::envelope::Envelope;
use crate::extractors::RequestMeta;
use crate::services::outcome::DiscardReason;
use crate::services::project::PublicKeyConfig;
use crate::services::projects::project::PublicKeyConfig;

/// Information about an enabled project.
///
Expand Down Expand Up @@ -189,7 +189,7 @@ impl ProjectInfo {
/// scoping.
///
/// To get the own scoping of this ProjectKey without amending request information, use
/// [`Project::scoping`](crate::services::project::Project::scoping) instead.
/// [`Project::scoping`](crate::services::projects::project::Project::scoping) instead.
pub fn scope_request(&self, meta: &RequestMeta) -> Scoping {
let mut scoping = meta.get_partial_scoping();

Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ use relay_system::{AsyncResponse, FromMessage, Interface, Receiver, Sender, Serv
use tokio::sync::mpsc;
use tokio::time::Instant;

use crate::services::project::{ParsedProjectState, ProjectState};
use crate::services::project_cache::FetchOptionalProjectState;
use crate::services::projects::cache::FetchOptionalProjectState;
use crate::services::projects::project::{ParsedProjectState, ProjectState};

/// Service interface of the local project source.
#[derive(Debug)]
Expand Down Expand Up @@ -196,7 +196,7 @@ mod tests {
use std::str::FromStr;

use super::*;
use crate::services::project::{ProjectInfo, PublicKeyConfig};
use crate::services::projects::project::{ProjectInfo, PublicKeyConfig};

/// Tests that we can follow the symlinks and read the project file properly.
#[tokio::test]
Expand Down
4 changes: 4 additions & 0 deletions relay-server/src/services/projects/source/mod.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
pub mod local;
#[cfg(feature = "processing")]
pub mod redis;
pub mod upstream;
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ use relay_config::Config;
use relay_redis::{RedisError, RedisPool};
use relay_statsd::metric;

use crate::services::project::state::UpstreamProjectState;
use crate::services::project::{ParsedProjectState, ProjectState};
use crate::services::projects::project::state::UpstreamProjectState;
use crate::services::projects::project::{ParsedProjectState, ProjectState};
use crate::statsd::{RelayCounters, RelayHistograms, RelayTimers};

#[derive(Debug, Clone)]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,10 @@ use serde::{Deserialize, Serialize};
use tokio::sync::mpsc;
use tokio::time::Instant;

use crate::services::project::state::UpstreamProjectState;
use crate::services::project::ParsedProjectState;
use crate::services::project::ProjectState;
use crate::services::project_cache::FetchProjectState;
use crate::services::projects::cache::FetchProjectState;
use crate::services::projects::project::state::UpstreamProjectState;
use crate::services::projects::project::ParsedProjectState;
use crate::services::projects::project::ProjectState;
use crate::services::upstream::{
Method, RequestPriority, SendQuery, UpstreamQuery, UpstreamRelay, UpstreamRequestError,
};
Expand Down
4 changes: 2 additions & 2 deletions relay-server/src/services/spooler/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
//! be happening.
//!
//! The initial state is always [`InMemory`], and if the Relay can properly fetch all the
//! [`crate::services::project::ProjectState`] it continues to use the memory as temporary spool.
//! [`crate::services::projects::project::ProjectState`] it continues to use the memory as temporary spool.
//!
//! Keeping the envelopes in memory as long as we can, we ensure the fast unspool operations and
//! fast processing times.
Expand Down Expand Up @@ -55,7 +55,7 @@ use crate::envelope::{Envelope, EnvelopeError};
use crate::extractors::StartTime;
use crate::services::outcome::TrackOutcome;
use crate::services::processor::ProcessingGroup;
use crate::services::project_cache::{ProjectCache, RefreshIndexCache, UpdateSpoolIndex};
use crate::services::projects::cache::{ProjectCache, RefreshIndexCache, UpdateSpoolIndex};
use crate::services::test_store::TestStore;
use crate::statsd::{RelayCounters, RelayGauges, RelayHistograms, RelayTimers};
use crate::utils::{ManagedEnvelope, MemoryChecker};
Expand Down
2 changes: 1 addition & 1 deletion relay-server/src/testutils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ use crate::service::create_redis_pools;
use crate::services::global_config::GlobalConfigHandle;
use crate::services::outcome::TrackOutcome;
use crate::services::processor::{self, EnvelopeProcessorService};
use crate::services::project::ProjectInfo;
use crate::services::projects::project::ProjectInfo;
use crate::services::test_store::TestStore;
use crate::utils::{ThreadPool, ThreadPoolBuilder};

Expand Down

0 comments on commit aa726be

Please sign in to comment.