Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion src/components/validation/runner/io.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ use crate::{
Client as VectorClient, HealthCheckRequest, HealthCheckResponse, PushEventsRequest,
PushEventsResponse, Server as VectorServer, Service as VectorService, ServingStatus,
},
sources::util::grpc::run_grpc_server,
sources::util::grpc::{GrpcKeepaliveConfig, run_grpc_server},
};

#[derive(Clone)]
Expand Down Expand Up @@ -166,6 +166,7 @@ pub fn spawn_grpc_server<S>(
listen_addr.as_socket_addr(),
tls_settings,
service,
GrpcKeepaliveConfig::default(),
shutdown_signal,
);
pin!(server);
Expand Down
8 changes: 7 additions & 1 deletion src/sources/opentelemetry/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ use crate::{
grpc::Service,
http::{build_warp_filter, run_http_server},
},
util::grpc::run_grpc_server_with_routes,
util::grpc::{GrpcKeepaliveConfig, run_grpc_server_with_routes},
},
};
use futures::FutureExt;
Expand Down Expand Up @@ -173,12 +173,17 @@ pub struct GrpcConfig {
#[configurable(derived)]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tls: Option<TlsEnableableConfig>,

#[configurable(derived)]
#[serde(default)]
pub keepalive: GrpcKeepaliveConfig,
}

fn example_grpc_config() -> GrpcConfig {
GrpcConfig {
address: "0.0.0.0:4317".parse().unwrap(),
tls: None,
keepalive: GrpcKeepaliveConfig::default(),
}
}

Expand Down Expand Up @@ -325,6 +330,7 @@ impl SourceConfig for OpentelemetryConfig {
self.grpc.address,
grpc_tls_settings,
builder.routes(),
self.grpc.keepalive.clone(),
cx.shutdown.clone(),
)
.map_err(|error| {
Expand Down
3 changes: 3 additions & 0 deletions src/sources/opentelemetry/integration_tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ async fn receive_logs_legacy_namespace() {
grpc: GrpcConfig {
address: source_grpc_address().parse().unwrap(),
tls: Default::default(),
keepalive: Default::default(),
},
http: HttpConfig {
address: source_http_address().parse().unwrap(),
Expand Down Expand Up @@ -152,6 +153,7 @@ async fn receive_trace() {
grpc: GrpcConfig {
address: source_grpc_address().parse().unwrap(),
tls: Default::default(),
keepalive: Default::default(),
},
http: HttpConfig {
address: source_http_address().parse().unwrap(),
Expand Down Expand Up @@ -257,6 +259,7 @@ async fn receive_metric() {
grpc: GrpcConfig {
address: source_grpc_address().parse().unwrap(),
tls: Default::default(),
keepalive: Default::default(),
},
http: HttpConfig {
address: source_http_address().parse().unwrap(),
Expand Down
30 changes: 30 additions & 0 deletions src/sources/opentelemetry/tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,30 @@ fn generate_config() {
test_util::test_generate_config::<OpentelemetryConfig>();
}

#[test]
fn config_grpc_keepalive() {
let config: OpentelemetryConfig = toml::from_str(
r#"
[grpc]
address = "0.0.0.0:4317"

[grpc.keepalive]
max_connection_age_secs = 300
max_connection_age_grace_secs = 30

[http]
address = "0.0.0.0:4318"
"#,
)
.unwrap();

assert_eq!(config.grpc.keepalive.max_connection_age_secs, Some(300));
assert_eq!(
config.grpc.keepalive.max_connection_age_grace_secs,
Some(30)
);
}

#[tokio::test]
async fn receive_grpc_logs_vector_namespace() {
assert_source_compliance(&SOURCE_TAGS, async {
Expand Down Expand Up @@ -1175,6 +1199,7 @@ fn get_source_config_with_headers(
grpc: GrpcConfig {
address: grpc_addr,
tls: Default::default(),
keepalive: Default::default(),
},
http: HttpConfig {
address: http_addr,
Expand Down Expand Up @@ -1510,6 +1535,7 @@ pub async fn build_otlp_test_env(
grpc: GrpcConfig {
address: grpc_addr,
tls: Default::default(),
keepalive: Default::default(),
},
http: HttpConfig {
address: http_addr,
Expand Down Expand Up @@ -1589,6 +1615,7 @@ async fn http_logs_use_otlp_decoding_emits_metric() {
grpc: GrpcConfig {
address: grpc_addr,
tls: Default::default(),
keepalive: Default::default(),
},
http: HttpConfig {
address: http_addr,
Expand Down Expand Up @@ -1823,6 +1850,7 @@ mod otlp_decoding_config_tests {
grpc: GrpcConfig {
address: "0.0.0.0:4317".parse().unwrap(),
tls: None,
keepalive: Default::default(),
},
http: HttpConfig {
address: "0.0.0.0:4318".parse().unwrap(),
Expand Down Expand Up @@ -1863,6 +1891,7 @@ mod otlp_decoding_config_tests {
grpc: GrpcConfig {
address: "0.0.0.0:4317".parse().unwrap(),
tls: None,
keepalive: Default::default(),
},
http: HttpConfig {
address: "0.0.0.0:4318".parse().unwrap(),
Expand Down Expand Up @@ -1906,6 +1935,7 @@ mod otlp_decoding_config_tests {
grpc: GrpcConfig {
address: "0.0.0.0:4317".parse().unwrap(),
tls: None,
keepalive: Default::default(),
},
http: HttpConfig {
address: "0.0.0.0:4318".parse().unwrap(),
Expand Down
Loading
Loading