Add crm telemetry - #6695
Conversation
| #[derive(Serialize, ToSchema)] | ||
| pub(crate) struct Configuration { | ||
| /// Telemetry key. | ||
| pub telemetry: String, |
There was a problem hiding this comment.
tnis is public facing IIRC we should just keep the name telemetry as is
we dont know if anyone parses this and relies on this key to be there, low risk but can be avoided
There was a problem hiding this comment.
@gz this is used only for web-console telemetry so realistically only used by us. I would like to update it to keep naming more meaningful and consistent with other providers, since again nothing else should be impacted. What I didn't touch for now are pipeline-manager options so that our deployments are not affected
mythical-fred
left a comment
There was a problem hiding this comment.
LGTM — solid gating, good tests.
| rel="noreferrer" | ||
| onclick={() => | ||
| captureEvent('calendly_opened', { | ||
| url: 'https://calendly.com/d/cqnj-p63-mbq/feldera-demo' |
There was a problem hiding this comment.
Nit: this Calendly URL is now hardcoded here and also in BookADemo.svelte (where it was extracted to a const). Consider sharing a single constant so there is one place to update if it ever changes.
mihaibudiu
left a comment
There was a problem hiding this comment.
I don't really understand what is being measured, can you write a description?
| rel="noreferrer">Upgrade</a | ||
| rel="noreferrer" | ||
| onclick={() => | ||
| captureEvent('calendly_opened', { |
There was a problem hiding this comment.
First, why isn't this using the constant in the other file?
Second, why is this in this file which seems unrelated to the demos?
There was a problem hiding this comment.
Here, there is a contextual tooltip that offers users to upgrade to enterprise license to be able to stop the pipelines. I will edit the code to re-use the calendly link as a constant across multiple files
|
I did mention it in the description; edited the description to make it less ambiguous |
|
But some of these seem to exist in all installations, not just try.feldera.com. Is that expected? |
|
The code that tracks events |
ed13db4 to
c5bbb8f
Compare
Signed-off-by: Karakatiza666 <bulakh.96@gmail.com>
…nceptualhq Signed-off-by: Karakatiza666 <bulakh.96@gmail.com>
c5bbb8f to
da54a74
Compare
mythical-fred
left a comment
There was a problem hiding this comment.
APPROVE-carry.
Rebase-only refresh. The two current commits (65da96a9 ProductFruits/ConceptualHQ hooks, da54a74c conversion-event tracking) have byte-identical file lists to my prior tip 57b4c573 — same +/- counts on the same 18 files. Prior APPROVE stands. No AI-attribution trailers, Signed-off-by on both.
virtua scrolls to an estimated offset for rows outside the rendered window and mounts the row over several frames, but the post-scroll repaint only scheduled a single requestAnimationFrame — if the row wasn't mounted on that frame, the highlight was dropped with no retry beyond an incidental onscroll. Retry every frame until the row actually mounts (bounded) instead of assuming one frame is enough. PR feldera#6695 papered over this by bumping the test's poll timeout, which didn't fix the underlying race and it flaked again in CI. Signed-off-by: Ben Pfaff <blp@feldera.com>
Add hooks for Product Fruits (user guiding) and ConceptualHQ (conversion measurement telemetry), added conversion-related tracking of events for scheduling a demo through Calendly and trying canned demos.
The goal of the PR is to capture events of user pressing the "Schedule a demo" link on try.feldera.com and navigating to explore the canned demos, as well as some metadata around that (where did the user click the button, was the demo pipeline tried before), and send them to both PostHog and ConceptualHQ.
Integration with Product Fruits is needed to set up user-guiding experiences for try.feldera.com. Its initialization is similar to PostHog and ConceptualHQ, so I decided to roll all three together, making sure the code is organized nicely. PostHog was already getting initialized, I only re-located relevant code for more consistency.
In the GET /config API response I renamed 'telemetry' to 'posthog' which is its actual contents. pipeline-manager and web-console update in lockstep so that's not a problem; the configuration option is still called 'telemetry' so existing deployments wouldn't change.