diff --git a/meilisearch-http/Cargo.toml b/meilisearch-http/Cargo.toml index 9f06debaf..0a5cdff7f 100644 --- a/meilisearch-http/Cargo.toml +++ b/meilisearch-http/Cargo.toml @@ -57,6 +57,7 @@ platform-dirs = "0.3.0" rand = "0.8.5" rayon = "1.5.1" regex = "1.5.5" +reqwest = { version = "0.11.4", features = ["rustls-tls", "json"], default-features = false } rustls = "0.20.4" rustls-pemfile = "0.3.0" segment = { version = "0.2.0", optional = true } diff --git a/meilisearch-http/src/analytics/segment_analytics.rs b/meilisearch-http/src/analytics/segment_analytics.rs index 49f5aed3d..20df96942 100644 --- a/meilisearch-http/src/analytics/segment_analytics.rs +++ b/meilisearch-http/src/analytics/segment_analytics.rs @@ -81,7 +81,19 @@ impl SegmentAnalytics { let user_id = user_id.unwrap_or_else(|| Uuid::new_v4().to_string()); write_user_id(&opt.db_path, &user_id); - let client = HttpClient::default(); + let client = reqwest::Client::builder() + .connect_timeout(Duration::from_secs(10)) + .build(); + + // if reqwest throws an error we won't be able to send analytics + if client.is_err() { + return super::MockAnalytics::new(opt); + } + + let client = HttpClient::new( + client.unwrap(), + "https://telemetry.meilisearch.com".to_string(), + ); let user = User::UserId { user_id }; let mut batcher = AutoBatcher::new(client, Batcher::new(None), SEGMENT_API_KEY.to_string());