From 7cb4cc93a0e805d0801ee7f8a1b14c13cf3fbb7a Mon Sep 17 00:00:00 2001 From: Akshay Date: Thu, 16 Nov 2023 15:11:20 +0000 Subject: [PATCH] reindex events are not sent unless stats are collected index-stats must be consolidated before making a check for whether or not the analytics event must be sent. --- server/bleep/src/indexes/analytics.rs | 8 +++++--- server/bleep/src/indexes/file.rs | 3 ++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/server/bleep/src/indexes/analytics.rs b/server/bleep/src/indexes/analytics.rs index 7728e3d9a9..aaab8a3851 100644 --- a/server/bleep/src/indexes/analytics.rs +++ b/server/bleep/src/indexes/analytics.rs @@ -65,14 +65,17 @@ impl StatsGatherer { self.stats_tx.clone() } - #[rustfmt::skip] - pub async fn finish(mut self) -> RepoEvent { + pub async fn finish(&mut self) { // aggregate stats self.stats_rx.close(); while let Some(stats) = self.stats_rx.recv().await { self.repo_stats += stats; } + } + // Consume self to produce analytics event + #[rustfmt::skip] + pub fn event(mut self) -> RepoEvent { // determine the type of index job run // let job_kind = if self.was_index_reset { @@ -86,7 +89,6 @@ impl StatsGatherer { reindex_file_count: self.repo_stats.reindex_count, } }; - self.event.add_payload("reporef", &self.reporef.name()); self.event.add_payload("provider", &self.reporef.backend()); self.event.add_payload("index_job_kind", &job_kind); diff --git a/server/bleep/src/indexes/file.rs b/server/bleep/src/indexes/file.rs index e6d37298b8..c60b32be9e 100644 --- a/server/bleep/src/indexes/file.rs +++ b/server/bleep/src/indexes/file.rs @@ -202,9 +202,10 @@ impl Indexable for File { info!(?repo.disk_path, "repo file indexing finished, took {:?}", start.elapsed()); + stats_gatherer.finish().await; if stats_gatherer.repo_stats.reindex_count > 0 { let user = app.user().await; - let event = stats_gatherer.finish().await; + let event = stats_gatherer.event(); app.with_analytics(|hub| hub.track_repo(event, &user)); }