History

ai onboarding: Add telemetry event capturing (#34960)

Release Notes: - N/A

Danilo Leal committed 1 year ago

Commit fdcd8661 parent 3b428e24 files · +37 −6Browse files

Unified · Split

4 files
  1. Cargo.lock +1 −0
  2. crates/agent_ui/src/message_editor.rs +4 −0
  3. crates/ai_onboarding/Cargo.toml +1 −0
  4. crates/ai_onboarding/src/ai_onboarding.rs +31 −6
Cargo.lock+1−0
@@ -347,6 +347,7 @@ dependencies = [ · 346 unmodified lines
347347 "proto",
348348 "serde",
349349 "smallvec",
350+ "telemetry",
350351 "ui",
351352 "workspace-hack",
352353 "zed_actions",
crates/agent_ui/src/message_editor.rs+4−0
@@ -910,6 +910,10 @@ impl MessageEditor { · 909 unmodified lines
910910 .on_click({
911911 let focus_handle = focus_handle.clone();
912912 move |_event, window, cx| {
913+ telemetry::event!(
914+ "Agent Message Sent",
915+ agent = "zed",
916+ );
913917 focus_handle.dispatch_action(
914918 &Chat, window, cx,
915919 );
crates/ai_onboarding/Cargo.toml+1−0
@@ -22,6 +22,7 @@ language_model.workspace = true · 21 unmodified lines
2222 proto.workspace = true
2323 serde.workspace = true
2424 smallvec.workspace = true
25+telemetry.workspace = true
2526 ui.workspace = true
2627 workspace-hack.workspace = true
2728 zed_actions.workspace = true
crates/ai_onboarding/src/ai_onboarding.rs+31−6
@@ -183,6 +183,7 @@ impl ZedAiOnboarding { · 182 unmodified lines
183183 .full_width()
184184 .style(ButtonStyle::Tinted(ui::TintColor::Accent))
185185 .on_click(move |_, _window, cx| {
186+ telemetry::event!("Upgrade To Pro Clicked", state = "young-account");
186187 cx.open_url(&zed_urls::upgrade_to_zed_pro_url(cx))
187188 }),
188189 )
@@ -210,6 +211,7 @@ impl ZedAiOnboarding { · 21 unmodified lines
210211 .full_width()
211212 .style(ButtonStyle::Tinted(ui::TintColor::Accent))
212213 .on_click(move |_, _window, cx| {
214+ telemetry::event!("Start Trial Clicked", state = "post-sign-in");
213215 cx.open_url(&zed_urls::start_trial_url(cx))
214216 }),
215217 )
@@ -234,7 +236,10 @@ impl ZedAiOnboarding { · 18 unmodified lines
234236 .icon(IconName::ArrowUpRight)
235237 .icon_color(Color::Muted)
236238 .icon_size(IconSize::XSmall)
237− .on_click(move |_, _window, cx| cx.open_url(&zed_urls::terms_of_service(cx))),
239+ .on_click(move |_, _window, cx| {
240+ telemetry::event!("Review Terms of Service Click");
241+ cx.open_url(&zed_urls::terms_of_service(cx))
242+ }),
238243 )
239244 .child(
240245 Button::new("accept_terms", "Accept")
@@ -242,7 +247,9 @@ impl ZedAiOnboarding { · 1 unmodified line
242247 .style(ButtonStyle::Tinted(TintColor::Accent))
243248 .on_click({
244249 let callback = self.accept_terms_of_service.clone();
245− move |_, window, cx| (callback)(window, cx)
250+ move |_, window, cx| {
251+ telemetry::event!("Accepted Terms of Service");
252+ (callback)(window, cx)}
246253 }),
247254 )
248255 .into_any_element()
@@ -267,7 +274,10 @@ impl ZedAiOnboarding { · 18 unmodified lines
267274 .style(ButtonStyle::Tinted(ui::TintColor::Accent))
268275 .on_click({
269276 let callback = self.sign_in.clone();
270− move |_, window, cx| callback(window, cx)
277+ move |_, window, cx| {
278+ telemetry::event!("Start Trial Clicked", state = "pre-sign-in");
279+ callback(window, cx)
280+ }
271281 }),
272282 )
273283 .into_any_element()
@@ -294,7 +304,13 @@ impl ZedAiOnboarding { · 20 unmodified lines
294304 IconButton::new("dismiss_onboarding", IconName::Close)
295305 .icon_size(IconSize::Small)
296306 .tooltip(Tooltip::text("Dismiss"))
297− .on_click(move |_, window, cx| callback(window, cx)),
307+ .on_click(move |_, window, cx| {
308+ telemetry::event!(
309+ "Banner Dismissed",
310+ source = "AI Onboarding",
311+ );
312+ callback(window, cx)
313+ }),
298314 ),
299315 )
300316 },
@@ -331,7 +347,13 @@ impl ZedAiOnboarding { · 30 unmodified lines
331347 IconButton::new("dismiss_onboarding", IconName::Close)
332348 .icon_size(IconSize::Small)
333349 .tooltip(Tooltip::text("Dismiss"))
334− .on_click(move |_, window, cx| callback(window, cx)),
350+ .on_click(move |_, window, cx| {
351+ telemetry::event!(
352+ "Banner Dismissed",
353+ source = "AI Onboarding",
354+ );
355+ callback(window, cx)
356+ }),
335357 ),
336358 )
337359 },
@@ -359,7 +381,10 @@ impl ZedAiOnboarding { · 21 unmodified lines
359381 .style(ButtonStyle::Outlined)
360382 .on_click({
361383 let callback = self.continue_with_zed_ai.clone();
362− move |_, window, cx| callback(window, cx)
384+ move |_, window, cx| {
385+ telemetry::event!("Banner Dismissed", source = "AI Onboarding");
386+ callback(window, cx)
387+ }
363388 }),
364389 )
365390 .into_any_element()