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)); }