Skip to content

Commit f90714d

Browse files
committed
fix: add resource utilization middleware to ONLY the ingest routes
1 parent 891e881 commit f90714d

File tree

3 files changed

+23
-8
lines changed

3 files changed

+23
-8
lines changed

src/handlers/http/modal/ingest_server.rs

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ use std::thread;
2121

2222
use actix_web::web;
2323
use actix_web::Scope;
24+
use actix_web::middleware::from_fn;
2425
use actix_web_prometheus::PrometheusMetrics;
2526
use async_trait::async_trait;
2627
use base64::Engine;
@@ -67,7 +68,10 @@ impl ParseableServer for IngestServer {
6768
.service(
6869
// Base path "{url}/api/v1"
6970
web::scope(&base_path())
70-
.service(Server::get_ingest_factory())
71+
.service(
72+
Server::get_ingest_factory()
73+
.wrap(from_fn(resource_check::check_resource_utilization_middleware))
74+
)
7175
.service(Self::logstream_api())
7276
.service(Server::get_about_factory())
7377
.service(Self::analytics_factory())
@@ -77,7 +81,10 @@ impl ParseableServer for IngestServer {
7781
.service(Server::get_metrics_webscope())
7882
.service(Server::get_readiness_factory()),
7983
)
80-
.service(Server::get_ingest_otel_factory());
84+
.service(
85+
Server::get_ingest_otel_factory()
86+
.wrap(from_fn(resource_check::check_resource_utilization_middleware))
87+
);
8188
}
8289

8390
async fn load_metadata(&self) -> anyhow::Result<Option<Bytes>> {
@@ -229,7 +236,8 @@ impl IngestServer {
229236
web::post()
230237
.to(ingest::post_event)
231238
.authorize_for_stream(Action::Ingest),
232-
),
239+
)
240+
.wrap(from_fn(resource_check::check_resource_utilization_middleware)),
233241
)
234242
.service(
235243
web::resource("/sync")

src/handlers/http/modal/mod.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ use crate::{
4545
utils::get_node_id,
4646
};
4747

48-
use super::{audit, cross_origin_config, health_check, resource_check, API_BASE_PATH, API_VERSION};
48+
use super::{audit, cross_origin_config, health_check, API_BASE_PATH, API_VERSION};
4949

5050
pub mod ingest;
5151
pub mod ingest_server;
@@ -113,7 +113,6 @@ pub trait ParseableServer {
113113
.wrap(prometheus.clone())
114114
.configure(|config| Self::configure_routes(config, oidc_client.clone()))
115115
.wrap(from_fn(health_check::check_shutdown_middleware))
116-
.wrap(from_fn(resource_check::check_resource_utilization_middleware))
117116
.wrap(from_fn(audit::audit_log_middleware))
118117
.wrap(actix_web::middleware::Logger::default())
119118
.wrap(actix_web::middleware::Compress::default())

src/handlers/http/modal/server.rs

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ use crate::sync::sync_start;
3838

3939
use actix_web::web;
4040
use actix_web::web::resource;
41+
use actix_web::middleware::from_fn;
4142
use actix_web::Resource;
4243
use actix_web::Scope;
4344
use actix_web_prometheus::PrometheusMetrics;
@@ -73,7 +74,10 @@ impl ParseableServer for Server {
7374
web::scope(&base_path())
7475
.service(Self::get_correlation_webscope())
7576
.service(Self::get_query_factory())
76-
.service(Self::get_ingest_factory())
77+
.service(
78+
Self::get_ingest_factory()
79+
.wrap(from_fn(resource_check::check_resource_utilization_middleware))
80+
)
7781
.service(Self::get_liveness_factory())
7882
.service(Self::get_readiness_factory())
7983
.service(Self::get_about_factory())
@@ -96,7 +100,10 @@ impl ParseableServer for Server {
96100
.service(Server::get_prism_logstream())
97101
.service(Server::get_prism_datasets()),
98102
)
99-
.service(Self::get_ingest_otel_factory())
103+
.service(
104+
Self::get_ingest_otel_factory()
105+
.wrap(from_fn(resource_check::check_resource_utilization_middleware))
106+
)
100107
.service(Self::get_generated());
101108
}
102109

@@ -374,7 +381,8 @@ impl Server {
374381
.to(logstream::delete)
375382
.authorize_for_stream(Action::DeleteStream),
376383
)
377-
.app_data(web::JsonConfig::default().limit(MAX_EVENT_PAYLOAD_SIZE)),
384+
.app_data(web::JsonConfig::default().limit(MAX_EVENT_PAYLOAD_SIZE))
385+
.wrap(from_fn(resource_check::check_resource_utilization_middleware)),
378386
)
379387
.service(
380388
// GET "/logstream/{logstream}/info" ==> Get info for given log stream

0 commit comments

Comments
 (0)