-
Notifications
You must be signed in to change notification settings - Fork 17
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Define basic metrics and patterns for consent & collection. #125
Comments
related: ipfs/ipfs-webui#1831. |
@SgtPooki no geo-location data? others sound reasonable. |
geo-location data would be excellent for users who opt-in, but this data is primarily focused on non-identifiable data from our apps. I.e. the |
This work should be done similar to ipfs/public-gateway-checker#309 |
updated description |
@SgtPooki will the basic metrics be recorded when the user is offline and published when the user comes back online? |
Gathering metrics/telemetry by default is increasing risk and responsibility (to not send too much), but I understand the rationale that enabling it by default will make it easier to prioritize work. May not be that controversial, but that depends on execution (what is gathered, what is sent, how it is communicated in our privacy policies). Telemetry gathering is enabled by default in user-focused browsers like Brave (see their P3A) and Firefox (telemetry). IPFS GUIs are a type of similar user agent, so a lot of prior art in browser space, and lessons on what makes good vs bad approach. For example, in user-respecting browsers it is always possible to opt-out of reporting all metrics. We can get useful telemetry without forcing this on users. What are arguments against forced telemetry without ability to fully opt-out? Depending on whom you ask, this will be either a joke (easy to block using third-party tools), or will raise eyebrows and leave a bad taste in the mouth (shady/dark pattern, or just clear disregard of user agency). To speedrun the conversation, I summon the usual voices:
I'd say I am mostly a Realist these days, but you may hear from others too. :) cc @Stebalien as he had stronger opinions in the past about this (ipfs/kubo#6025, ipfs/ipfs-webui#980) |
countly speaks to this at https://support.count.ly/hc/en-us/articles/360037753291-SDK-development-guide#request-queue, but I am not currently sure if their web-sdk does this. See #130 (comment) |
Thanks for the great feedback @lidel. Just a few comments on some of your points:
As a product owner, I disagree, but as a user, I somewhat agree. Protocol Labs and the community is working hard to build tools to get us to the web3 mecca, and without a full view of whether our apps are being used or not, we're working in the blind, on features that could easily be considered irrelevant (without the data to support the need) for the userbase. As a product owner, that's unacceptable. As a user of a tool in an ecosystem, I don't want my information to be profited off of, but I don't want the tool/feature I use to be sunset because they don't know how important it is.
While there is always an IP address associated with a request to a server (i.e. client to our countly server), we do no tracking/storing of this information.
Hopefully, opt-out metrics will allow us to get a majority of users metrics so we can make the right decisions for us and them. At the end of the day, opt-out metrics feel like the right next step, whereas "always-on" necessary metrics can be a potential next step. For now, following the pattern of brave and firefox is a great plan. I think defaulting to opt-out metrics, and allowing users to disable necessary metrics is a decent compromise we can handle via ipfs-shipyard/ignite-metrics#2. I will update this issue description to clarify that we will allow opt-out of necessary metrics but will have them enabled by default. If we need to pursue this later due to a lack of metrics for making decisions, we can do that. |
Note that further discussion has occurred with mocks at ipfs/public-gateway-checker#340 (comment) |
I see there's been some good discussion here. A few high-level things I'll say:
Side: "sending non-identifiable metrics by default, and allowing the community to confirm this, is a reasonable expectation of our users" is listed as a "current problem" in the description. Is that one of the problems? If so, let's be more specific about what portion(s) of that statement are the problem. |
force collecting user data is bad, but just so we're clear: that's not what the proposal was. If metrics data contains no user-identifiable data, then in my mind it's not user data, it's app data. Maybe some more work can be done in the future to differentiate between user and app data, but since we're all in agreement on the next step, we can defer that discussion.
I agree. I've been using
The implementation is already done in ipfs-shipyard/ignite-metrics. The only additional work involved with separating the metrics we collect is toggling on/off individual metrics in the settings screens. For the first round of metrics addition, this toggle is intended only to be For ipfs-webui & ipfs-desktop, I was planning on leaving the full metrics we collect today. But for our other projects, I'd rather not overload the metrics we're collecting since we already don't use many of the metrics we collect from ipfs-webui and ipfs-desktop. In addition, I think that for the people who care about what we're collecting, opting out of "all" metrics is a much more likely outcome than opting out of a specifically curated and smaller subset of metrics. FYI, the only thing I'm aware of that we explicitly emit for ipfs-webui and ipfs-desktop that are not currently in the listed
This was the plan, and I was trying to speed through things while covering my bases. Since the holiday was unproductive for me, I will be creating a readme in ignite-metrics (see ipfs-shipyard/ignite-metrics#29) that will cover the bullet points you listed.
Fixed, and linked to Notion doc. |
Commenting here to update based on my convo from legal:
This is the legal perspective as well. |
fixes #29 fixes ipfs/ipfs-gui#125
If we're still not using them then let's remove it. I took a lot of care in adding those metrics but I regret it. They were not connected to a set of questions that we desperately needed answers to in order to make better tools. |
@olizilla the metrics are useful, but honestly we don't have the bandwidth to do analytics on all the data we have. It's useful when we are curious, but we haven't made any business decisions in the last year based on anything other than sessions/views/events. Also, we have a set of questions we're planning on answering defined at #126 (comment) |
At a bare minimum, we should be able to get the following metrics for our projects for users that haven't opted-in to collecting the full set of metrics supported by Countly
web-vitals (where appropriate) - https://www.npmjs.com/package/web-vitalsDisclaimer
Note that until this, #130, and https://discuss.ipfs.tech/t/ipfs-gui-metrics-changes-in-progress/15695 have been available to the community for feedback for enough time( see ipfs-shipyard/ignite-metrics#2), we will continue with the implementation we currently have in public-gateway-checker:
Current problems with metrics
See https://pl-strflt.notion.site/Telemetry-b005d4f217f44db3986902c67d922cf4
Current planned solution
https://www.notion.so/pl-strflt/Telemetry-b005d4f217f44db3986902c67d922cf4#0833d8c86b4f4ffc99337305159d27b0
Metrics distinctions
minimal
metrics will be 'sessions' and 'views' as categorized by countly (i.e.const minimalFeatures = ['sessions', 'views']
). See #130 for more informationMinimal Metrics (opt-out)
We will allow the disabling of
minimal
features once we switch to opt-out metrics. See ipfs-shipyard/ignite-metrics#2All Metrics (opt-in)
Note that while these are
opt-in
, when presented with our cookie banner/modal for the first time (see ipfs/public-gateway-checker#340 (comment)), the checkbox will be enabled for "all" metrics. Closing the banner without other actions will update your consent from "minimal" to "all".Current planned solution
Describe alternatives you've considered
General
Current problems with metrics
above.IPFS-companion
Child tasks
countly.ipfs.io
endpoint for necessary features #130I'm proposing the following settings for countly metrics for our projects:
Note that from the above list, 2(web-vitals) is not provided by default from countly, and without
events
in theperformanceFeatures
group from the above code snippet, we cannot submit custom events/metrics/analytics. However, if we enableevents
for "minimal" metrics, it's possible that at some point in the future, a custom metric could be sent that does not adhere to our groupings and opt-in ethics. Therefore, 2(web-vitals) above will be considered an opt-in metric only to keep ourminimal
metrics light.However, we can use countly's
trackView
event in order to track page views without exposing the full blown "events" functionality to limit user risk.The text was updated successfully, but these errors were encountered: