Skip to content

Commit bb998dc

Browse files
apollo_config_manager: add acquiring http server dynamic config
1 parent 7abccda commit bb998dc

File tree

6 files changed

+62
-0
lines changed

6 files changed

+62
-0
lines changed

Cargo.lock

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/apollo_config_manager/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ apollo_config.workspace = true
1717
apollo_config_manager_config.workspace = true
1818
apollo_config_manager_types.workspace = true
1919
apollo_consensus_config.workspace = true
20+
apollo_http_server_config.workspace = true
2021
apollo_infra.workspace = true
2122
apollo_mempool_config.workspace = true
2223
apollo_metrics.workspace = true

crates/apollo_config_manager/src/config_manager.rs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ use apollo_config_manager_config::config::ConfigManagerConfig;
22
use apollo_config_manager_types::communication::{ConfigManagerRequest, ConfigManagerResponse};
33
use apollo_config_manager_types::config_manager_types::ConfigManagerResult;
44
use apollo_consensus_config::config::ConsensusDynamicConfig;
5+
use apollo_http_server_config::config::HttpServerDynamicConfig;
56
use apollo_infra::component_definitions::{ComponentRequestHandler, ComponentStarter};
67
use apollo_mempool_config::config::MempoolDynamicConfig;
78
use apollo_node_config::node_config::NodeDynamicConfig;
@@ -38,6 +39,12 @@ impl ConfigManager {
3839
Ok(self.latest_node_dynamic_config.consensus_dynamic_config.as_ref().unwrap().clone())
3940
}
4041

42+
pub(crate) fn get_http_server_dynamic_config(
43+
&self,
44+
) -> ConfigManagerResult<HttpServerDynamicConfig> {
45+
Ok(self.latest_node_dynamic_config.http_server_dynamic_config.as_ref().unwrap().clone())
46+
}
47+
4148
pub(crate) fn get_mempool_dynamic_config(&self) -> ConfigManagerResult<MempoolDynamicConfig> {
4249
Ok(self.latest_node_dynamic_config.mempool_dynamic_config.as_ref().unwrap().clone())
4350
}
@@ -54,6 +61,11 @@ impl ComponentRequestHandler<ConfigManagerRequest, ConfigManagerResponse> for Co
5461
self.get_consensus_dynamic_config(),
5562
)
5663
}
64+
ConfigManagerRequest::GetHttpServerDynamicConfig => {
65+
ConfigManagerResponse::GetHttpServerDynamicConfig(
66+
self.get_http_server_dynamic_config(),
67+
)
68+
}
5769
ConfigManagerRequest::GetMempoolDynamicConfig => {
5870
ConfigManagerResponse::GetMempoolDynamicConfig(self.get_mempool_dynamic_config())
5971
}

crates/apollo_config_manager_types/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ workspace = true
1111

1212
[dependencies]
1313
apollo_consensus_config.workspace = true
14+
apollo_http_server_config.workspace = true
1415
apollo_infra.workspace = true
1516
apollo_mempool_config.workspace = true
1617
apollo_metrics.workspace = true

crates/apollo_config_manager_types/src/communication.rs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
use std::sync::Arc;
22

33
use apollo_consensus_config::config::ConsensusDynamicConfig;
4+
use apollo_http_server_config::config::HttpServerDynamicConfig;
45
use apollo_infra::component_client::{ClientError, LocalComponentClient, RemoteComponentClient};
56
use apollo_infra::component_definitions::{ComponentClient, PrioritizedRequest, RequestWrapper};
67
use apollo_infra::{impl_debug_for_infra_requests_and_responses, impl_labeled_request};
@@ -32,6 +33,10 @@ pub trait ConfigManagerClient: Send + Sync {
3233
&self,
3334
) -> ConfigManagerClientResult<ConsensusDynamicConfig>;
3435

36+
async fn get_http_server_dynamic_config(
37+
&self,
38+
) -> ConfigManagerClientResult<HttpServerDynamicConfig>;
39+
3540
async fn get_mempool_dynamic_config(&self) -> ConfigManagerClientResult<MempoolDynamicConfig>;
3641

3742
async fn set_node_dynamic_config(
@@ -48,6 +53,7 @@ pub trait ConfigManagerClient: Send + Sync {
4853
)]
4954
pub enum ConfigManagerRequest {
5055
GetConsensusDynamicConfig,
56+
GetHttpServerDynamicConfig,
5157
GetMempoolDynamicConfig,
5258
SetNodeDynamicConfig(NodeDynamicConfig),
5359
}
@@ -65,6 +71,7 @@ generate_permutation_labels! {
6571
#[derive(Clone, Serialize, Deserialize, AsRefStr)]
6672
pub enum ConfigManagerResponse {
6773
GetConsensusDynamicConfig(ConfigManagerResult<ConsensusDynamicConfig>),
74+
GetHttpServerDynamicConfig(ConfigManagerResult<HttpServerDynamicConfig>),
6875
GetMempoolDynamicConfig(ConfigManagerResult<MempoolDynamicConfig>),
6976
SetNodeDynamicConfig(ConfigManagerResult<()>),
7077
}
@@ -96,6 +103,19 @@ where
96103
)
97104
}
98105

106+
async fn get_http_server_dynamic_config(
107+
&self,
108+
) -> ConfigManagerClientResult<HttpServerDynamicConfig> {
109+
let request = ConfigManagerRequest::GetHttpServerDynamicConfig;
110+
handle_all_response_variants!(
111+
ConfigManagerResponse,
112+
GetHttpServerDynamicConfig,
113+
ConfigManagerClientError,
114+
ConfigManagerError,
115+
Direct
116+
)
117+
}
118+
99119
async fn get_mempool_dynamic_config(&self) -> ConfigManagerClientResult<MempoolDynamicConfig> {
100120
let request = ConfigManagerRequest::GetMempoolDynamicConfig;
101121
handle_all_response_variants!(

crates/apollo_dashboard/resources/dev_grafana.json

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2076,6 +2076,32 @@
20762076
],
20772077
"extra_params": {}
20782078
},
2079+
{
2080+
"title": "get_http_server_dynamic_config (client-side)",
2081+
"description": "client-side infra metrics for request type get_http_server_dynamic_config",
2082+
"type": "timeseries",
2083+
"exprs": [
2084+
"histogram_quantile(0.50,label_replace(sum by (le) (rate(config_manager_local_response_times_secs_bucket{cluster=~\"$cluster\", namespace=~\"$namespace\", request_variant=\"get_http_server_dynamic_config\"}[5m])), \"label_name\", \"0.50 config_manager_local_response_times_secs\", \"le\", \".*\"))",
2085+
"histogram_quantile(0.95,label_replace(sum by (le) (rate(config_manager_local_response_times_secs_bucket{cluster=~\"$cluster\", namespace=~\"$namespace\", request_variant=\"get_http_server_dynamic_config\"}[5m])), \"label_name\", \"0.95 config_manager_local_response_times_secs\", \"le\", \".*\"))",
2086+
"histogram_quantile(0.50,label_replace(sum by (le) (rate(config_manager_remote_response_times_secs_bucket{cluster=~\"$cluster\", namespace=~\"$namespace\", request_variant=\"get_http_server_dynamic_config\"}[5m])), \"label_name\", \"0.50 config_manager_remote_response_times_secs\", \"le\", \".*\"))",
2087+
"histogram_quantile(0.95,label_replace(sum by (le) (rate(config_manager_remote_response_times_secs_bucket{cluster=~\"$cluster\", namespace=~\"$namespace\", request_variant=\"get_http_server_dynamic_config\"}[5m])), \"label_name\", \"0.95 config_manager_remote_response_times_secs\", \"le\", \".*\"))",
2088+
"histogram_quantile(0.50,label_replace(sum by (le) (rate(config_manager_remote_client_communication_failure_times_secs_bucket{cluster=~\"$cluster\", namespace=~\"$namespace\", request_variant=\"get_http_server_dynamic_config\"}[5m])), \"label_name\", \"0.50 config_manager_remote_client_communication_failure_times_secs\", \"le\", \".*\"))",
2089+
"histogram_quantile(0.95,label_replace(sum by (le) (rate(config_manager_remote_client_communication_failure_times_secs_bucket{cluster=~\"$cluster\", namespace=~\"$namespace\", request_variant=\"get_http_server_dynamic_config\"}[5m])), \"label_name\", \"0.95 config_manager_remote_client_communication_failure_times_secs\", \"le\", \".*\"))"
2090+
],
2091+
"extra_params": {}
2092+
},
2093+
{
2094+
"title": "get_http_server_dynamic_config (server-side)",
2095+
"description": "server-side infra metrics for request type get_http_server_dynamic_config",
2096+
"type": "timeseries",
2097+
"exprs": [
2098+
"histogram_quantile(0.50,label_replace(sum by (le) (rate(config_manager_processing_times_secs_bucket{cluster=~\"$cluster\", namespace=~\"$namespace\", request_variant=\"get_http_server_dynamic_config\"}[5m])), \"label_name\", \"0.50 config_manager_processing_times_secs\", \"le\", \".*\"))",
2099+
"histogram_quantile(0.95,label_replace(sum by (le) (rate(config_manager_processing_times_secs_bucket{cluster=~\"$cluster\", namespace=~\"$namespace\", request_variant=\"get_http_server_dynamic_config\"}[5m])), \"label_name\", \"0.95 config_manager_processing_times_secs\", \"le\", \".*\"))",
2100+
"histogram_quantile(0.50,label_replace(sum by (le) (rate(config_manager_queueing_times_secs_bucket{cluster=~\"$cluster\", namespace=~\"$namespace\", request_variant=\"get_http_server_dynamic_config\"}[5m])), \"label_name\", \"0.50 config_manager_queueing_times_secs\", \"le\", \".*\"))",
2101+
"histogram_quantile(0.95,label_replace(sum by (le) (rate(config_manager_queueing_times_secs_bucket{cluster=~\"$cluster\", namespace=~\"$namespace\", request_variant=\"get_http_server_dynamic_config\"}[5m])), \"label_name\", \"0.95 config_manager_queueing_times_secs\", \"le\", \".*\"))"
2102+
],
2103+
"extra_params": {}
2104+
},
20792105
{
20802106
"title": "get_mempool_dynamic_config (client-side)",
20812107
"description": "client-side infra metrics for request type get_mempool_dynamic_config",

0 commit comments

Comments
 (0)