feat : Metrics - Remove all data collection from Stride.Engine - #3279
feat : Metrics - Remove all data collection from Stride.Engine#3279Jklawreszuk wants to merge 7 commits into
Conversation
|
So, overall I agree with removing metrics client and EULA from startup (I think it was the consensus from discussions as well) About metrics Overall I like that if we get rid of it, that's one less thing to maintain, remove privacy/hack/leak risks, etc.
Note: if we were to keep it, we could look into how to anonymize it as much as possible (while still making sure it's not being faked). Crash report I still think that longer-term, we might want proper & easy crash report without user needing a github account. We could look into using Sentry or GlitchTip (either using their server or self-hosted; I would favor their server using OSS account to simplify our maintenance/IT). |
|
Note: this PR will conflict with #3276 where the metrics have also been removed (from the launcher) and the crash report rewritten. |
|
We haven't taken any decisions based on those since the engine has become open source, I think the data we could retrieve for metrics is only actionable if we had the resources to act on it. I would guess that we barely have a third of the maintainers required to start looking into long term support, improving the on-boarding experience, or even improving platform support. The biggest event that could increase our pool of maintainers already happened, the next one would be for Unity to cease operation, but I'm sure users would still be able to develop their games on older versions if that's the case. Our next relevant competitor, Godot, has a license that would be impervious to any issues.
We can make it opt-in in the future with a popup dialog on the first run. Wouldn't be as statistically relevant as an opt-out, sure, but if we make it clear that they are more likely to get support by opting in and that data is aggressively anonymized, more people would be inclined to opt-in. |
|
I agree with @Eideren. The key issue I see is that while we are collecting user data, we have essentially failed to process it meaningful way for the quality improvement of this project over the past 8 years. From my perspective, I see two realistic scenarios: A. Completely rewriting the telemetry from scratch: The current architecture is simplified and, frankly, outdated. Even the web app doesn't function correctly, and even if it were fixed based on my unfinished patches from a few years ago, I’ve concluded that the current metrics do not provide significant value to the community, in my personal opinion. First, we would need to jointly decide exactly WHAT we want to achieve through data collection (e.g., monitoring editor optimization). Second, as Eideren mentions, the number of active contributors is small - let's say we can rely on 8-10 users at any given time. If we wanted to seriously manage telemetry, this goal could consume resources that are larger than what we currently have, making it a very long-term objective. If we were to proceed, I would prefer an opt-in model over the current opt-out approach. Most open-source tools follow the "express consent" model, and psychologically, it is a safer choice. While the sample size would be smaller, it would ensure higher, let say "engagement" from test users. B. Removing telemetry and relying on GitHub issue reporting: From my subjective standpoint, the current process of bug reporting via GitHub covers 99% of cases. We have great templates that encourage users to include necessary error logs, and we can quickly contact devs via Discord to discuss bugs. I agree with @xen2 that a custom bug report feature would be a great long-term addition, but like Scenario A, it would require dedicated effort. Addressing @xen2's points:
Overall, regardless of the chosen path, I believe Stride requires the removal of the current metrics module. Whether it is redesigned or not will be a topic for a separate discussion. |
|
Why/when could it be useful I agree retention analysis is a much more advanced use case and is not my main intent to want some telemetry data.
What we don't do yet but could be useful:
OTOH removing it would simplify our infra, remove uneasiness from some users and remove any risk of data leaks. Infra Agree with @Jklawreszuk , if we were to keep it it will need a rewrite, using existing software/server/SaaS so that we don't have to maintain most of it ourselves. There are plenty of good system for that nowadays. |
|
OK, I have done some more research and a quick proposal. Crash reportWe still want crash reports. I was thinking to use Sentry (SaaS, free for open source projects, in EU data region):
Usage metricsThe current implementation can go away completely. If we later want basic usage numbers (versions, platforms, OS, possibly more stuff like public plugin list), the idea would be:
This would be opt-in/optional, with the exact data sent published. This PRAs a result, nothing here blocks this PR. |
|
Sounds good to me! |
PR Details
reopen of #2261
Description
Goodbye telemetry! 👋
Motivation and Context
Metrics feature in Stride.Engine can be considered as leftover from the time Xenko (now Stride Engine) was closed-source. While telemetry may be useful in commercial products, Stride Engine is being developed as free and open source software by independent volunteers.
Thus, information about current needs, bugs and errors is being frequently gathered by making requests on Github or directly through discussions with others on our Discord channel and there is no need to do any much more.
PR updates also
Stride.Editor.CrashReporter. Previously, user could send anonymized report to support.stride3d.net, but this service has been forgotten and is useless since we are commonly use Github. Now it is possible to view and save the created report containing metrics that can be analyzed and - if the submitter wants it - attached to a new Github issue.Types of changes
Checklist