Related initiatives
- #2958021: Proposal: Composer Support in Core initiative (Precursor for auto updates and site builder initiatives)
- #2940731: Automatic Updates Initiative overview and roadmap
- #2940733: Site Builder Tool/Project Browser initiative
- Telemetry initiative: Gathering data about Drupal usage ← this issue
- #2940739: Project messaging channel in core initiative
Gathering some key data from end-users about how Drupal is used can give the community and the Drupal Association insights that will help us improve the product roadmap, community programs and outreach efforts by the association, and more. Right now, the only data we receive is a very limited amount of data from the sites that call home to Drupal.org for updates information.
Telemetry initiative: Gathering data about Drupal usage
The goal is to gather data about who uses Drupal, what modules they use, what modules they *don't* use, maybe basic traffic/load information, what php/db versions are in common use, etc... All of this information could be tremendously helpful in setting direction for the project.
We would want to build a modular telemetry system so that we can gather different kinds of data with each major release, if we want to focus on certain areas of the project for improvement.
---
Usecases we are targeting to improve:
- Providing aggregate, anonymized data to core developers to help them understand real-world usage patterns with Drupal.
- Providing the Drupal Association with data about the scope of the Drupal community outside of Drupal.org - how many sites are there really? Who are they?
- Making all of this telemetry sending opt-outable.
- Making sure that headless sites can be identified as Drupal sites underneath by crawlers, and by the d.o metrics system
Usecases we are not targeting to improve:
- n/a
---
Sign-offs given:
@Dries has endorsed this idea in a call with DA staff, core maintainers, and community volunteers.
Here is the slide deck from the check-in between Core, the DA, and some interested community members about these initiatives.
---
Meet the initiative team
TBA
---
How we are working
TBA
---
How you can help
Contribute your time and skills. Below are the main planning issues that link off to individual tasks that can be worked on:
TBA
Issue fork ideas-2940737
Show commands
Start within a Git clone of the project using the version control instructions.
Or, if you do not have SSH keys set up on git.drupalcode.org:
Comments
Comment #2
hestenetComment #3
wim leersIt'd be wonderful if as part of this, we'd get usage statistics per core module (IOW: a breakdown of https://www.drupal.org/project/usage/drupal). It'd allow us to see, for example:
AFAIK this data is already gathered, just not exposed! So perhaps this can be a first quick win? :)
Comment #4
effulgentsia commentedI think #1627676: Display stats on enabled components (e.g. modules included in a project) is the issue for #3.
Comment #5
wim leersThanks, @effulgentsia!
Comment #6
dawehnerI love this idea. More telemetry helps a lot.
One thing I've seen people doing in my $dayjob, which is extremely valueable, is catching exceptions and logging them over time. This seems like a small thing, but it allows us to catch bugs, before actual users potentially start to see them.
Another nice thing would be data around overriding PHP classes, usage of APIs etc. This way potential minor BC breaks could be much better evaluated and justified (aka. We know it will just break 0.5% of all sites potentially)
Comment #7
hestenetComment #8
dawehnerWhy do we think this is the right idea? Do we value the project as more important as the right/opinions of the actual users of the project?
I think the only way which is remotely achievable is: Enable a way for sites to identify themselves as Drupal site.
Comment #9
giorgio79 commented"One thing I've seen people doing in my $dayjob, which is extremely valueable, is catching exceptions and logging them over time"
This is part of my day job too....Reviewing high crash rate events for a multi million install app.
Seeing and auto reporting Drupal core / module bugs, eg collecting data how many sites reported that bug would be an immense quality tool. Eg seeing that a php exception occurred 4566 times the past day for 2502 Drupal sites... Error reporting could be completely automated this way. Big +++++
Comment #10
MixologicI dont think it's as clear cut as saying 'opt-out means we dont value users rights and opinions, and opt-in does'.
On one end of the spectrum, we are going to have a percentage of users for whom any data sharing at all is either non-compliant (HPAA), or seen as an invasion of privacy, a potential security risk, and they will not want to share data. We absolutely want to support these users wishes, we don't want to use any dark patterns to trick them into sending data or anything of that sort.
On the other end of the spectrum we have a percentage of people who recognize the value of sending us data, who work on the project as part of their $dayjob, and understand how much value sending us this data will be, how it can help guide product decisions, priorities, and help drupal as a whole.
Finally, in between, we are going to have a third group of people, who don't particularly care if they send us data, but aren't going to go out of their way to do it either. If I were to speculate, I would say this is the *largest* group of people by far. Probably 90% of our users would fall into this category.
So, deciding how something like this is enabled, or disabled, and presented to the user definitely needs to take all those groups into consideration.
I personally think we should err on the side of opt-in by default, with an obvious, prominent way to opt out. This seems like it is pretty much a solved pattern.. I just reinstalled my laptop today, and I was asked by OSX, by PHPStorm, by Chrome, and by Iterm all as part of the installation process if I wanted to send telemetry data. I let phpstorm and iterm have my data, because I like them, and trust them, and didnt want to give it to apple and google. I appreciated having the ability to choose.
If this ends up being some setting buried in the admin interface that somebody has to turn on, I think we're going to end up with poor, invalid data in that case, which would defeat the purpose of creating this, we'll end up with a self selected sample of just the people who care enough to turn it on, and then end up making bad decisions based on incomplete data.
Comment #11
wim leers+1
Comment #12
bartlangelaanHi there! Very interested in this initiative, I think this is an essential way of knowing how Drupal is used.
Just a few questions:
In what way are headless Drupal sites different then traditional installations in terms of sending telemetry? And why do we need crawlers for sending telemetry data to Drupal?
Also, this post mainly talks about core usage and modules, but I would like it very much to have more in-depth data about other modules too. So, is this initiative just about core modules or is data about contrib modules also being sent? It would be great for module maintainers to see more data about what types of users are using their modules.
Comment #13
MixologicUltimately this initiative is about providing a framework for gathering data from installed sites. *what, exactly* that data is, is likely to change over time, but this is just the first step - being able to gather different data points as our needs dicate.
We dont need crawlers for telemetry data, thats a reference to the way that much of that data is gathered now. Tools like BuiltWith cannot know that drupal is under the hood on sites like weather.com because it's headless, so drupal gets underreported in those sorts of scenarios.
if they are sending telemetry then we dont have to worry about whether they are headless or not.
Comment #14
jonathanshawOpt-out seems like the perfect balance between the needs of the project and the needs of the minority for whom telemetry is a problem.
Comment #15
hestenetComment #16
deviantintegral commentedThe data from this would be invaluable when helping teams architect their Drupal sites. For example, I've worked with teams who insist on running ancient versions of PHP and never upgrade. Being able to show that "90% of Drupal 8 sites run PHP 7.0+" or similar would help highlight the risk of running less-well-tested and potentially insecure PHP versions.
The experimental module use case is a particularly good one - a core experimental module with tens of thousands of sites probably has more real-world testing behind it than a contrib module with 5000 installs that we don't worry about enabling.
I do wonder about CI builds polluting stats. For example, if a site runs Behat tests on every commit, wouldn't those show up as unique "sites". There are probably some good technical reasons (beyond security or privacy perceptions) to make it easy to opt-out.
Comment #17
bartlangelaanBecause I like to keep this initiative going, let me do a proposal.
Architecture
I think the following things are needed to get valuable insights for the Drupal project:
Telemetry client
The telemetry client should be a Drupal module (for at least Drupal 8 but maybe also for Drupal 7) that is able to send data at set times to the telemetry server. This could start as a contrib module, that gets ported to core once the module is tested well and advanced to the point that everyone can use it without problems. The core module should be enabled by default (with an update hook) but users can opt out by disabling the module. Of course, developers should be notified that the module is turned on so no data is sent without the developers knowing. Also information should be shown on what data is sent to the telemetry server, and what is going to be sent the next ping. This way, there is full transparency on what data is collected.
Telemetry server
The telemetry server can be a Drupal 8 installation that receives data from all clients, and saves it in a database. Data should be stored structured, so maybe webforms or just custom entities should be used for that. There should be an API endpoint for posting this data to the server. Also, there should be APIs for requesting data from the server.
Telemetry front-end (stats)
To actually see the telemetry data there should be a place where people can view the data gathered on the server. Of course this could be on the telemetry server itself, but this is also a perfect opportunity to show that Drupal can be used for decoupled applications. So, we can create a React application that requests data from the telemetry server and displays them in an intuitive and visually appealing way.
Communication between clients and server
To send data from the client to the server, a REST endpoint on the server should be used. At a set interval (for example, every week) the client should gather all the information and should try to send it to the server. If the server isn't available at the moment or the client has trouble to connect to the internet somehow, the data should be stored on the client. Then, after set time, the client should retry to send the data to the server. Because the original data is sent (with the timestamp of when the data was gathered) even when the server is unavailable for a day no data will be lost. The client will just insert the data retroactively.
Every ping should get a random uuid, so that the server can reject / deduplicate data when the client sends the same ping twice. The client should keep retrying until it receives a successful response code from the server. The server should only sent a successful response code when it successfully received all data.
Server read API / data that will be public
I think that as much data as possible should be available trough the API of the server. This way it can be used to generate a very specific set of data that can be used for specific insights. Also it's very transparent if all data is available to everyone, instead of only a specific amount of people.
What data will be sent to the server
I think the general rule here is to never send data that could be traced back to an individual site. So never the url of the website, for example. To get a better idea where Drupal is used for, we can send this data for example:
- What core modules are enabled
- What contrib modules are enabled
- How many custom modules are enabled
- How many nodes are created
- How many users the site has
- PHP version / Composer version / Database system & version
- Type of hosting (SaaS, containerized, managed)
- Way of installation (manually by downloading the .zip / installation with composer)
- Number of visitors
- Ratio API requests / 'traditional' requests (to detect headless websites)
- Is this a multisite?
- ...?
I hope that in the future, contrib modules can send their own metrics. For example, that we can see how many webforms are created in the webform module.
Unanswered questions
There should be a way to know which pings are from the same site. We could always send the site UUID with every ping, but I don't know if the site UUID is secret or if there is a better way to differentiate sites. Also, we should be able to automatically disable sending data to the server on acceptance and development sites to not pollute the data. So we should make a reliable way to differentiate between environments.
Steps to proceed
MVP
1. Discuss above points and agree on MVP
2A. Start working on a contrib module that collects data and sends it to a server. The data that is sent doesn't have to be extendable on this point.
2B. Start working on a Drupal 8 installation that collects this data.
3. If both work, we can start on porting the contrib module to core.
4. At the same time, we can start working on creating a nice React front-end that can visualize the data and give handy insights.
After MVP
It would be very nice if the data can be extended trough plugins, so contrib modules can send their own data. This also means that they should be able to login to the server and create their own metric fields that they will send. This way, the server knows what fields to expect.
Also, we should be able to use the Read API's from the server to show more data on the project pages. Think of things like 'This project is mostly used in combination with these projects'.
And maybe far in the future, we could start asking users little questions like 'Do you like the content editor experience in Drupal?' where users can give a rating. By combining that data with all other data from these sites, we can correlate this data and see which modules really improve the experience for people and what use-cases need the most improvements.
Discuss!
This is just my take on this initiative, and I would like to hear what you think of it. Let's discuss and get this initiative started!
I'm at Drupal Europe this week, so if you want to discuss in 'real life', you can contact me on Slack :-)
Comment #18
andypostMeanwhile there's ongoing work happens in moving .inc files to classes makes sense to organize classes to read Requirements/Php/Memory in consistent way
Comment #19
pingwin4egIMHO, that data (from non-prod) sites should be reported too, in order to have e.g. info about what modules are used for development/testing, etc.
Comment #20
dasjoThe initiative was mentioned by dick olson as part of his drupalcon Amsterdam presentation:
https://youtu.be/IygX5-34__M
Comment #21
andypostComment #22
solideogloria commentedI don't agree that opt-out is a good way to go. Companies often go that way with the rationalization that "it's anonymous so it's okay", but often the data can be re-associated to users and they can still be tracked. Especially when those companies also start selling the data, which gets bought up and combined with other purchased data to further correlate data to users. Then the data inevitably gets leaked somehow.
I don't even think telemetry is necessary at all for Drupal to effectively serve its users.
The 90% of users who "don't care" are probably so because they are in the "don't know" category. Those who don't know they are being tracked are still dehumanized by the treatment of them as points of data rather than as humans with their own lives, thoughts, and feelings. People, Drupal included, need to stop assuming that tracking users without their consent and collecting data is okay just because "there's a way to do so and you can improve your service somehow". Just because 90% haven't told you otherwise, doesn't give you a good reason to go ahead collect the data anyway.
Make it opt-in, or no telemetry.
Comment #23
webchickAs a product manager, I'll respectfully disagree. :)
I definitely DO agree that telemetry/activity reporting needs to be handled with care... but the absence of access to usage data causes all manner of problems, including:
Without any actual data to fall back on, many product discussions basically end up being an endless round of "who can argue for their position the loudest" among a tiny handful of people with Drupal.org accounts who happen to know about issue # 12345. Not only does this burn out core contributors, it also is not at all serving our actual users, the vast majority of whom do not have Drupal.org accounts, nor even know these discussions are happening at all. :\
So while there are valid privacy concerns, I think there are also valid inclusion concerns, and making sure our product decisions are representative of our actual user base and not just those who build Drupal. As well as competitive concerns, since we're not currently able to follow any product management best practices with respect to measuring how our improvements do, and learning from those insights to drive better improvements going forward, and others in this space definitely are.
Comment #24
solideogloria commentedHere's an idea I thought of that Drupal could perhaps use. This could still be a module, but it would prompt the admin to submit the data. So even if the module is in core and enabled by default, it requires a user action to send the telemetry data.
Something similar I've seen is how Steam (the gaming platform/store) sends a monthly Steam Hardware & Software Survey to users. When agreeing to submit data, Steam will gather all of the data it wants, and then it will show the user the file/data it will send (so that the user can once again see with complete transparency what is sent, and verify that no personal/private information is included), and then they can agree and send the survey data.
I think the way Steam does this is an acceptable strategy, because the user gets to see exactly what is sent first.
Comment #25
webchickAgreed that something like that could be a nice balance between the concerns; thanks for being open to discussion!
Comment #26
rivimeyCopied from slack:
@xjm re "update stats is effd" is there anything we can do to help with that? As in, perhaps we can modify what the update module does so that it is more acceptable to leave it enabled permanently?
I know I had switched it off on my D8 site for a couple of years because I didn't want unhelpful messages about updates that I was managing in my own way.
Perhaps update could be modified thus:
@Hestenet replied:
Yeah - those comments re update stats improvements would be welcome. We have some architectural thoughts about it as well. @mixologic (out sick) has worked out some of those ideas - but as xjm said, it hasn't bubbled to the top of the list yet.
@xjm replied:
I think the initiative scope should include a lot of what you mentioned. The first step would be to move telemetry outside update.module. There'd be config allowing you to opt out, but default would be opt-in.
Comment #27
pasqualleAs I see some legal stuff was not mentioned before:
1. There needs to be a page on d.o about "Data usage policy for data collected from Drupal websites"
2. Drupal core has to provide an option to see what is exactly sent to d.o (telemetry server)
copied from #3199472: Improved data sharing with d.o
Comment #28
daffie commentedDrupal's Cookbook
If we are going to do this, then I am wondering if we could do just a little bit more. A lot of this information can also be used to create a Drupal cookbook for (beginner) sitebuilders, themers and/or developers. To be really useful a bit more information is necessary. When we add an opt-in form in the administrator section of a site, where the sitebuilder add information about the site, how it is build and what is special about it (free text). In combination with the already collected data about the site, can be put on a page in lets say drupal.org/cookbook or cookbook.drupal.org. Learning how to build a great Drupal site or learning to create great modules and/or themes is not easy, and seeing how it is done on professional build sites is a huge help. Not all (beginner) sitebuilder, themers and/or developers have the luxury of having a senior Drupal person to ask questions about Drupal. It is great for the ones that have such a person, only that luxury is not for everybody.
Creating all that information might be a lot of work for a sitebuilder, only I think that for most professional build sites this information will already be documented somewhere for clients, support and/or management. Therefor I think we will get a lot of cookbook entries without being it a lot of work for sitebuilders.
In the form we can also add who has build the site (one or more Drupal users accounts) and organizations (one or more Drupal organizations accounts). When a (beginner) sitebuilder, themer and/or developer likes a cookbook entry, they can give the entry a star, same as Github. The persons and organizations get on their profile the number of cookbook stars they received. When you have a lot of cookbook star you must be doing something right and that might/will attract more work, better paid work, more interesting work or just a bit of fame in the Drupal world.
An added benefit might be that a lot more persons will get a Drupal user/organization account.
Comment #29
andypostCookbooks could be wrapped into help topics or tours so exportable
Comment #30
bsnodgrass commentedJust asking... re: https://www.drupal.org/project/ideas/issues/2940737#comment-14170618 is there a project for a Drupal Cookbook?
We have a local user group working on collecting Drupal Recipes which could also benefit from information collected with this initiative. I am also following this initiative as I am working with a site-builder committee working on the project browser initiative.
Comment #31
matthieuscarset commentedI was looking precisely for such an initiative! 🙋♂️Actually started a discussion a few days ago to see if there was some interests in gathering information about Drupal, users, usage...etc.
I am interested in contributing to Telemetry initiative. IMHO I think we all agree that more data about usage will help everybody to build better modules, better UX. It seems telemetry is a viable solution to gather data AND to respect privacy, performance and all legitimate concerns in-between.
Now the question is: How should/can we proceed to move things forward?
I'm afraid that there are too many areas of investigation detailed here.
Shall we/Can we start building something more specific?
For instance, limit the telemetry to one area such as :
I would +1 an implementation like a
telemetrymodule in core with plugins to enable/disable tracking usage per configuration.Comment #32
baluertlIn my understanding, the primary purpose of the telemetry phenomenon is to answer questions. The nature of these questions could be more focused if you are an individual IT company developing one software product (e.g. a browser maker like Mozilla measures Firefox's usage metrics).
However, the situation is absolutely different for the Drupal Community. As consisting of such a diverse mix of interest groups it can be challenging to agree on the set of questions we want to answer.
Here are some examples to better get my point:
Obviously, we cannot answer every need. So in my opinion this initiative could start off by channeling its efforts towards a common agreement of the audience (or a prioritization between them, if several) which we plan to serve with meaningful insights.
Comment #33
bramdriesenI landed here based off a comment from XJM from 3 years ago :) seem like things are still in the discussion phase?
Comment #34
hestenet@BramDiesen - Time and resources 😊
This is definitely an initiative I know we'd still like to complete - but we a) need to hash out fundamental architecture and policy details and b) need a good team of available folks.
Would certainly still appreciate any ideas you want to share!
Comment #35
bramdriesenI do think this is of great value. I landed here because of "weighted" credits which are calculated based on module installs, which we all know currently is not a very accurate representation.
I think the list in #17 is a great start, although I don't think everything is of as much value as other items. Below my comments on some of the items.
- How many custom modules are enabled -> What value does it add to know how many custom modules there are?
- PHP version / Composer version / Database system & version -> Composer version is irrelevant I think, because it will probably not be installed on many *modern* environments. (Especially when you deploy artefacts). I also think with only 2 big versions available and V1 being EOL for almost 2 years it doesn't add a lot of value.
- Type of hosting (SaaS, containerized, managed) -> How do we plan on detecting that?
- Way of installation (manually by downloading the .zip / installation with composer) -> Is this still relevant option?
- Number of visitors -> Difficult to detect if the statistics module is not enabled I guess?
- Ratio API requests / 'traditional' requests (to detect headless websites) -> Is this currently being logged in some way? I think it would be great if there is some way of detecting headless sites!
- Is this a multisite?
This one would be very important to get a more accurate view for module maintainers on the usage of their module. I think it would be great for module maintainers to see a combination of the data. E.g version usage & PHP versions combined for example. Some advanced charts that could be filtered on would be awesome, but I guess I'm running a bit fast here ;-) those changes could only be added anyway after phase 1 where Telemetry is a thing and it has been released and data has been gathered.
Personally I'm fine with it being an opt-out setting somewhere in the settings screen. If it really get's too much negative feedback or something I guess we can also add a step for it in the install process of a new Drupal site.
So for me an updated list of things to send would become (removed inline comments and added some extra):
- Drupal Core Version
- What distribution is used (if any)
- What core modules are enabled
- What contrib modules are installed/enabled
- Which themes are installed/enabled
- How many nodes are created
- How many users the site has
- PHP version
- Database system + version + maybe size?
- Ratio API requests / 'traditional' requests (to detect headless websites)
- Is this a multisite?
- What country? (Based on domain name/hosting location/...)
- Amount of installed/enabled languages + the default one
- Hosting architecture (ARM/AMD, Linux flavour,...)
- ...
Feel free to re-add, remove, discuss,... :)
Also happy to join this initiative to actually put some elbow grease into coding when we come to that stage!
Comment #36
solideogloria commentedIt might also be relevant to know which PHP extensions are installed, though I'm not sure if that's beneficial to anyone or not.
How about Apache vs Nginx vs other?
Comment #37
bramdriesen@solideogloria I had PHP extensions written down but removed it because the list would maybe get way too long? Also not really sure to what extend it would be meaningful to know such thing. I think it would add more value if we would know the php settings like memory limits and stuff.
+1 for Apache & Nginx + version
Comment #38
bramdriesenThis might land under contrib, but what about which search engine is used? Solr/Elastic + version for example? I guess there are not that many sites anymore that don't use search :)
Comment #39
solideogloria commentedThis could probably be its own issue later, but just wondering, some of this information could reveal sites with security vulnerabilities or available updates for PHP, database, web server, OS, etc. Should there be an entry added to the Status Report if, for example, checking Apache version reveals that the website could be vulnerable?
Comment #40
bramdriesenNot sure I would consider that as in-scope for the Telemetry initiative.
It's a great idea though, but I personally think it would make more sense to cover that part under the Drupal Status Report and add it there as a thing of its own. Telemetry is more about pushing general data to d.o and not so much about checking if the site is secure and reporting it back to that site.
Comment #41
solideogloria commentedI agree. I think that once the service file for getting such information is in core, that will make it much easier to add to the status report.
Comment #42
solideogloria commentedSome of that information can be obtained from PHP info. I wrote this function just now as proof of concept:
Run it online here.
Note that this will only work when on CLI (see
php_sapi_name), asphpinfo()returns HTML otherwise.A comment on the documentation for phpinfo makes an attempt at parsing the HTML.
Comment #43
bramdriesenGreat stuff! Output looks very usable :)
Comment #44
lauriiiThere are many great ideas on this issue for telemetry data points that we could collect. To make this more feasible, we should being by experimenting with collecting telemetry with as small scope as possible. For instance, we could create some leading indicators for the current lagging indicators. One of the indicators we're following is the number of Drupal sites reported by the update status module, which is a lagging indicator. However, there are leading indicators such as how many Drupal sites are being installed or how many Drupal composer projects are being initialized using
composer create-project drupal/recommended-project drupal.This data would be valuable when assessing the overall state of Drupal. If we could expand this to getting data on module installations too, we would have leading indicators for experimental modules as well, which would be extremely valuable for working on Drupal Core initiatives.
While there is a lot of other useful data that we would want to collect, starting with something small like this would make the scope more achievable. Once we have figured out this use case, we can move on to the next use case and add additional data points for the other proposed ideas.
Comment #45
hestenetSome progress on the performance information side of telemetry has been made in: #3352389: Add open-telemetry/sdk and open-telemetry/exporter-otlp as dev dependencies
Comment #46
mgiffordI was just chatting with @rkoller about how nice it would be to actually know how people are using the admin breadcrumbs. Would be so useful to know if folks are going to our help.
If there is a way to enable this so that we can learn more about how authors and admins use their sites it would be so valuable. So often we just have to make assertions based on what we think would be useful to these users. Sadly, extrapolations from developers is rarely as good as watching those trying to use their Drupal site.
Comment #47
bkosborneI agree with lauriii in #44 that the scope of this needs to be reigned in. If we shoot for the moon, this initiative will never take off (that's not to knock any of the very good ideas I've read through above!!)
I'm here because I maintain a Drupal platform of 1,000+ websites and I don't have the update module enabled on any of them, but want to contribute our module usage telemetry back to Drupal.org.
I don't have the update module enabled on any of these sites because the vast majority of the module's code (and it's a lot of code) is unrelated to sending the telemetry to Drupal.org, and it's for functionality I don't want or need. It's mostly around facilitating module updates/installs through the UI and reporting on modules that are out of date or have security issues. As a platform maintainer, I don't need that capability. I have other ways to monitor those concerns. As a platform maintainer, I try to keep unnecessary code off the platform as much as possible.
I know other platform maintainers (there's a lot of us in Higher Ed) that also don't have the update module enabled. We're collectively contributing to a massive under-reporting of project (module) usage on Drupal.org, all because the current code for collecting module telemetry is bundled with something we don't want.
So I feel the first step of launching this initiative is to separate the project usage reporting out of the update module and put it in core. Basically don't change any of the existing functionality of project usage reporting that Drupal.org already provides yet (I guess via the Project module?) We do that at a later time.
I see another user already created an issue about this #3199472: Improved data sharing with d.o. I think that's a good place to start focusing the effort.
Comment #48
bkosborneActually that last issue has a broader scope and I didn't feel comfortable hijacking it entirely, so I created a new issue #3448401: Move project telemetry reporting from the update module into core as a child of this one.
Comment #49
murzI develop the OpenTelemetry contrib module for Drupal. It is still in Alpha, but I hope it can help with generating interesting traces and metrics for receiving by Drupal Community as telemetry data.
To not insert into Drupal Core some telemetry-specific things, we can apply auto-instrumentation https://github.com/open-telemetry/opentelemetry-php-instrumentation and hook the needed functions in the wrapper.
And maybe eventually we will bring the opentelemetry as a Drupal Core module, that can be installed by default if the user opts in.
Comment #50
cmlarahttps://duanestorey.com/posts/down-the-rabbit-hole-a-deep-look-at-the-wo... is likely worth a read as it relates to Wordpress and the recent concern that Wordpress.org may have used telemetry data for less than ideal purposes (the Wordpress Engine Tracker site) raising questions about data collection in general by a CMS.
There is a lot of talk in this issue about collecting random data on a whim of someone had the idea it would be useful.
I would suggest that if this initiative ever does go forward that the first question asked regarding any data point should be "what problem will this solve in the next 3-6 months?" if you can not identify a specific concrete problem that can not be solved without the data point the collection is questionable.
I note this in other issues, even the collection of a site specific ID is enough to cause Update Manager to be disabled in many environments I work with. In general, the more data collection you add the less likely users are to be willing to share it.
Comment #51
solideogloria commented@cmlara Very interesting article. I had no idea WordPress did that. I definitely agree that Drupal should only collect what it needs. I think that if users are given more granular control over which data is sent, they are more likely to allow it.
Comment #52
andrew.wang commentedComment #53
catchMoving this to Drupal core because the ideas queue is deprecated, however I think we need concrete suggestions for changes to be laid out a bit more. The only active issue I can think of is #3489066: Add tracking for when recipes from Drupal.org are applied.
edit: no at least two - #3448401: Move project telemetry reporting from the update module into core.
Comment #54
mgiffordMight be a good fit first for Drupal CMS? Think we could be starting to ask more questions there? It is perhaps more useful to start asking questions and gathering information from those new to the community, than those already entrenched into D.o.
Both could be useful. I'm not arguing against involvement in Core. I see lots of ways that we could use Drupal itself to start promoting involvment in the Drupal community.
Comment #56
hestenetRe-opening this issue after some conversations with core folks at DrupalCon Rotterdam 2026.
DrupalCMS is experimenting more with instrumented telemetry, so we can set that larger scope aside pending their experiments.
So for the most simple version of an optional, opt-out choice to send your domain and opt-in choice to send the site contact email, @catch, @xjm, @longwave expressed support.
That is pending a concrete MR to scrutinize rather than just discussion, so I think that's the next step - build out an MR.
Summarizing the initial target requirements based on the simplest version of what we have above:
Comment #57
fgmISTR we have booted companies from d.o. for sending phoning back even such anonymous data (long ago). Couldn't it be all opt-in with an incitation to enable, like the
updaterequirements, for example ?Comment #58
solideogloria commentedI think all telemetry, including domain, should be opt-in, personally.
Comment #59
cmlaraGoin back to comment #50:
Since some of us were not there. What is the use case for this data? What problem will be solved by collecting this data?
This far from anonymous data. The domain can identify an individual and so can email address. This would PII under multiple privacy laws I’m aware of.
Comment #60
fgmI don't think it would qualify as PII under GDPR for instance: we're talking server public IP there, aren't we ? which is public from DNS already and not tied to an individual directly, and only indirectly via their registry.
Comment #61
cmlaraSome of this depends on is this a mega corp or an individual that is hosting the Drupal Site and are they using personally controlled resources (dedicated IP) or shared hosting.
Article 4 of GDPR:
IP is specifically called out in Recital 30 as PII.
Email address are generally considered personal data (unless we’re talking something like webmaster@drupal.org which goes to a team/company).
Domains can be PII too:
Drupal.org, unlikely a single person
Cmlara.example.org (personal blog) identifies it as me personally and it becomes PII.
Note: I am not covered under GDPR, so I can’t assert a breach under it. CCPA is my primary regulation however the D.A. is likely legally exempt from it currently so no claim from me there either. Others may be able to assert a claim under their applicable privacy laws that I can not.
Side note: if this data also goes with the Drupal site key that would also potentially move that identifier under PII too (same as a customer ID is PII).
Comment #62
fgmI think we can agree to disagree on GDPR / CCPA implications anyway since the point is even that should be opt-out, are we in agreement about that ?
Comment #63
poker10 commentedI agree that having more information about the purpose of the collected data may help moving this forward. Especially the statement below is not clear to me, what the data will be used for and how these data (for example the domain) can help the DA (other than marketing, which I hope will be excluded):